An Angular implementation of the Carbon Design System for IBM.
566
stars
9,112
commits
TypeScript
primary language
Sep 3, 2026
updated
An Angular implementation of the Carbon Design System
Assuming we're starting with a new @angular/cli project:
$ npx @angular/cli new my-project --style=scss
$ cd my-project
$ npm i --save carbon-components-angular @carbon/styles @carbon/icons
Next, we need to include carbon styles in src/styles.scss:
@use '@carbon/styles/scss/config' with (
// Use flexbox for grid - stick to CSS Grid or Flexbox
// CSS Grid has become the default grid system in v11
$use-flexbox-grid: true,
// Update path of fonts to exclude tilde, required for vite (Angular 16+)
$font-path: '@ibm/plex'
);
@use '@carbon/styles';
// Import css variables in root
html {
@include styles.theme(styles.$white);
}
Then we need to declare @carbon/icons as a module by creating a module.d.ts file (or use any existing declaration file - has .d.ts suffix) in your src directory:
declare module '@carbon/icons/*';
That's it! Now we can run npm start and start building out our application!
Note: This isn't the only way to bootstrap a
carbon-components-angularapplication, but the combination of@angular/cliand the@carbon/stylesscss is our recommended setup.
Angular version support matrix:
| Angular | v3 | v4 | v5 |
|---|---|---|---|
| 6 | ✅ | ❌ | ❌ |
| 7 | ✅ | ✅ | ❌ |
| 8 | ✅ | ✅ | ❌ |
| 9 | ❌ | ✅ | ❌ |
| 10 | ❌ | ✅ | ❌ |
| 11 | ❌ | ✅ | ❌ |
| 12 | ❌ | ✅ | ❌ |
| 13 | ❌ | ✅ | ❌ |
| 14 | ❌ | ✅ | ✅ |
| 15 | ❌ | ✅ | ✅ |
| 16 | ❌ | ❌ | ✅ |
| 17 | ❌ | ❌ | ✅ |
| 18 | ❌ | ❌ | ✅ |
| 19 | ❌ | ❌ | ✅ |
| 20 | ❌ | ❌ | ✅ |
| 21 | ❌ | ❌ | ✅ |
Carbon Components Angular version support matrix:
| Carbon Components Angular version | Community support | Active support |
|---|---|---|
| v1 | ❌ | ❌ |
| v2 | ❌ | ❌ |
| v3 | ✅ | ❌ |
| v4 | ✅ | ❌ |
| v5 | ✅ | ✅ |
Not supported versions: Out of support. We plan to support our latest, and previous release. Beyond that we make no guarantees of continued support - these include v1, v2
How to read this table:
If you are an IBMer, you must complete the steps at W3 Developer before contributing to any open source projects. See our contributing guidelines for more details.
npm install to grab all the dependencies, then npm run storybook to start storybooksrcindex.tsnpm test and npm run lint to make sure the tests and linter passTo keep our build dependencies local we use npm scripts to run our webpack, gulp, and general build tasks. You should never install webpack or gulp globally as that will likely conflict with our version. You should never need to modify the build process to add a component or story.
npm run storybook to run storybook (port 6006)npm run build to generate the distdocs:build to build documentationdocs:server to build and run the documentation servernpm run lint to run tslintnpm test to run testsRead our code of conduct here
This package uses IBM Telemetry to collect de-identified and anonymized metrics data. By installing this package as a dependency you are agreeing to telemetry collection. To opt out, see Opting out of IBM Telemetry data collection. For more information on the data being collected, please see the IBM Telemetry documentation.
(top 30 of 107)
TypeScript
98.4%
An Angular implementation of the Carbon Design System for IBM.
566
stars
9,112
commits
TypeScript
primary language
Sep 3, 2026
updated
An Angular implementation of the Carbon Design System
Assuming we're starting with a new @angular/cli project:
$ npx @angular/cli new my-project --style=scss
$ cd my-project
$ npm i --save carbon-components-angular @carbon/styles @carbon/icons
Next, we need to include carbon styles in src/styles.scss:
@use '@carbon/styles/scss/config' with (
// Use flexbox for grid - stick to CSS Grid or Flexbox
// CSS Grid has become the default grid system in v11
$use-flexbox-grid: true,
// Update path of fonts to exclude tilde, required for vite (Angular 16+)
$font-path: '@ibm/plex'
);
@use '@carbon/styles';
// Import css variables in root
html {
@include styles.theme(styles.$white);
}
Then we need to declare @carbon/icons as a module by creating a module.d.ts file (or use any existing declaration file - has .d.ts suffix) in your src directory:
declare module '@carbon/icons/*';
That's it! Now we can run npm start and start building out our application!
Note: This isn't the only way to bootstrap a
carbon-components-angularapplication, but the combination of@angular/cliand the@carbon/stylesscss is our recommended setup.
Angular version support matrix:
| Angular | v3 | v4 | v5 |
|---|---|---|---|
| 6 | ✅ | ❌ | ❌ |
| 7 | ✅ | ✅ | ❌ |
| 8 | ✅ | ✅ | ❌ |
| 9 | ❌ | ✅ | ❌ |
| 10 | ❌ | ✅ | ❌ |
| 11 | ❌ | ✅ | ❌ |
| 12 | ❌ | ✅ | ❌ |
| 13 | ❌ | ✅ | ❌ |
| 14 | ❌ | ✅ | ✅ |
| 15 | ❌ | ✅ | ✅ |
| 16 | ❌ | ❌ | ✅ |
| 17 | ❌ | ❌ | ✅ |
| 18 | ❌ | ❌ | ✅ |
| 19 | ❌ | ❌ | ✅ |
| 20 | ❌ | ❌ | ✅ |
| 21 | ❌ | ❌ | ✅ |
Carbon Components Angular version support matrix:
| Carbon Components Angular version | Community support | Active support |
|---|---|---|
| v1 | ❌ | ❌ |
| v2 | ❌ | ❌ |
| v3 | ✅ | ❌ |
| v4 | ✅ | ❌ |
| v5 | ✅ | ✅ |
Not supported versions: Out of support. We plan to support our latest, and previous release. Beyond that we make no guarantees of continued support - these include v1, v2
How to read this table:
If you are an IBMer, you must complete the steps at W3 Developer before contributing to any open source projects. See our contributing guidelines for more details.
npm install to grab all the dependencies, then npm run storybook to start storybooksrcindex.tsnpm test and npm run lint to make sure the tests and linter passTo keep our build dependencies local we use npm scripts to run our webpack, gulp, and general build tasks. You should never install webpack or gulp globally as that will likely conflict with our version. You should never need to modify the build process to add a component or story.
npm run storybook to run storybook (port 6006)npm run build to generate the distdocs:build to build documentationdocs:server to build and run the documentation servernpm run lint to run tslintnpm test to run testsRead our code of conduct here
This package uses IBM Telemetry to collect de-identified and anonymized metrics data. By installing this package as a dependency you are agreeing to telemetry collection. To opt out, see Opting out of IBM Telemetry data collection. For more information on the data being collected, please see the IBM Telemetry documentation.
(top 30 of 107)
TypeScript
98.4%