Skip to main content Home
About About the Design SystemRoadmap
Get started OverviewDesignersDevelopers
Foundations OverviewColorGridIconographySpacingTypography
Tokens Overview Global colorbox shadowTypographyborderopacityspacelengthIconBreakpointsMedia Queries
Elements All elements Accordion Alert Announcement Audio player Avatar Back to top Badge Blockquote Breadcrumb Button Card Chip Code block Call to action Dialog Disclosure Footer Health index Icon Jump links Navigation (primary) Navigation (secondary) Pagination PopoverPlanned Progress stepsPlanned Site status Skip link Spinner Statistic Subnavigation Surface Switch Table Tabs Tag Tile Timestamp Tooltip Video embed
Theming OverviewColor PalettesCustomizingDevelopers
Patterns All PatternsCardTabsFilterFormLinkLink with iconLogo wallSearch barSkip navigationSticky bannerSticky cardTileVideo thumbnail
Personalization All Personalization PatternsAnnouncement
Accessibility FundamentalsAccessibility toolsAssistive technologiesCI/CDContentContributorsDesignDevelopmentManual testingResourcesScreen readers
Design/code status Release notes Get support

Developers

OverviewInstallationUsageTokensContributing
IntroductionLearn about our design systemOur GitHub repositoriesAbout Web ComponentsIntroductionLearn about our design systemOur GitHub repositoriesAbout Web Components

Introduction

Welcome to the Red Hat Design System (RHDS) for digital experiences. If you need to develop something using our design system, you have come to the right place.

Read this section to get started and e-mail design-system@redhat.com or connect with us on Slack if you have any questions along the way.

How to install RHDS

Learn about our design system

Our design system documentation offers assets and guidance needed to create digital experiences. Please use these resources to have a better understanding of how build with our design system.

Foundations

Read about how we use grid, space, color, typography, and more to express our brand.

Element docs

Learn how to implement and customize our RHDS Web Components, the interactive building blocks of our design system.

Pattern docs

Patterns compose elements, tokens, and scripts with content to create uniform, accessible experiences.

Design token docs

We translate our design language decisions into code through design tokens. Learn how to incorporate them.

Theming docs

Explore how to use our powerful and flexible theming system to customize RHDS.

Accessibility docs

Developer-specific guidelines equip you with the information to create inclusive digital experiences.

Our GitHub repositories

Our design system is open source.

RHDS repo

Explore our Red Hat Design System code, roadmaps, and discussions.

Our GitHub org

Check out our other open source repositiories, like our Design Tokens or RHDS Extensions.

About Web Components

What are Web Components?

Every Web Component is a custom HTML element. Web Components are made with standard web platform APIs, and not only with JavaScript frameworks. Those standards include:

These standards combine to enable developers to write reusable and encapsulated UI elements which work with the browser's built-in component model.

Why Web Components?

Encapsulation

Web Components encapsulate their templates, styles, and behavior. They establish a strong boundary between the component's internals and the rest of the website, letting developers write more modular code while avoiding conflicts with page-level CSS and JS. This hides complex logic and templating from the rest of the page's UI, which helps to ship design systems and applications at scale. In addition to encapsulating styles, Web Components can ship complex accessibility patterns, making it easier for page authors to provide accessible, rich experiences.

Web standards APIs

Because Web Components are built with web standards, the technology is future-proofed, reliable, and supported by every modern browser. As the browser's native component model, Web Components continually benefit from new specifications and features as they are added to the web platform (e.g.,Scoped Custom Element Registries).

Framework agnostic

Web Components are framework agnostic, meaning they can be used in any JavaScript framework which outputs HTML. This allows Red Hat to build and maintain a single Design System library that can be used across the entire enterprise. Engineers can then switch frameworks, if necessary, without throwing away all their work. Web Components help to break down silos, increase collaboration, and reduce duplication of effort.

How do Web Components affect performance?

Because the code which delineates the component model for Web Components is already a part of your users' browser, they do not need to rely on client-side JavaScript in the same way that framework components do. We have observed that adding several of our design systems' components to an app increased the bundle size by an amount less than the weight of the react-dom library. Much of that JavaScript payload consists of HTML and CSS, which compresses well and executes efficiently. Advanced techniques like SSR of Declarative Shadow DOM templates can help to reduce loading times and cumulative layout shift.

We anticipate that if HTML modules and CSS modules become widely implemented in browsers, that something like Declarative Custom Elements will make shipping design system elements in plain .html files feasible.

Designers

To get started using our design system as a designer, go to the Designers page.

© 2021-2025 Red Hat, Inc. Deploys by Netlify