Installation

Red Hat CDN

CDN Prerelease

We are currently working on our CDN, which will be soon moving into beta. This will be the preferred method of installation in the near future. If you are a Red Hat associate and have questions or comments about the CDN or installation process please join us in our Red Hat Design System Google chat.

In the meantime, install this component using npm

The recommended way to load RHDS is via the Red Hat Digital Experience CDN, and using an import map.

If you have full control over the page you are using, add an import map to the <head>, pointing to the CDN, or update any existing import map. If you are not responsible for the page's <head>, request that the page owner makes the change on your behalf.

<script type="importmap">
{
"imports": {
"@rhds/elements/": "https://www.redhatstatic.com/dx/v1-alpha/@rhds/elements@1.1.0/elements/",
"@patternfly/elements/": "https://www.redhatstatic.com/dx/v1-alpha/@patternfly/elements@2.2.2/"
}
}
</script>

Once the import map is established, you can load the element with the following module, containing a bare module specifier:

<script type="module">
import '@rhds/elements/rh-tabs/rh-tabs.js';
</script>

Note that Modules may be placed in the <head>: since they are deferred by default, they will not block rendering.

NPM

Install RHDS using your team's preferred NPM package manager, e.g.

npm install @rhds/elements

Once that's been accomplished, you will need to use a bundler to resolve the bare module specifiers and optionally optimize the package for your site's particular use case and needs. Comprehensive guides to bundling are beyond the scope of this page; read more about bundlers on their websites:

JSPM

Public CDNs

JSPM and other public CDNs should not be used on corporate domains. Use them for development purposes only!

Add an import map to the <head>, pointing to the CDN, or update any existing import map.

<script type="importmap">
{
"imports": {
"@rhds/elements/": "https://jspm.dev/@rhds/elements/",
"@patternfly/elements/": "https://jspm.dev/@patternfly/elements/"
}
}
</script>

Once the import map is established, you can load the element with the following module, containing a bare module specifier:

<script type="module">
import '@rhds/elements/rh-tabs/rh-tabs.js';
</script>

Note that Modules may be placed in the <head>: since they are deferred by default, they will not block rendering.

Usage

<rh-tabs>
<rh-tab slot="tab">Tab 1</rh-tab>
<rh-tab-panel>Tab 1 content</rh-tab-panel>
<rh-tab slot="tab">Tab 2</rh-tab>
<rh-tab-panel>Tab 2 content</rh-tab-panel>
<rh-tab slot="tab">Tab 3</rh-tab>
<rh-tab-panel>Tab 3 content</rh-tab-panel>
<rh-tab slot="tab">Tab 4</rh-tab>
<rh-tab-panel>Tab 4 content</rh-tab-panel>
</rh-tabs>

rh-tabs

Slots

tab

Must contain one or more <rh-tab>

Default Slot

Must contain one or more <rh-tab-panel>

Attributes

label-scroll-left

Label for the scroll left button

DOM Property
labelScrollLeft
Type
string
Default
'Scroll left'

label-scroll-right

Label for the scroll right button

DOM Property
labelScrollRight
Type
string
Default
'Scroll right'

manual

Tabs can be either automatic activated or manual

DOM Property
manual
Type
boolean
Default
false

active-index

Index of the active tab

DOM Property
activeIndex
Type
number
Default
-1

color-palette

Sets color context for child components, overrides parent context

DOM Property
colorPalette
Type
ColorPalette | undefined
Default
unknown

centered

Aligns tabs to the center

DOM Property
centered
Type
boolean
Default
false

box

Sets tabs to a boxed style with or without an inset

DOM Property
box
Type
'box' | 'inset' | undefined
Default
unknown

vertical

Sets the alignment of the tabs vertical

DOM Property
vertical
Type
boolean
Default
false

Methods

select(option: RhTab | number)

Events

None

CSS Shadow Parts

container

outer container

tabs-container

tabs container

tabs

tablist

panels

panels

CSS Custom Properties

CSS Property Description Default
--rh-tabs-border-color

Tabs Border color

#c7c7c7
--rh-tabs-inset

Tabs inset

auto

Design Tokens

Token Copy
--rh-border-width-lg
--rh-border-width-sm
--rh-color-accent-base-on-dark
--rh-color-accent-base-on-light
--rh-color-border-subtle-on-dark
--rh-color-border-subtle-on-light
--rh-color-gray-50
--rh-color-text-primary-on-dark
--rh-color-text-primary-on-light
--rh-color-text-secondary-on-dark
--rh-color-text-secondary-on-light
--rh-font-size-body-text-md
--rh-space-2xl
--rh-space-lg

rh-tab

The tab button for use within a rh-tabs element, must be paired with a rh-tab-panel.

Slots

icon

Can contain an <svg> or <pf-icon>

Default Slot

Tab title text

Attributes

active

active should be observed, and true when the tab is selected

DOM Property
active
Type
boolean
Default
false

disabled

disabled should be observed, and true when the tab is disabled

DOM Property
disabled
Type
boolean
Default
false

Methods

focus()

Events

expand

when a tab expands

Event Type:
TabExpandEvent

CSS Shadow Parts

button

<button> element

icon

icon <span> element

text

tile text <span> element

CSS Custom Properties

CSS Property Description Default
--rh-tabs-link-color

Tab link text color

#4d4d4d
--rh-tabs-active-border-color

Tab active border color

#ff442b
--rh-tabs-link-padding-inline-start

Tab padding inline start

32px
--rh-tabs-link-padding-block-start

Tab padding block start

16px
--rh-tabs-link-padding-inline-end

Tab padding inline end

32px
--rh-tabs-link-padding-block-end

Tab padding block end

16px

Design Tokens

Token Copy
--rh-border-width-lg
--rh-border-width-md
--rh-border-width-sm
--rh-color-accent-brand-on-dark
--rh-color-accent-brand-on-light
--rh-color-border-interactive-on-dark
--rh-color-border-interactive-on-light
--rh-color-surface-dark
--rh-color-surface-lighter
--rh-color-text-primary-on-dark
--rh-color-text-primary-on-light
--rh-color-text-secondary-on-dark
--rh-color-text-secondary-on-light
--rh-color-white
--rh-space-2xl
--rh-space-lg
--rh-space-md
--rh-space-xl

rh-tab-panel

The tab panel for use within a rh-tabs element, must be paired with a rh-tab.

Slots

Default Slot

Panel content should follow guidelines for tab panel content layout

Attributes

None

Methods

None

Events

None

CSS Shadow Parts

None

CSS Custom Properties

None

Design Tokens

Token Copy
--rh-space-2xl
--rh-space-3xl
--rh-space-4xl
© 2021-2024 Red Hat, Inc. Deploys by Netlify