# carbon-components-svelte [![NPM][npm]][npm-url]   Carbon Components Svelte is a [Svelte](https://github.com/sveltejs/svelte) component library that implements the [Carbon Design System](https://github.com/carbon-design-system), an open source design system by IBM. Design systems facilitate design and development through reuse, consistency, and extensibility. The Carbon Svelte portfolio also includes: - **[Carbon Icons Svelte](https://github.com/carbon-design-system/carbon-icons-svelte)**: 1900+ Carbon icons as Svelte components - **[Carbon Pictograms Svelte](https://github.com/carbon-design-system/carbon-pictograms-svelte)**: 700+ Carbon pictograms as Svelte components - **[Carbon Charts Svelte](https://github.com/carbon-design-system/carbon-charts/tree/master/packages/svelte)**: 20+ charts, powered by d3 - **[Carbon Preprocess Svelte](https://github.com/carbon-design-system/carbon-preprocess-svelte)**: Collection of Svelte preprocessors for Carbon ## [Documentation](https://carbon-components-svelte.onrender.com) The documentation site is deployed to [Render](https://render.com) as a Static Site. See [render.yaml](render.yaml) for details. [](https://render.com/deploy?repo=https://github.com/carbon-design-system/carbon-components-svelte) Other forms of documentation are auto-generated: - **[TypeScript definitions](types)**: Component TypeScript definitions - **[Component Index](COMPONENT_INDEX.md)**: Component API in Markdown format - **[Component API](docs/src/COMPONENT_API.json)**: Component API in JSON format ## Installation Install `carbon-components-svelte` as a development dependency. A minimum Svelte version of 3.48.0 is required to use this library. ```sh # Yarn yarn add -D carbon-components-svelte # npm npm i -D carbon-components-svelte # pnpm pnpm i -D carbon-components-svelte ``` ## Usage ### Styling Before importing components, you will need to first apply Carbon component styles. The Carbon Design System supports five themes (2 light, 3 dark). - **white.css**: Default Carbon theme (light) - **g10.css**: Gray 10 theme (light) - **g80.css**: Gray 80 theme (dark) - **g90.css**: Gray 90 theme (dark) - **g100.css**: Gray 100 theme (dark) - **all.css**: All themes (White, Gray 10, Gray 90, Gray 100) using [CSS variables](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties) Each StyleSheet is [generated](scripts/build-css.js) from the flagship [carbon-components](https://github.com/carbon-design-system/carbon/tree/master/packages/components) library. The compiled CSS is generated from the following `.scss` files: - [css/white.scss](css/white.scss) - [css/g10.scss](css/g10.scss) - [css/g80.scss](css/g80.scss) - [css/g90.scss](css/g90.scss) - [css/g100.scss](css/g100.scss) - [css/all.scss](css/all.scss) #### CSS StyleSheet ```js // White theme import "carbon-components-svelte/css/white.css"; // Gray 10 theme import "carbon-components-svelte/css/g10.css"; // Gray 80 theme import "carbon-components-svelte/css/g80.css"; // Gray 90 theme import "carbon-components-svelte/css/g90.css"; // Gray 100 theme import "carbon-components-svelte/css/g100.css"; // All themes import "carbon-components-svelte/css/all.css"; ``` #### CDN An alternative to loading styles is to link an external StyleSheet from a Content Delivery Network (CDN) like [unpkg.com](https://unpkg.com/). This is best suited for rapid prototyping. ##### HTML ```html
``` ##### `svelte:head` ```html