Skip to main content

An official website of the United States government

Here's how you know

An official website of the United States government

Here's how you know

Theme:

Design system switcher

Version:

Design system switcher

Theme:

Design system switcher

Version:

Design system switcher

Contribution Guidance

This page explains how to contribute to the CMS Design System and under what conditions contributions are accepted. Follow this guidance to propose a new component, pattern, or layout for inclusion.

When to make a contribution proposal

Use this guide to determine whether submitting a contribution proposal is the right path for your team's needs.

Submit a contribution proposal if…

  • The design is repeatedly needed across multiple product teams.
  • The design is a generalizable solution that can be reused by more than one team or application.
  • The design follows the design and accessibility guidelines already in place.
  • The design introduces a function, layout, or interaction that is not currently supported by existing CMS DS components.
  • Your team is willing to work with the CMS DS team to support documentation, testing, and ongoing refinement if adopted.

Do not submit a contribution proposal if…

  • The design can be assembled by combining components that already exist in the CMS Design System.
  • The use case is too niche or specific to a single product or workflow and lacks broader applicability.
  • The proposed design conflicts with accessibility standards, visual style, or content guidance set by the CMS Design System.
  • The design is not yet validated or has not shown repeat demand from other teams or users.
  • The request involves documentation updates, usage guidance, or content rather than a new visual or functional design element. These types of requests should be shared through one of our Slack channels or the bug-reporting workflow, which you can access in #cms-design-systemThis link goes to an external site

    You are leaving design.cms.gov.

    You're about to connect to a third-party site. Select CONTINUE to proceed or CANCEL to stay on this site.

    Continue
    or by opening a GitHub issue.

Components, patterns, & layouts

What are the differences between a component, a pattern, and a layout?

Steps to take

If your team would like to add a component, pattern, or layout to the Design System, please follow these steps:

  1. Connect with the CMS Design System team: Start by reaching out to the CMS Design System team to discuss what you would like to see added. You can connect via the #cms-design-systemThis link goes to an external site

    You are leaving design.cms.gov.

    You're about to connect to a third-party site. Select CONTINUE to proceed or CANCEL to stay on this site.

    Continue
    , #hcgov-design-systemThis link goes to an external site

    You are leaving design.cms.gov.

    You're about to connect to a third-party site. Select CONTINUE to proceed or CANCEL to stay on this site.

    Continue
    , or #mgov-design-systemThis link goes to an external site

    You are leaving design.cms.gov.

    You're about to connect to a third-party site. Select CONTINUE to proceed or CANCEL to stay on this site.

    Continue
    Slack channels, or attend one of our biweekly office hours. This conversation will help determine whether the idea is a good fit for a contribution proposal. If you don’t have access to CMS Slack, you can instead open a GitHub issue in our repository.
  2. Submit a contribution proposal: Complete and submit a contribution proposal form. Include any relevant images, discovery research, or Figma files associated with your design. If you don’t have access to CMS Confluence, or if you’d like to report a specific issue with the CMS Design System, you can instead open a GitHub issue in our repository.
  3. CMS Design System team assessment: Your proposal will be reviewed and assessed by the CMS Design System team.
  4. Monitor and wait: Once the proposal is in progress, the phases may include discovery, design, design implementation (engineering), writing guidance, and implementing guidance (engineering). Teams can check the current phase of the contribution by referencing the proposal. The contributing team will be notified once the proposal is complete.

What to include

To create a contribution proposal, navigate to our Contribution Proposal Confluence page, scroll down, and click “Add Proposal.” Note: You will need specific permissions to access CMS Confluence.

Once you’ve done this, you’ll be prompted to answer the following questions:

  1. Have you verified that this component, pattern, or layout does not already exist in the CMS Design System?
  2. What local need does your proposed component, pattern, or layout solve?
  3. Are there any related or similar components, patterns, or layouts currently in the CMS Design System?
  4. Do any other teams use this pattern or component?
  5. Does this component, pattern, or layout exist in the USWDS?
  6. Are there any other reasons why this component, pattern, or layout would be a good addition to the CMS Design System?
  7. How urgent is this contribution for your team?
    • High: Blocking current work or tied to a PI objective (see “Note on urgency” below)
    • Medium: Workaround exists but adds friction or inconsistency
    • Low: Not blocking; would improve experience or efficiency later