Skip to main contentCarbon Design System

Getting started

The Carbon Design System is made possible through a vibrant community of designers and developers. Anyone can contribute code, design, and documentation.

Get started

If you’re interested in getting involved but don’t know where to start, welcome! Designers and developers like you help to make Carbon great, and we’re so glad you’re here.

To get started, subscribe to our office hours and stop on by. We’ll help you find an appropriate first contribution depending on your skills and interests. Read on to learn about common types of contributions and the process.

In the past year, Carbon contributors have added features to components, improved the React testing suite, created image production guidelines in Figma, and so much more! Explore the gallery below to see a small sample of finished projects.

Carbon champions

Many thanks to our 2023 Carbon champions for making significant contributions to the design system.

Kylee Barnard
Community support

Michael Barrera
Typescript

Patrick Clough
Figma

Enzo Colasante
Charts Figma Kit

Matt Gallo
React Testing Library

Valerie Garza
Gantt chart

Michael Gower
Accessibility

Mark Judy
Typescript

Chris Knabe
React Testing Library

Marcin Lewandowski
Typescript

Jessica Lin
Accessibility

Amaya Mali
Gantt chart

Tom Roach
Community support

Eugene To
Figma

Shankar Venkatachalam
Create React App

Colleen Yates
lllustration Guild

Carbon Labs

While Carbon sets a high standard for asset stability, we do not want to stifle innovation. Previously, we housed unfinished explorations alongside stable components, which confused designers and developers about what was safe for use in production. To address this, we created Carbon Labs as a dedicated environment for explorations, separate from stable design system assets. It includes a separate GitHub repo and Storybook for code assets and a dedicated Figma space for design assets.

The purpose of Carbon Labs is to highlight innovation work that’s being done in the ecosystem but has not yet met the definition of done criteria. It is a community-organized incubation space for IBMers. The Carbon community within IBM can add assets to Labs while in the Discovery phase. Types of projects included in Labs should be design system related such as components, patterns, shared utilities, or universal guidance.

For IBMer only: For more information and a list of projects currently in Carbon Labs, go to Carbon Labs under the contributing section on the Carbon for IBM Products website.

Carbon labs

Types of contribution

There are several ways you can contribute, depending on your interest and bandwidth.

Component enhancements

This work involves enhancing our components in code, like adding new features or variants. Designers are often responsible for researching UX and visual solutions and then creating a design spec for developers. Here are issues in our enhancement backlog that need design or development work.

New components

New components are a large multidiscipline contribution and must be contributed in phases to insure quality and business value. When making a net new component, follow the Product Development Lifecycle and complete all requirements in the component checklist. All requirement categories must be completed before a component can be considered done. We recommend adding your component to Carbon Labs in the discovery phases of design and code development.

Design kits

This work is all about creating and updating reusable components in Figma. You’ll get valuable Figma experience and will collaborate with the Figma Guild. Check out the status of design kits and get involved by reaching out to the contacts listed.

Website documentation

All components and patterns require usage, style, code, and accessibility guidance on the Carbon website. You can learn how to contribute documentation smoothly and utilize our markdown templates on the documentation page. A list of components that still need documentation help can be found here.

Fixing issues and bugs

If you find a bug in the source code, you can help us by filling out a bug report and, ideally, submitting a pull request with a fix.

Icons and pictograms

You can find instructions on how to create and contribute UI icons, app icons, and pictograms on the IBM Design Language site.

The process

Whether you’re contributing code, designs, or documentation, there’s a process to follow.  For larger contributions like new components or patterns a more rigorous process must be followed to insure production level quality and business value. We have laid out the phases and criteria on the next page in contribution process.

For smaller contributions like small additions, enhancements, or bug fixes follow the process below.

1. Find a project to work on

Volunteer for existing work

The best way to volunteer is to look through existing GitHub issues labeled with

needs: community contribution
. You can also filter by code or design work. Put a comment in the issue saying you’d like to help.

The Carbon team is also happy to help you find a good first issue. Just stop by our office hours or send us a slack message.

Submit an idea

Have a new idea that you think would benefit Carbon? Or do you need to report a bug? First, be sure to look through the issue backlog to make sure it is a novel idea or bug. Then, file your proposal on GitHub using the issue templates. If you’re willing to work on this idea yourself, be sure to let is know in your issue! Your idea will then go through a triage process by the Carbon team.

2. Iterate and get feedback

Most contributors work in groups of 2-3 and either set up weekly sessions or join meetups such as the Figma Guild, Data Viz Guild, or office hours. In these sessions, it is common to share work in progress and ask lots of questions. As you make progress, update your GitHub issue.

3. Submit for review

Code deliverables

Work that results in code will be reviewed directly in a pull request. Maintainers will be reviewing your work and making comments, asking questions and suggesting changes before they merge your code. When you need to make a change, commit and push to your branch normally. Once all revisions to your pull request are complete, a maintainer will squash and merge your commits for you.

Contributor License Agreement

The Carbon core team is part of IBM. To accept contributions, we need a signed Contributor License Agreement (CLA) from you before code contributions can be reviewed and merged. You will be prompted to do this in your PR, but if you have questions, please don’t hesitate to reach out.

Design deliverables

For work that does not have a code deliverable, such as revisions to Figma libraries, ask the Carbon team how to finish your contribution.