Installation
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.
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:
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
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' | null | undefined
- Default
-
null
vertical
-
Sets the alignment of the tabs vertical
- DOM Property
vertical
- Type
-
boolean
- Default
-
false
Methods
None
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
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
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
|
|
Related elements or patterns
Feedback
To give feedback about anything on this page, contact us.
Red Hat legal and privacy links
- About Red Hat
- Jobs
- Events
- Locations
- Contact Red Hat
- Red Hat Blog
- Diversity, equity, and inclusion
- Cool Stuff Store
- Red Hat Summit