# Carbon Design System > Carbon is IBM's open-source design system for products and digital experiences. Built on the IBM Design Language, it provides working code, design tools, human interface guidelines, and a vibrant community of contributors. This file provides LLM-friendly navigation, background context, and active links for the Carbon Design System and its core developer tools. ## Getting Started - [About Carbon](https://www.carbondesignsystem.com/getting-started/about-carbon): Explore Carbon, IBM’s open-source design system, a complete guide to its components, design principles, UI framework, and developer tools. Learn who it’s for, how it integrates across the IBM ecosystem, and how to implement Carbon for scalable, accessible enterprise web and product design including core usage and product extensions. - [Design resources](https://www.carbondesignsystem.com/getting-started/designing/design-resources): Access Carbon design resources, including Figma libraries, templates, color palettes, GitHub repositories, plugins, and AI tools to accelerate your design workflow. - [Overview](https://www.carbondesignsystem.com/getting-started/designing/overview): Learn about Carbon Design System, including its design principles, tools, guidelines, and foundational resources for creating consistent IBM digital experiences for designers. - [Additional resources](https://www.carbondesignsystem.com/getting-started/developing/additional-resources): Carbon Figma Tools uses AI to turn Figma designs into production-ready Carbon React code, validate Carbon v11 compliance, and accelerate design-to-code workflows. - [Carbon Core](https://www.carbondesignsystem.com/getting-started/developing/carbon-core): The Carbon library provides front-end developers and engineers a collection of reusable components to build websites and user interfaces. - [Overview](https://www.carbondesignsystem.com/getting-started/developing/overview): Get started developing with Carbon using this checklist covering overview, tutorials, installation and framework setup. - [React tutorial](https://www.carbondesignsystem.com/getting-started/developing/react-tutorial): Learn more about building a React application with Carbon and Next.js. This tutorial covers installing components, building pages, connecting APIs, creating custom components, and deploying your app to production. - [Web Components tutorial](https://www.carbondesignsystem.com/getting-started/developing/web-components-tutorial): Learn to build a JavaScript and HTML application using Web Components from Carbon. This tutorial shows you how to use Carbon components effectively while introducing web development best practices. - [Concepts](https://www.carbondesignsystem.com/getting-started/carbon-mcp/concepts): Understand the tools and content sources that enable Carbon MCP to retrieve information from the Carbon Design System. - [Onboarding and setup](https://www.carbondesignsystem.com/getting-started/carbon-mcp/onboarding-and-setup): Set up Carbon MCP, connect your preferred AI client, and install the tools needed to access Carbon resources. - [Overview](https://www.carbondesignsystem.com/getting-started/carbon-mcp/overview): Carbon MCP connects your AI client to the Carbon Design System, giving it instant access to components, tokens, icons, guidance, and code. - [Prompts](https://www.carbondesignsystem.com/getting-started/carbon-mcp/prompts): A prompt is how you tell an AI what to build, in plain language. Clear, specific prompts get better results in fewer tries and use fewer tokens. - [Token conservation](https://www.carbondesignsystem.com/getting-started/carbon-mcp/token-conservation): Token conservation keeps AI workflows fast and cost-efficient by reducing unnecessary context and responses without losing quality. - [Carbon Labs](https://www.carbondesignsystem.com/getting-started/contributing/carbon-labs): Explore Carbon Labs and how to contribute components, patterns, and utilities to this community-organized, early-stage design system incubation space. - [Component checklist](https://www.carbondesignsystem.com/getting-started/contributing/component-checklist): Explore the Carbon Design System component checklist, the complete set of requirements across design, code, testing, and documentation that every component must meet. - [Enhancing components](https://www.carbondesignsystem.com/getting-started/contributing/enhancing-components): Learn how to improve or contribute to existing Carbon Design System components, from GitHub issues and dev setup to submitting pull requests and design updates. - [Overview](https://www.carbondesignsystem.com/getting-started/contributing/overview): Learn how to contribute to the Carbon Design System, from building new components and enhancing existing ones to fixing bugs and improving documentation. - [Product Development Lifecycle](https://www.carbondesignsystem.com/getting-started/contributing/product-development-lifecycle): Understand how Carbon uses the Product Development Lifecycle to guide contributions from discovery, delivery, and launch and scale, through to a stable, production-ready component or pattern. - [FAQs](https://www.carbondesignsystem.com/getting-started/migrating/faqs): Frequently asked questions about the benefits and process when migrating your product from v10 to v11 of Carbon. - [Guide](https://www.carbondesignsystem.com/getting-started/migrating/guide): Ready to make the move to Carbon v11? Our migration guide helps designers and developers learn more about this release and get started migrating to v11. ## Foundations - [2x Grid](https://www.carbondesignsystem.com/building-blocks/foundations/2x-grid): The IBM Design 2x Grid provides the geometric foundation for typography, layouts, icons, and illustrations, ensuring structure and consistency. - [Accessibility](https://www.carbondesignsystem.com/building-blocks/foundations/accessibility): IBM Carbon follows accessibility best practices to help teams create inclusive, accessible web, and software experiences. - [Carbon for AI](https://www.carbondesignsystem.com/building-blocks/foundations/carbon-for-ai): Carbon for AI extends the Carbon Design System with a distinct visual and behavioral identity for AI experiences in IBM products. - [Color](https://www.carbondesignsystem.com/building-blocks/foundations/color): IBM Carbon color guidance helps teams create consistent, engaging, and accessible user interfaces across digital products and experiences. - [Content](https://www.carbondesignsystem.com/building-blocks/foundations/content): Explore Carbon's content guidelines for product interfaces, including content foundations, accessibility writing tips, and IBM style resources. - [Icons](https://www.carbondesignsystem.com/building-blocks/foundations/icons): Icons are visual symbols that represent ideas, objects, or actions, helping communicate meaning, indicate interactivity, and draw attention. - [Motion](https://www.carbondesignsystem.com/building-blocks/foundations/motion): Carbon motion brings digital experiences to life, guides users through interactions, and provides consistent movement and timing across experiences. - [Pictograms](https://www.carbondesignsystem.com/building-blocks/foundations/pictograms): Find IBM Carbon pictogram guidance, examples, and best practices for websites, product UIs, signage, events, and merchandise. - [Spacing](https://www.carbondesignsystem.com/building-blocks/foundations/spacing): Carbon’s spacing system provides a consistent approach to layout design, helping create clear, functional, and cohesive user experiences. - [Themes](https://www.carbondesignsystem.com/building-blocks/foundations/themes): Themes customize component styles to align with the visual identity and aesthetic requirements of a brand or product. - [Typography](https://www.carbondesignsystem.com/building-blocks/foundations/typography): Carbon’s typography system uses IBM Plex with carefully designed scales, styles, and weights to create hierarchy, organize information, and guide users. ## Components - [AI label](https://www.carbondesignsystem.com/building-blocks/core/components/ai-label): The AI label identifies AI in the UI, enabling transparency through visual recognition of the AI icon and triggering the explainability popover. - [Accordion](https://www.carbondesignsystem.com/building-blocks/core/components/accordion): An accordion is a vertically stacked list of headers that reveal or hide associated sections of content. - [Breadcrumb](https://www.carbondesignsystem.com/building-blocks/core/components/breadcrumb): The breadcrumb is a secondary navigation pattern that helps a user understand the hierarchy among levels and navigate back through them. - [Button](https://www.carbondesignsystem.com/building-blocks/core/components/button): Buttons are used to initialize an action. Button labels express what action will occur when the user interacts with it. - [Checkbox](https://www.carbondesignsystem.com/building-blocks/core/components/checkbox): Checkboxes are used when there are multiple items to select in a list. Users can select zero, one, or any number of items. - [Code snippet](https://www.carbondesignsystem.com/building-blocks/core/components/code-snippet): Code snippets are strings or small blocks of reusable code that can be copied and inserted in a code file. - [Contained list](https://www.carbondesignsystem.com/building-blocks/core/components/contained-list): Contained lists group content that is similar or related and can contain read-only or interactive information. - [Content switcher](https://www.carbondesignsystem.com/building-blocks/core/components/content-switcher): Content switchers allow users to toggle between two or more content sections within the same space on the screen. - [Data table](https://www.carbondesignsystem.com/building-blocks/core/components/data-table): Data tables organize and display data efficiently, with customizable functionality to meet user and product needs. - [Date picker](https://www.carbondesignsystem.com/building-blocks/core/components/date-picker): Date and time pickers allow users to select a single or a range of dates and times. - [Dropdown](https://www.carbondesignsystem.com/building-blocks/core/components/dropdown): Dropdowns have a list of options that a user can select from. These selections can fill in a form, filter, or sort content. - [File uploader](https://www.carbondesignsystem.com/building-blocks/core/components/file-uploader): File uploaders allow users to select one or more files to upload to a specific location. - [Form](https://www.carbondesignsystem.com/building-blocks/core/components/form): A form is a group of related input controls that lets users provide data or configure options within a structured interface. - [Inline loading](https://www.carbondesignsystem.com/building-blocks/core/components/inline-loading): The inline loading component provides visual feedback to indicate that data is being processed and a task is in progress. - [Link](https://www.carbondesignsystem.com/building-blocks/core/components/link): Links are used as navigational elements. They navigate users to another location, such as a different site, resource, or section within the same page. - [List](https://www.carbondesignsystem.com/building-blocks/core/components/list): Lists are vertical groupings of related content, with items organized using bullets or numbers to improve readability and structure. - [Loading](https://www.carbondesignsystem.com/building-blocks/core/components/loading): Loading indicators are used when retrieving data or performing slow computations and help notify users that a process is underway. - [Menu](https://www.carbondesignsystem.com/building-blocks/core/components/menu): A menu is a list of interactive options that appears when users interact with an element or perform a specific action. - [Menu buttons](https://www.carbondesignsystem.com/building-blocks/core/components/menu-buttons): Menu buttons, including menu buttons, combo buttons, and overflow menus, open a menu with a list of interactive options. - [Modal](https://www.carbondesignsystem.com/building-blocks/core/components/modal): Modals focus the user’s attention exclusively on one task or piece of information by using a window that is displayed on top of the page content. - [Notification](https://www.carbondesignsystem.com/building-blocks/core/components/notification): Notifications are messages that communicate information to the user. The four variants of notifications are toast, inline, actionable, and callout. - [Number input](https://www.carbondesignsystem.com/building-blocks/core/components/number-input): Number input lets users enter a numeric value and incrementally increase or decrease the value with a two-segment control. - [Overview](https://www.carbondesignsystem.com/building-blocks/core/components/overview): Components are one of the key building blocks of the design system. Their systematic reuse helps to create visual and functional consistency across products. - [Pagination](https://www.carbondesignsystem.com/building-blocks/core/components/pagination): Pagination splits content or data into several pages, with a control for navigating to the next or previous page. - [Popover](https://www.carbondesignsystem.com/building-blocks/core/components/popover): A popover is a layer that appears above page content to provide additional information, context, or actions without leaving the current view. - [Progress bar](https://www.carbondesignsystem.com/building-blocks/core/components/progress-bar): A progress bar provides feedback on the status and duration of a process, helping users understand progress and expected wait times. - [Progress indicator](https://www.carbondesignsystem.com/building-blocks/core/components/progress-indicator): A progress indicator guides users through any linear, multistep task by showing the user their completed, current, and future steps. - [Radio button](https://www.carbondesignsystem.com/building-blocks/core/components/radio-button): Use radio buttons when you have a group of mutually exclusive choices and only one selection from the group is allowed. - [Search](https://www.carbondesignsystem.com/building-blocks/core/components/search): Search enables users to find relevant content by entering words or phrases, reducing the need to navigate through pages or menus. - [Select](https://www.carbondesignsystem.com/building-blocks/core/components/select): Select allows users to choose a single option from a list of values, helping ensure accurate input and consistent data selection. - [Slider](https://www.carbondesignsystem.com/building-blocks/core/components/slider): Sliders provide a visual way to adjust values by moving a handle along a track, enabling precise selection within a defined range. - [Structured list](https://www.carbondesignsystem.com/building-blocks/core/components/structured-list): Structured lists group related content, such as terms and definitions, into a clear format that supports scanning and comprehension. - [Tabs](https://www.carbondesignsystem.com/building-blocks/core/components/tabs): Tabs are used to organize related content. They allow the user to navigate between groups of information that appear within the same context. - [Tag](https://www.carbondesignsystem.com/building-blocks/core/components/tag): Tags help label, categorize, and organize items using descriptive keywords, making content easier to find, filter, and manage. - [Text input](https://www.carbondesignsystem.com/building-blocks/core/components/text-input): Text inputs enable users to enter free-form text for short and long-form entries, supporting a wide range of data input needs. - [Tile](https://www.carbondesignsystem.com/building-blocks/core/components/tile): Tiles are flexible containers for displaying a variety of content, including information, guidance, next steps, and getting started resources. - [Toggle](https://www.carbondesignsystem.com/building-blocks/core/components/toggle): A toggle lets users quickly switch between two states and is commonly used for on/off settings and controls. - [Toggletip](https://www.carbondesignsystem.com/building-blocks/core/components/toggletip): Toggletips display and hide additional information when triggered by a user action and can contain interactive elements. - [Tooltip](https://www.carbondesignsystem.com/building-blocks/core/components/tooltip): Tooltips display additional information on hover or focus, providing helpful, contextual, and nonessential guidance that adds clarity for users. - [Tree view](https://www.carbondesignsystem.com/building-blocks/core/components/tree-view): A tree view presents content in a hierarchical structure with nested levels, helping users navigate and explore related information. - [UI shell header](https://www.carbondesignsystem.com/building-blocks/core/components/ui-shell-header): The UI shell header is part of the Carbon UI shell, providing shared interaction patterns that create a consistent experience across products. - [UI shell left panel](https://www.carbondesignsystem.com/building-blocks/core/components/ui-shell-left-panel): The left panel is part of the Carbon UI shell, providing shared interaction patterns that create a consistent experience across products. - [UI shell right panel](https://www.carbondesignsystem.com/building-blocks/core/components/ui-shell-right-panel): The right panel is part of the Carbon UI shell, providing shared interaction patterns that create a consistent experience across products. ## Patterns - [Common actions](https://www.carbondesignsystem.com/building-blocks/core/patterns/common-actions): Common actions appear across components and workflows. To maintain platform consistency, apply these actions only in the prescribed ways. - [Dialogs](https://www.carbondesignsystem.com/building-blocks/core/patterns/dialogs): Dialogs are UI patterns that prompt users for input or urgent information without leaving context, with modal and non-modal variants. - [Disabled states](https://www.carbondesignsystem.com/building-blocks/core/patterns/disabled-states): A disabled state prevents interaction with a component when permissions, dependencies, or prerequisites are unmet, removing all interactive functionality. - [Disclosures](https://www.carbondesignsystem.com/building-blocks/core/patterns/disclosures): Disclosures reveal additional information or controls through user-triggered popovers, supporting menus, settings, and related actions. - [Empty states](https://www.carbondesignsystem.com/building-blocks/core/patterns/empty-states): Empty states occur when there is no data to display, often during first-time use or when content has been deleted or is unavailable. - [Filtering](https://www.carbondesignsystem.com/building-blocks/core/patterns/filtering): Filtering allows users to refine a displayed data set by adding or removing items based on selected predefined attributes. - [Fluid styles](https://www.carbondesignsystem.com/building-blocks/core/patterns/fluid-styles): Fluid variants of select components provide alternative styling that complements default patterns and reflects IBM’s expressive and productive design principles. - [Forms](https://www.carbondesignsystem.com/building-blocks/core/patterns/forms): A form is a group of related input controls that lets users provide data or configure options in pages, panels, or dialogs. - [Global header](https://www.carbondesignsystem.com/building-blocks/core/patterns/global-header): The global header helps users navigate and orient themselves in the UI through consistent, familiar, and usable interaction patterns. - [Loading](https://www.carbondesignsystem.com/building-blocks/core/patterns/loading): Loading patterns communicate that content is being processed and help users understand that data is loading rather than the interface being unresponsive. - [Login](https://www.carbondesignsystem.com/building-blocks/core/patterns/login): The login page enables users to access an application by entering credentials or using another supported authentication method. - [Notifications](https://www.carbondesignsystem.com/building-blocks/core/patterns/notifications): Notifications communicate information and provide feedback to users, ranging from inline responses to user actions to system-wide messages. - [Overflow content](https://www.carbondesignsystem.com/building-blocks/core/patterns/overflow-content): Overflow content is text or components that exceed available space and are reduced, truncated, or limited to fit within the interface. - [Overview](https://www.carbondesignsystem.com/building-blocks/core/patterns/overview): Patterns are best-practice solutions that help users achieve goals through reusable combinations of components, templates, flows, and sequences. - [Read-only states](https://www.carbondesignsystem.com/building-blocks/core/patterns/read-only-states): Read-only states allow users to review component content without making changes, removing all interactive functionality from the component. - [Search](https://www.carbondesignsystem.com/building-blocks/core/patterns/search): Search is a core navigation and discovery pattern. Meeting user expectations requires consistent, predictable, and effective search experiences. - [Status indicators](https://www.carbondesignsystem.com/building-blocks/core/patterns/status-indicators): Status indicators communicate severity-level information through distinct shapes and colors, helping users quickly assess status and respond appropriately. - [Text toolbar](https://www.carbondesignsystem.com/building-blocks/core/patterns/text-toolbar): A text toolbar provides buttons and menus for editing text, searching keywords, attaching files, and embedding links. ## Data Visualization - [Axes and labels](https://www.carbondesignsystem.com/building-blocks/data-visualization/axes-and-labels): Axes and labels provide essential context for chart data. Use clear, easy-to-understand descriptors and metrics to label charts and axes. - [Chart anatomy](https://www.carbondesignsystem.com/building-blocks/data-visualization/chart-anatomy): Chart elements work together to support effective data communication, with each element contributing important context and meaning. - [Color palettes](https://www.carbondesignsystem.com/building-blocks/data-visualization/color-palettes): The data visualization color palette is a curated subset of the IBM Design Language palette, designed to maximize accessibility and visual harmony. - [Dashboards](https://www.carbondesignsystem.com/building-blocks/data-visualization/dashboards): Dashboards vary widely based on their context and should be carefully designed to meet the needs of each use case. - [Flow charts](https://www.carbondesignsystem.com/building-blocks/data-visualization/flow-charts): Uncover complex data relationships and flows to reveal insights and patterns within large or interconnected data sets. - [Gantt charts](https://www.carbondesignsystem.com/building-blocks/data-visualization/gantt-charts): A Gantt chart visualizes project tasks against a timeline, showing planned work, schedules, and progress over a defined period. - [Legends](https://www.carbondesignsystem.com/building-blocks/data-visualization/legends): Legends summarize visual properties such as colors and textures, helping users understand chart elements and interpret data accurately. - [Overview](https://www.carbondesignsystem.com/building-blocks/data-visualization/overview): Carbon charts help teams communicate data clearly through accurate, accessible, and visually engaging data visualizations. - [Simple charts](https://www.carbondesignsystem.com/building-blocks/data-visualization/simple-charts): Simple charts present data in an intuitive, easy-to-understand format, helping communicate insights that support the content and context of a page. - [Spatial charts](https://www.carbondesignsystem.com/building-blocks/data-visualization/spatial-charts): Discover spatial relationships and hierarchical structures in data through visualizations such as tree maps, circle packs, and geospatial charts. ## Building Experiences - [Buy](https://www.carbondesignsystem.com/building-experiences/buy): A strong purchase experience helps buyers move from intent to commitment with speed and confidence. - [Discover](https://www.carbondesignsystem.com/building-experiences/discover): A strong Discover experience helps people find your solution and quickly understand why it's relevant to their needs. - [End use](https://www.carbondesignsystem.com/building-experiences/end-use): Consumable End Use experiences enable confident exits through clear controls, data ownership, and respectful offboarding that builds trust. - [Expand](https://www.carbondesignsystem.com/building-experiences/expand): A strong Expand experience helps people scale their solutions, discover complementary offerings, and adopt new capabilities as their needs increase. - [Get help](https://www.carbondesignsystem.com/building-experiences/get-help): A strong Get Help experience ensures people can resolve issues quickly, access support resources, and stay productive without losing momentum.  - [Learn](https://www.carbondesignsystem.com/building-experiences/learn): A strong Learn experience shows how your solution fits user needs and workflows, integrates with tools, and stands out from alternatives. - [Onboard](https://www.carbondesignsystem.com/building-experiences/onboard): A great onboarding experience helps users get set up successfully, understand what to do next, and reach first value as quickly as possible. - [Overview](https://www.carbondesignsystem.com/building-experiences/overview): Universal Experiences is a framework that defines key user journey moments, helping teams design interactions that consistently deliver value. - [Try](https://www.carbondesignsystem.com/building-experiences/try): A strong Try experience helps users experience your product’s value firsthand and validate fit in real-world scenarios. - [Use](https://www.carbondesignsystem.com/building-experiences/use): A strong Use experience builds confidence, helps customers complete key tasks, improve skills, and benefit from continuous enhancements over time. - [Craft a seamless onboarding journey](https://www.carbondesignsystem.com/articles/craft-a-seamless-onboarding-journey): A seamless onboarding journey helps users feel understood, empowered, and confident. - [Create a memorable product experience](https://www.carbondesignsystem.com/articles/create-a-memorable-product-experience): Memorable product experiences create emotional moments that stay with users and keep them coming back. - [Create consistency across onboarding emails](https://www.carbondesignsystem.com/articles/create-consistency-across-onboarding-emails): Onboarding email templates create clear and consistent communication for every new user. - [Design a paid onboarding experience](https://www.carbondesignsystem.com/articles/design-a-paid-onboarding-experience): Paid onboarding guides users from basics to advanced skills, helping them adopt the product and unlock more value. - [Design a trial onboarding experience](https://www.carbondesignsystem.com/articles/design-a-trial-onboarding-experience): Trial onboarding builds trust by showing value early and helping users see the product’s impact before they commit. - [Design help resources for seamless problem solving](https://www.carbondesignsystem.com/articles/design-help-resources-for-seamless-problem-solving): Help resources simplify problem solving by removing barriers, speeding resolution, and empowering users to troubleshoot with confidence. - [Introduction to onboarding](https://www.carbondesignsystem.com/articles/introduction-to-onboarding): A well‑designed onboarding experience quickly empowers users, reduces friction, and builds confidence from the very start. - [Onboard for every stage of the user’s journey](https://www.carbondesignsystem.com/articles/onboard-for-every-stage-of-the-users-journey): Onboarding at every stage provides timely, tailored support through experiences designed to meet users wherever they are today. - [Personalize your onboarding experience](https://www.carbondesignsystem.com/articles/personalize-your-onboarding-experience): Personalized onboarding adapts to each user’s goals and behavior, making the experience feel uniquely tailored. - [Tools for designing onboarding experiences](https://www.carbondesignsystem.com/articles/tools-for-designing-onboarding-experiences): IBM uses WalkMe, Carbon, and Assist Me to create a flexible onboarding ecosystem that supports users and accelerates success. - [Show What’s new to maintain user engagement](https://www.carbondesignsystem.com/tutorials/show-whats-new-to-maintain-user-engagement): What’s new keeps users engaged by surfacing updates in context so important features don’t go unnoticed. - [Use personalization to tailor a user’s first product steps](https://www.carbondesignsystem.com/tutorials/use-personalization-to-tailor-a-users-first-product-steps): Personalizing first steps helps new users feel seen, reach value faster, and immediately understand how the product fits their goals. ## Support - [Certificate of Originality](https://www.carbondesignsystem.com/support/certificate-of-originality): The Certificate of Originality explains IBM Carbon Design System licensing, attribution requirements, and usage terms, clarifying how assets and code can be used within compliant projects. - [Contact us](https://www.carbondesignsystem.com/support/contact-us): Have a question about our design system? The Carbon team is here to help you. - [FAQs](https://www.carbondesignsystem.com/support/faqs): The FAQ explains what Carbon is, how to contribute, supported technologies, reporting issues, accessibility guidance, browser support, and telemetry data collection and opt-out options. ## Resources - [Carbon MCP Server](https://mcp.carbondesignsystem.com/mcp): Live Model Context Protocol endpoint for automated AI agent querying of component documentation, code examples, charts, and guidelines. - [IBM Design Language](https://www.ibm.com/design/language/): The foundational brand principles, color, typography, and layout rules underlying the Carbon Design System. - [Sitemaps Index](https://www.carbondesignsystem.com/pages-sitemap.xml): Machine-readable directory of all pages, articles, patterns, and tutorials on this site. - [GitHub - Carbon Repository](https://github.com/carbon-design-system/carbon): The primary open-source code repository hosting React, Web Components, and Elements implementations. - [Carbon MCP GitHub](https://github.com/carbon-design-system/carbon-mcp): The issue tracker and onboarding guide for the Carbon MCP server.