Skip to main content
U.S. Flag

An official website of the United States government

CMS Design System

Installation

How you implement the design system depends on the needs of your project and your workstyle. We highly recommend implementing the design system with npm, as it allows you to easily update the design system version, but we also provide a direct download if npm will not work for you or your project. We also offer the ability to utilize the design system via direct reference to code and style resources from our CDN.

Install using npm

Simply add the @cmsgov/design-system package to your package.json to install it as a dependency.

npm install --save @cmsgov/design-system@latest

yarn add @cmsgov/design-system@latest

The @cmsgov/design-system package includes:

  • Pre-compiled SCSS files
  • Compiled CSS files
  • Compiled React components (CommonJS and ES modules)
  • Typescript definition files
  • Fonts and image

Package file structure

The dist folder contains all the necessary files in the design system, your project should not be importing anything from src.

└── dist
    ├── components/
    │   └── index.js        Compiled JS entry point (CommmonJS)
    ├── css/
    │   └── index.css       Compiled CSS entry point
    ├── esnext/
    │   └── index.esm.js    Compiled JS entry point (ES Module)
    ├── fonts/
    ├── images/
    ├── scss/
    │   ├── base/           Base styles, HTML element selectors
    │   ├── components/     Component styles
    │   ├── settings/       Variables, mixins, and functions
    │   ├── utilities/      Utility classes for individual CSS properties
    │   └── index.scss      Precompiled SCSS entry point
    └── types/              Typescript definition files

Download zip

Download the zip file from the 'Download Code' button in the header. This will download the latest release and extract the zip file to see the following folder structure. Like the npm package, the contents of download/design-system/dist contain design system code and assets.

└── download
    ├── design-assets/      Design system assets (Sketch files, fonts, designer assets)
    └── design-system/      Design system package (code, fonts, images)
        └── dist/

Copy the files and folders from download/design-system/dist to a relevant place in your project’s code base. Here is an example structure for how this might look:

└──example-project/
    ├── assets/
    │   ├── ds-2.0.0/       Renamed design system package
    │   ├── stylesheets/
    │   ├── images/
    │   └── javascript/
    └── index.html

Utilize the CDN

A content delivery network (CDN) is a collection of servers that dynamically allocate resources dependent on the requester's geographic location in order to optimize the distribution of assets.

Some benefits and applications for utilizing the design system via CDN are:

  • Quickly utilize design system code and style assets for development/prototyping
  • The CDN caches assets for fast loading and scales automatically in case of a large number of requests
  • Ability to utilize a specific version of the design system easily

Resources

  ├── css/
  │   ├── index.css
  │   ├── base/index.css
  │   ├── components/index.css
  │   └── utilities/index.css
  └── js/
      ├── react.production.min.js
      ├── react-dom.production.min.js
      └── bundle.js

Packages

Packages which are currently available for reference:

  • design-system - The core CMSDS (versions 3.4.0 and above)
  • ds-healthcare-gov - Healthcare.gov themed DS (versions 7.4.0 and above)
  • ds-medicare-gov - Medicare.gov themed DS (versions 5.4.0 and above)

URL structure

https://design.cms.gov/cdn/<package-name>/<version>/<resource>

Where package-name is one of the packages named above, version is the version number and resource is the file being requested from the resources listed above.

Example for including version 3.4.0 Core CSS via CDN

<link rel="stylesheet" href="https://design.cms.gov/cdn/design-system/3.4.0/css/index.css" crossorigin="anonymous" />

Example for including version 3.4.0 Core JS via CDN

If you do not already have React and React-DOM included in your page, include them before the design system js bundle.

<script type="text/javascript" src="https://design.cms.gov/cdn/design-system/3.4.0/js/react.production.min.js"></script>
<script type="text/javascript" src="https://design.cms.gov/cdn/design-system/3.4.0/js/react-dom.production.min.js"></script>
<script type="text/javascript" src="https://design.cms.gov/cdn/design-system/3.4.0/js/bundle.js"></script>

Need help or ran into an issue?

If you're having trouble installing or setting up the design system, or if you think you've found a bug, feel free to open an issue on GitHub.