Examples
Default tabs
A <Tabs>
component contains multiple <Tab>
components that may be used to navigate between sets of content within a page.
You can adjust a tab in the following ways:
- To label a tab with text, pass a
<TabTitleText>
component into thetitle
property of a<Tab>
. - To disable a tab, use the
isDisabled
property. Tabs usingisDisabled
are not perceivable or operable by users navigating via assistive technologies. - To disable a tab, but keep it perceivable to assistive technology users, use the
isAriaDisabled
property. If a disabled tab has a tooltip, use this property instead ofisDisabled
. - To add a tooltip to an aria-disabled tab, use the
tooltip
property.
Tabs can be styled as 'default' or 'boxed':
- Default tabs do not have any borders and use a bottom line to distinguish between a selected tab, a hovered tab, and an inactive tab.
- Boxed tabs are outlined to emphasize the area that a tab spans. To preview boxed tabs in the following examples, select the 'isBox' checkbox, which sets the
isBox
property to true.
Boxed secondary tabs
To change the background color of boxed tabs or the tab content, use the variant
property.
Toggle the tab color by selecting the 'Tabs secondary variant' checkbox in the following example.
Vertical tabs
Vertical tabs are placed on the left-hand side of a page or container and may appear in both 'default' and 'boxed' tab variations.
To style tabs vertically, use the isVertical
property.
Vertical expandable tabs
Vertical tabs can be made expandable to save space. Users can select the caret to expand a menu and switch between tabs.
Expandable tabs can be enabled at different breakpoints. The following example passes expandable={{ default: 'expandable', md: 'nonExpandable', lg: 'expandable' }}
into the <Tabs>
component.
To flag vertical tabs when they're expanded, use the isExpanded
property.
Vertical expandable uncontrolled
To flag the default expanded state for uncontrolled tabs, use the defaultIsExpanded
property.
Default overflow tabs
By default, overflow is applied when there are too many tabs for the width of the container they are in. This overflow can be navigated by side-scrolling within the tabs section, or by selecting the left and right arrows.
Horizontal overflow tabs
Horizontal overflow can be used instead of the default application. To navigate horizontal overflow tabs users can select the last tab, labeled “more”, to see the overflowed content.
To enable horizontal overflow, use the isOverflowHorizontal
property.
In the following example, select the 'Show overflowing tab count' checkbox to add a count of overflow items to the final “more” tab.
With tooltip react ref
When using a React ref to link a tooltip to a tab component via the reference
property, you should avoid manually passing in a value of "off" to the aria-live
property. Doing so may cause the tooltip to become less accessible to assistive technologies.
The tooltip should also have the id
property passed in. The value of id
should be passed into the tab's aria-describedby
property. This ensures a tooltip used with a React ref will be announced by the JAWS and NVDA screen readers.
Uncontrolled tabs
To allow the <Tabs>
component to manage setting the active tab and displaying correct content itself, use uncontrolled tabs, as shown in the following example.
With adjusted inset
To adjust the inset of tabs and visually separate them more, use the inset
property. You can set the inset to "insetNone", "insetSm", "insetMd", "insetLg", "insetXl", or "inset2xl" at "default", "sm", "md", "lg, "xl, and "2xl" breakpoints.
With page insets
To adjust the left padding of tabs, use the usePageInsets
property. This property aligns the tabs padding with the default padding of the page section, which makes it easier to align tabs with page section content.
With icons and text
You can render different content in the title
property of a tab to add icons and text.
To add an icon to a tab, pass a <TabTitleIcon>
component that contains the icon of your choice into the title
. To use an icon alongside styled text, keep the text in the <TabTitleText>
component.
Subtabs
Use subtabs within other components, like modals. Subtabs have less visually prominent styling.
To apply subtab styling to tabs, use the isSubtab
property.
Filled tabs with icons
To allow tabs to fill the available width of the page section, use the isFilled
property.
Tabs linked to nav elements
To let tabs link to nav elements, pass {TabsComponent.nav}
into the component
property.
Nav tabs should use the href
property to link the tab to the URL of another page or page section. A tab with an href
will render as an <a>
instead of a <button>
.
With separate content
If a <TabContent>
component is defined outside of a <Tabs>
component, use the tabContentRef
and tabContentId
properties
With tab content with body and padding
To add a content body to a <TabContent>
component, pass a <TabContentBody>
. To add padding to the body section, use the hasPadding
property.
Children mounting on click
To mount tab children (add to the DOM) when a tab is clicked, use the mountOnEnter
property.
Note that this property does not create the tab children until the tab is clicked, so they are not preloaded into the DOM.
Unmounting invisible children
To unmount tab children (remove from the DOM) when they are no longer visible, use the unmountOnExit
property.
Toggled tab content
You may control tabs from outside of the tabs component. For example, select the "Hide tab 2" button below to make "Tab item 2" invisible.
The tab its content should only be mounted when the tab is visible.
Dynamic tabs
To enable closeable tabs, pass the onClose
property to the <Tabs>
component. To enable a button that adds new tabs, pass the onAdd
property to <Tabs>
.
With help action popover
You may add a help action to a tab to provide users with additional context in a popover.
To render an action beside the tab content, use the actions
property of a <Tab>
. Pass a popover and a <TabsAction>
component into the actions
property.
With help and close actions
To add multiple actions to a tab, create a <TabAction>
component for each action.
The following example passes in both help popover and close actions.
Props
Tabs
Name | Type | Default | Description |
---|---|---|---|
childrenrequired | TabsChild | TabsChild[] | Content rendered inside the tabs component. Only `Tab` components or expressions resulting in a falsy value are allowed here. | |
activeKey | number | string | 0 | The index of the active tab |
addButtonAriaLabel | string | Aria-label for the add button | |
aria-label | string | Provides an accessible label for the tabs. Labels should be unique for each set of tabs that are present on a page. When component is set to nav, this prop should be defined to differentiate the tabs from other navigation regions on the page. | |
backScrollAriaLabel | string | 'Scroll back' | Aria-label for the back scroll button |
className | string | Additional classes added to the tabs | |
component | 'div' | 'nav' | TabsComponent.div | Determines what tag is used around the tabs. Use "nav" to define the tabs inside a navigation region |
defaultActiveKey | number | string | The index of the default active tab. Set this for uncontrolled Tabs | |
defaultIsExpanded | boolean | Flag indicating the default expanded state for uncontrolled expand/collapse of | |
expandable | { default?: 'expandable' | 'nonExpandable'; sm?: 'expandable' | 'nonExpandable'; md?: 'expandable' | 'nonExpandable'; lg?: 'expandable' | 'nonExpandable'; xl?: 'expandable' | 'nonExpandable'; '2xl'?: 'expandable' | 'nonExpandable'; } | Enable expandable vertical tabs at various breakpoints. (isVertical should be set to true for this to work) | |
forwardScrollAriaLabel | string | 'Scroll forward' | Aria-label for the forward scroll button |
hasNoBorderBottom | boolean | false | Disables border bottom tab styling on tabs. Defaults to false. To remove the bottom border, set this prop to true. |
id | string | Uniquely identifies the tabs | |
inset | { default?: 'insetNone' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl'; sm?: 'insetNone' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl'; md?: 'insetNone' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl'; lg?: 'insetNone' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl'; xl?: 'insetNone' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl'; '2xl'?: 'insetNone' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl'; } | Insets at various breakpoints. | |
isBox | boolean | false | Enables box styling to the tab component |
isExpanded | boolean | Flag to indicate if the vertical tabs are expanded | |
isFilled | boolean | false | Enables the filled tab list layout |
isOverflowHorizontal | boolean | HorizontalOverflowObject | Flag which places overflowing tabs into a menu triggered by the last tab. Additionally an object can be passed with custom settings for the overflow tab. | |
isSubtab | boolean | false | Enables subtab tab styling |
isVertical | boolean | false | Enables vertical tab styling |
Deprecated: leftScrollAriaLabel | string | 'Scroll left' | Please use backScrollAriaLabel. Aria-label for the left scroll button |
mountOnEnter | boolean | false | Waits until the first "enter" transition to mount tab children (add them to the DOM) |
onAdd | (event: React.MouseEvent<HTMLElement, MouseEvent>) => void | Callback for the add button. Passing this property inserts the add button | |
onClose | (event: React.MouseEvent<HTMLElement, MouseEvent>, eventKey: number | string) => void | Callback to handle tab closing and adds a basic close button to all tabs. This is overridden by the tab actions property. | |
onSelect | (event: React.MouseEvent<HTMLElement, MouseEvent>, eventKey: number | string) => void | () => undefined as any | Callback to handle tab selection |
onToggle | (event: React.MouseEvent, isExpanded: boolean) => void | (_event: React.MouseEvent, _isExpanded: boolean): void => undefined | Callback function to toggle the expandable tabs. |
ouiaId | number | string | Value to overwrite the randomly generated data-ouia-component-id. | |
ouiaSafe | boolean | true | Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. |
Deprecated: rightScrollAriaLabel | string | 'Scroll right' | Please use forwardScrollAriaLabel. Aria-label for the right scroll button |
toggleAriaLabel | string | Aria-label for the expandable toggle | |
toggleText | string | Text that appears in the expandable toggle | |
unmountOnExit | boolean | false | Unmounts tab children (removes them from the DOM) when they are no longer visible |
usePageInsets | boolean | Flag indicates that the tabs should use page insets. | |
variant | 'default' | 'secondary' | 'default' | Tabs background color variant |
Tab
Name | Type | Default | Description |
---|---|---|---|
eventKeyrequired | number | string | uniquely identifies the tab | |
titlerequired | React.ReactNode | Content rendered in the tab title. Should be <TabTitleText> and/or <TabTitleIcon> for proper styling. | |
actions | React.ReactNode | Actions rendered beside the tab content | |
children | React.ReactNode | content rendered inside the Tab content area. | |
className | string | additional classes added to the Tab | |
closeButtonAriaLabel | string | Aria-label for the close button added by passing the onClose property to Tabs. | |
href | string | URL associated with the Tab. A Tab with an href will render as an <a> instead of a <button>. A Tab inside a <Tabs component="nav"> should have an href. | |
inoperableEvents | string[] | Events to prevent when the button is in an aria-disabled state | |
isAriaDisabled | boolean | Adds disabled styling and communicates that the button is disabled using the aria-disabled html attribute | |
isCloseDisabled | boolean | Flag indicating the close button should be disabled | |
isDisabled | boolean | Adds disabled styling and disables the button using the disabled html attribute | |
isHidden | boolean | whether to render the tab or not | |
ouiaId | number | string | Value to set the data-ouia-component-id for the tab button. | |
tabContentId | string | number | child id for case in which a TabContent section is defined outside of a Tabs component | |
tabContentRef | React.RefObject<any> | child reference for case in which a TabContent section is defined outside of a Tabs component | |
tooltip | React.ReactElement<any> | Optional Tooltip rendered to a Tab. Should be <Tooltip> with appropriate props for proper rendering. |
TabContent
Name | Type | Default | Description |
---|---|---|---|
idrequired | string | id passed from parent to identify the content section | |
activeKey | number | string | Identifies the active Tab | |
aria-label | string | title of controlling Tab if used outside Tabs component | |
child | React.ReactElement<any> | Child to show in the content area | |
children | any | content rendered inside the tab content area if used outside Tabs component | |
className | string | class of tab content area if used outside Tabs component | |
eventKey | number | string | uniquely identifies the controlling Tab if used outside Tabs component | |
ouiaId | number | string | Value to overwrite the randomly generated data-ouia-component-id. | |
ouiaSafe | boolean | Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. |
TabTitleText
Name | Type | Default | Description |
---|---|---|---|
childrenrequired | React.ReactNode | Text to be rendered inside the tab button title. | |
className | string | '' | additional classes added to the tab title text |
TabTitleIcon
Name | Type | Default | Description |
---|---|---|---|
childrenrequired | React.ReactNode | Icon to be rendered inside the tab button title. | |
className | string | '' | additional classes added to the tab title icon |
TabAction
Name | Type | Default | Description |
---|---|---|---|
aria-label | string | Accessible label for the tab action | |
children | React.ReactNode | Content rendered in the tab action | |
className | string | Additional classes added to the tab action span | |
isDisabled | boolean | Flag indicating if the tab action is disabled | |
onClick | (event: React.MouseEvent<HTMLElement, MouseEvent>) => void | Click callback for tab action button |
CSS variables
Expand or collapse column | Selector | Variable | Value | |
---|---|---|---|---|
.pf-v6-c-tabs | --pf-v6-c-tabs--inset | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs--Width | auto | ||
.pf-v6-c-tabs | --pf-v6-c-tabs--before--BorderColor | (In light theme) #c7c7c7 | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--before--border-width--base | 1px | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--before--BorderBlockStartWidth | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs--before--BorderInlineEndWidth | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs--before--BorderBlockEndWidth | 1px | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--before--BorderInlineStartWidth | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-vertical--inset | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-page-insets--inset | 1rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-vertical--Width | 100% | ||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-vertical--MaxWidth | 15.625rem | ||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-vertical--m-box--inset | 1rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-vertical__list--before--BorderColor | (In light theme) #c7c7c7 | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-vertical__list--before--BorderBlockStartWidth | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-vertical__list--before--BorderInlineEndWidth | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-vertical__list--before--BorderBlockEndWidth | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-vertical__list--before--BorderInlineStartWidth | 1px | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__list--Display | flex | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__item--BackgroundColor | transparent | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__item--PaddingBlockStart | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__item--PaddingBlockEnd | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__item--PaddingInlineStart | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__item--PaddingInlineEnd | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__item--ColumnGap | 0.25rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-vertical__item--PaddingInlineStart | 1rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-vertical__item--PaddingInlineEnd | 1rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__item--m-current--BackgroundColor | transparent | ||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-box__item--BackgroundColor | (In light theme) #f2f2f2 | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-box__item--m-current--BackgroundColor | (In light theme) #ffffff | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-box--m-secondary__item--BackgroundColor | (In light theme) #ffffff | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-box--m-secondary__item--m-current--BackgroundColor | (In light theme) #f2f2f2 | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__item--m-action--before--ZIndex | 200 | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--Color | (In light theme) #4d4d4d | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--FontSize | 0.875rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--BackgroundColor | (In light theme) rgba(255, 255, 255, 0.0000) | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--BorderRadius | 6px | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--PaddingBlockStart | 0.25rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--PaddingInlineEnd | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--PaddingBlockEnd | 0.25rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--PaddingInlineStart | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--ColumnGap | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--disabled--Color | (In light theme) #4d4d4d | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--disabled--BackgroundColor | (In light theme) #c7c7c7 | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--hover--BackgroundColor | (In light theme) rgba(199, 199, 199, 0.2500) | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__item--m-current__link--Color | (In light theme) #151515 | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__item--m-current__link--BackgroundColor | (In light theme) rgba(255, 255, 255, 0.0000) | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-vertical__link--PaddingInlineStart | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-vertical__link--PaddingInlineEnd | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-box__link--BackgroundColor | (In light theme) rgba(255, 255, 255, 0.0000) | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-box__link--disabled--Color | (In light theme) #4d4d4d | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-box__link--disabled--BackgroundColor | (In light theme) #c7c7c7 | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-box__link--hover--BackgroundColor | (In light theme) rgba(199, 199, 199, 0.2500) | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-box__item--m-current__link--BackgroundColor | (In light theme) rgba(255, 255, 255, 0.0000) | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-box--m-secondary__link--BackgroundColor | (In light theme) rgba(255, 255, 255, 0.0000) | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-box--m-secondary__link--disabled--Color | (In light theme) #4d4d4d | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-box--m-secondary__link--disabled--BackgroundColor | (In light theme) #c7c7c7 | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-box--m-secondary__link--hover--BackgroundColor | (In light theme) rgba(199, 199, 199, 0.2500) | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-box--m-secondary__item--m-current__link--BackgroundColor | (In light theme) rgba(255, 255, 255, 0.0000) | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-subtab__link--FontSize | 0.75rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--before--border-color--base | (In light theme) #c7c7c7 | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--before--border-width--base | 1px | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--before--BorderBlockStartColor | (In light theme) #c7c7c7 | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--before--BorderInlineEndColor | (In light theme) #c7c7c7 | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--before--BorderBlockEndColor | (In light theme) #c7c7c7 | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--before--BorderInlineStartColor | (In light theme) #c7c7c7 | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--before--BorderBlockStartWidth | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--before--BorderInlineEndWidth | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--before--BorderBlockEndWidth | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--before--BorderInlineStartWidth | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--before--InsetInlineStart | calc(1px * -1) | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--disabled--before--BorderInlineEndWidth | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--disabled--before--BorderBlockEndWidth | 1px | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--disabled--before--BorderInlineStartWidth | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--after--InsetBlockStart | auto | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--after--InsetInlineEnd | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--after--InsetBlockEnd | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--after--BorderColor | (In light theme) #c7c7c7 | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--after--BorderWidth | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--after--BorderBlockStartWidth | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--after--BorderInlineEndWidth | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--after--BorderInlineStartWidth | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__item--m-current__link--after--BorderColor | (In light theme) #0066cc | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__item--m-current__link--after--BorderWidth | 3px | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__scroll-button--PaddingBlockStart | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__scroll-button--PaddingBlockEnd | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__scroll-button--PaddingInlineStart | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__scroll-button--PaddingInlineEnd | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__scroll-button--Width | 3rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__scroll-button--TransitionDuration--margin | .125s | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__scroll-button--TransitionDuration--transform | .125s | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__scroll-button--TransitionDuration--opacity | .125s | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__scroll-button--before--BorderColor | (In light theme) #c7c7c7 | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__scroll-button--before--border-width--base | 1px | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__scroll-button--before--BorderInlineEndWidth | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__scroll-button--before--BorderBlockEndWidth | 1px | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__scroll-button--before--BorderInlineStartWidth | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__list--ScrollSnapTypeAxis | x | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__list--ScrollSnapTypeStrictness | proximity | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__list--ScrollSnapType | x proximity | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__item--ScrollSnapAlign | end | ||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-vertical__list--ScrollSnapTypeAxis | y | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__toggle--Display | flex | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__toggle-icon--Transition | all 250ms cubic-bezier(.42, 0, .58, 1) | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__toggle-icon--Rotate | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-expanded__toggle-icon--Rotate | 90deg | ||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-expandable--RowGap | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-expandable--PaddingBlockStart | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-expandable--PaddingBlockEnd | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-expandable--PaddingInlineStart | 1rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-expandable--PaddingInlineEnd | 1rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__item-action--c-button--FontSize | 0.875rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-subtab__item-action--c-button--FontSize | 0.75rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__item-action-icon--MarginBlockStart | 0.125rem | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__add--before--BorderColor | (In light theme) #c7c7c7 | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__add--before--BorderInlineStartWidth | 1px | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__add--c-button--FontSize | 0.875rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs--m-subtab__add--c-button--FontSize | 0.75rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__add--PaddingBlockStart | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__add--PaddingBlockEnd | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__add--PaddingInlineStart | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__add--PaddingInlineEnd | 0.5rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link-toggle-icon--Color | (In light theme) #1f1f1f | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link-toggle-icon--Transition | .2s ease-in 0s | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__link-toggle-icon--Rotate | 0 | ||
.pf-v6-c-tabs | --pf-v6-c-tabs__link-toggle-icon--FontSize | 0.875rem | ||
| ||||
.pf-v6-c-tabs | --pf-v6-c-tabs__link--m-expanded__toggle-icon--Rotate | 90deg | ||
.pf-v6-c-tabs.pf-m-fill .pf-v6-c-tabs__item:first-child | --pf-v6-c-tabs--m-box__item--m-current--first-child__link--before--BorderInlineStartWidth | 0 | ||
.pf-v6-c-tabs.pf-m-fill .pf-v6-c-tabs__item:last-child | --pf-v6-c-tabs--m-box__item--m-current--last-child__link--before--BorderInlineEndWidth | 0 | ||
.pf-v6-c-tabs.pf-m-no-border-bottom | --pf-v6-c-tabs--before--BorderBlockEndWidth | 0 | ||
.pf-v6-c-tabs.pf-m-no-border-bottom | --pf-v6-c-tabs__link--disabled--before--BorderBlockEndWidth | 0 | ||
.pf-v6-c-tabs.pf-m-box .pf-v6-c-tabs__link | --pf-v6-c-tabs__link--after--BorderBlockEndWidth | 0 | ||
.pf-v6-c-tabs.pf-m-box .pf-v6-c-tabs__link | --pf-v6-c-tabs__link--after--BorderBlockStartWidth | 0 | ||
| ||||
.pf-v6-c-tabs.pf-m-box | --pf-v6-c-tabs__item--BackgroundColor | (In light theme) #f2f2f2 | ||
| ||||
.pf-v6-c-tabs.pf-m-box | --pf-v6-c-tabs__item--m-current--BackgroundColor | (In light theme) #ffffff | ||
| ||||
.pf-v6-c-tabs.pf-m-box | --pf-v6-c-tabs__link--BackgroundColor | (In light theme) rgba(255, 255, 255, 0.0000) | ||
| ||||
.pf-v6-c-tabs.pf-m-box | --pf-v6-c-tabs__link--disabled--Color | (In light theme) #4d4d4d | ||
| ||||
.pf-v6-c-tabs.pf-m-box | --pf-v6-c-tabs__link--disabled--BackgroundColor | (In light theme) #c7c7c7 | ||
| ||||
.pf-v6-c-tabs.pf-m-box | --pf-v6-c-tabs__link--hover--BackgroundColor | (In light theme) rgba(199, 199, 199, 0.2500) | ||
| ||||
.pf-v6-c-tabs.pf-m-box | --pf-v6-c-tabs__item--m-current__link--BackgroundColor | (In light theme) rgba(255, 255, 255, 0.0000) | ||
| ||||
.pf-v6-c-tabs.pf-m-box | --pf-v6-c-tabs__link--before--BorderBlockEndWidth | 1px | ||
| ||||
.pf-v6-c-tabs.pf-m-box | --pf-v6-c-tabs__link--after--InsetBlockStart | 0 | ||
.pf-v6-c-tabs.pf-m-box | --pf-v6-c-tabs__link--after--InsetBlockEnd | auto | ||
.pf-v6-c-tabs.pf-m-box .pf-v6-c-tabs__item:last-child | --pf-v6-c-tabs__link--before--BorderInlineEndWidth | 0 | ||
.pf-v6-c-tabs.pf-m-box .pf-v6-c-tabs__item.pf-m-current | --pf-v6-c-tabs__link--BackgroundColor | (In light theme) rgba(255, 255, 255, 0.0000) | ||
| ||||
.pf-v6-c-tabs.pf-m-box .pf-v6-c-tabs__item.pf-m-current | --pf-v6-c-tabs__link--before--BorderBlockEndColor | (In light theme) rgba(255, 255, 255, 0.0000) | ||
| ||||
.pf-v6-c-tabs.pf-m-box .pf-v6-c-tabs__item.pf-m-current + .pf-v6-c-tabs__item | --pf-v6-c-tabs__link--before--InsetInlineStart | 0 | ||
.pf-v6-c-tabs.pf-m-box.pf-m-secondary | --pf-v6-c-tabs__item--BackgroundColor | (In light theme) #ffffff | ||
| ||||
.pf-v6-c-tabs.pf-m-box.pf-m-secondary | --pf-v6-c-tabs__item--m-current--BackgroundColor | (In light theme) #f2f2f2 | ||
| ||||
.pf-v6-c-tabs.pf-m-box.pf-m-secondary | --pf-v6-c-tabs__link--BackgroundColor | (In light theme) rgba(255, 255, 255, 0.0000) | ||
| ||||
.pf-v6-c-tabs.pf-m-box.pf-m-secondary | --pf-v6-c-tabs__link--disabled--Color | (In light theme) #4d4d4d | ||
| ||||
.pf-v6-c-tabs.pf-m-box.pf-m-secondary | --pf-v6-c-tabs__link--disabled--BackgroundColor | (In light theme) #c7c7c7 | ||
| ||||
.pf-v6-c-tabs.pf-m-box.pf-m-secondary | --pf-v6-c-tabs__link--hover--BackgroundColor | (In light theme) rgba(199, 199, 199, 0.2500) | ||
| ||||
.pf-v6-c-tabs.pf-m-box.pf-m-secondary | --pf-v6-c-tabs__item--m-current__link--BackgroundColor | (In light theme) rgba(255, 255, 255, 0.0000) | ||
| ||||
.pf-v6-c-tabs.pf-m-vertical | --pf-v6-c-tabs--Width | 100% | ||
| ||||
.pf-v6-c-tabs.pf-m-vertical | --pf-v6-c-tabs--inset | 0.5rem | ||
| ||||
.pf-v6-c-tabs.pf-m-vertical | --pf-v6-c-tabs--before--BorderBlockEndWidth | 0 | ||
.pf-v6-c-tabs.pf-m-vertical | --pf-v6-c-tabs__item--PaddingInlineStart | 1rem | ||
| ||||
.pf-v6-c-tabs.pf-m-vertical | --pf-v6-c-tabs__item--PaddingInlineEnd | 1rem | ||
| ||||
.pf-v6-c-tabs.pf-m-vertical | --pf-v6-c-tabs__link--PaddingInlineStart | 0.5rem | ||
| ||||
.pf-v6-c-tabs.pf-m-vertical | --pf-v6-c-tabs__link--PaddingInlineEnd | 0.5rem | ||
| ||||
.pf-v6-c-tabs.pf-m-vertical | --pf-v6-c-tabs__link--before--InsetInlineStart | 0 | ||
.pf-v6-c-tabs.pf-m-vertical | --pf-v6-c-tabs__link--disabled--before--BorderBlockEndWidth | 0 | ||
.pf-v6-c-tabs.pf-m-vertical | --pf-v6-c-tabs__link--disabled--before--BorderInlineStartWidth | 1px | ||
| ||||
.pf-v6-c-tabs.pf-m-vertical | --pf-v6-c-tabs__link--after--InsetBlockStart | 0 | ||
.pf-v6-c-tabs.pf-m-vertical | --pf-v6-c-tabs__link--after--InsetBlockEnd | 0 | ||
.pf-v6-c-tabs.pf-m-vertical | --pf-v6-c-tabs__link--after--InsetInlineEnd | auto | ||
.pf-v6-c-tabs.pf-m-vertical | --pf-v6-c-tabs__list--ScrollSnapTypeAxis | y | ||
| ||||
.pf-v6-c-tabs.pf-m-vertical .pf-v6-c-tabs__link | --pf-v6-c-tabs__link--after--BorderBlockStartWidth | 0 | ||
.pf-v6-c-tabs.pf-m-vertical .pf-v6-c-tabs__link | --pf-v6-c-tabs__link--after--BorderInlineStartWidth | 0 | ||
| ||||
.pf-v6-c-tabs.pf-m-vertical.pf-m-expandable | --pf-v6-c-tabs__list--Display | none | ||
.pf-v6-c-tabs.pf-m-vertical.pf-m-expandable | --pf-v6-c-tabs__toggle--Display | flex | ||
.pf-v6-c-tabs.pf-m-vertical.pf-m-non-expandable | --pf-v6-c-tabs__list--Display | flex | ||
.pf-v6-c-tabs.pf-m-vertical.pf-m-non-expandable | --pf-v6-c-tabs__toggle--Display | none | ||
.pf-v6-c-tabs.pf-m-vertical.pf-m-expanded | --pf-v6-c-tabs__list--Display | flex | ||
.pf-v6-c-tabs.pf-m-vertical.pf-m-expanded | --pf-v6-c-tabs__toggle-icon--Rotate | 90deg | ||
| ||||
.pf-v6-c-tabs.pf-m-box.pf-m-vertical | --pf-v6-c-tabs--inset | 1rem | ||
| ||||
.pf-v6-c-tabs.pf-m-box.pf-m-vertical | --pf-v6-c-tabs--m-vertical__list--before--BorderInlineStartWidth | 0 | ||
.pf-v6-c-tabs.pf-m-box.pf-m-vertical | --pf-v6-c-tabs--m-vertical__list--before--BorderInlineEndWidth | 1px | ||
| ||||
.pf-v6-c-tabs.pf-m-box.pf-m-vertical | --pf-v6-c-tabs__link--before--BorderInlineEndWidth | 1px | ||
| ||||
.pf-v6-c-tabs.pf-m-box.pf-m-vertical | --pf-v6-c-tabs__link--disabled--before--BorderInlineEndWidth | 1px | ||
| ||||
.pf-v6-c-tabs.pf-m-box.pf-m-vertical | --pf-v6-c-tabs__link--disabled--before--BorderBlockEndWidth | 1px | ||
| ||||
.pf-v6-c-tabs.pf-m-box.pf-m-vertical | --pf-v6-c-tabs__link--disabled--before--BorderInlineStartWidth | 0 | ||
.pf-v6-c-tabs.pf-m-box.pf-m-vertical .pf-v6-c-tabs__item:last-child | --pf-v6-c-tabs__link--before--BorderInlineEndWidth | 1px | ||
| ||||
.pf-v6-c-tabs.pf-m-box.pf-m-vertical .pf-v6-c-tabs__item:first-child | --pf-v6-c-tabs__link--before--BorderBlockStartWidth | 1px | ||
| ||||
.pf-v6-c-tabs.pf-m-box.pf-m-vertical .pf-v6-c-tabs__item.pf-m-current | --pf-v6-c-tabs__link--before--BorderInlineEndColor | (In light theme) rgba(255, 255, 255, 0.0000) | ||
| ||||
.pf-v6-c-tabs.pf-m-box.pf-m-vertical .pf-v6-c-tabs__item.pf-m-current | --pf-v6-c-tabs__link--before--BorderBlockEndColor | (In light theme) #c7c7c7 | ||
| ||||
.pf-v6-c-tabs.pf-m-box.pf-m-vertical .pf-v6-c-tabs__item:first-child.pf-m-current | --pf-v6-c-tabs__link--before--BorderBlockStartWidth | 1px | ||
| ||||
.pf-v6-c-tabs.pf-m-subtab | --pf-v6-c-tabs__link--FontSize | 0.75rem | ||
| ||||
.pf-v6-c-tabs.pf-m-subtab | --pf-v6-c-tabs__item-action--c-button--FontSize | 0.75rem | ||
| ||||
.pf-v6-c-tabs.pf-m-subtab | --pf-v6-c-tabs__add--c-button--FontSize | 0.75rem | ||
| ||||
.pf-v6-c-tabs.pf-m-page-insets | --pf-v6-c-tabs--inset | 1rem | ||
| ||||
.pf-v6-c-tabs__item.pf-m-current | --pf-v6-c-tabs__link--Color | (In light theme) #151515 | ||
| ||||
.pf-v6-c-tabs__item.pf-m-current | --pf-v6-c-tabs__link--after--BorderColor | (In light theme) #0066cc | ||
| ||||
.pf-v6-c-tabs__item.pf-m-current | --pf-v6-c-tabs__link--after--BorderWidth | 3px | ||
| ||||
.pf-v6-c-tabs__item.pf-m-current | --pf-v6-c-tabs__item--BackgroundColor | transparent | ||
| ||||
.pf-v6-c-tabs__item.pf-m-action | --pf-v6-c-tabs__link--after--BorderBlockEndWidth | 0 | ||
| ||||
.pf-v6-c-tabs__link:where(:hover, :focus) | --pf-v6-c-tabs__link--BackgroundColor | (In light theme) rgba(199, 199, 199, 0.2500) | ||
| ||||
.pf-v6-c-tabs__item.pf-m-action.pf-m-disabled | --pf-v6-c-tabs__link--Color | (In light theme) #4d4d4d | ||
| ||||
.pf-v6-c-tabs__item.pf-m-action.pf-m-disabled | --pf-v6-c-tabs__link--before--BorderInlineEndWidth | 0 | ||
| ||||
.pf-v6-c-tabs__item.pf-m-action.pf-m-disabled | --pf-v6-c-tabs__link--before--BorderBlockEndWidth | 1px | ||
| ||||
.pf-v6-c-tabs__item.pf-m-action.pf-m-disabled | --pf-v6-c-tabs__link--before--BorderInlineStartWidth | 0 | ||
| ||||
.pf-v6-c-tabs__item.pf-m-action.pf-m-disabled | --pf-v6-c-tabs__link--after--BorderWidth | 0 | ||
.pf-v6-c-tabs__item.pf-m-action.pf-m-disabled | --pf-v6-c-tabs__link--BackgroundColor | transparent | ||
.pf-v6-c-tabs__link:is(:disabled, .pf-m-disabled, .pf-m-aria-disabled) | --pf-v6-c-tabs__link--BackgroundColor | (In light theme) #c7c7c7 | ||
| ||||
.pf-v6-c-tabs__link.pf-m-expanded | --pf-v6-c-tabs__link-toggle-icon--Rotate | 90deg | ||
| ||||
.pf-v6-c-tabs__item-action .pf-v6-c-button | --pf-v6-c-button--FontSize | 0.875rem | ||
| ||||
.pf-v6-c-tabs__scroll-button:nth-of-type(1) | --pf-v6-c-tabs__scroll-button--before--BorderInlineEndWidth | 1px | ||
| ||||
.pf-v6-c-tabs__scroll-button:nth-of-type(2) | --pf-v6-c-tabs__scroll-button--before--BorderInlineStartWidth | 1px | ||
| ||||
.pf-v6-c-tabs__add .pf-v6-c-button | --pf-v6-c-button--FontSize | 0.875rem | ||
| ||||
.pf-v6-c-tabs.pf-m-inset-none | --pf-v6-c-tabs--inset | 0 | ||
.pf-v6-c-tabs.pf-m-inset-none | --pf-v6-c-tabs--m-vertical--inset | 0 | ||
.pf-v6-c-tabs.pf-m-inset-none | --pf-v6-c-tabs--m-vertical--m-box--inset | 0 | ||
.pf-v6-c-tabs.pf-m-inset-sm | --pf-v6-c-tabs--inset | 0.5rem | ||
| ||||
.pf-v6-c-tabs.pf-m-inset-sm | --pf-v6-c-tabs--m-vertical--inset | 0.5rem | ||
| ||||
.pf-v6-c-tabs.pf-m-inset-sm | --pf-v6-c-tabs--m-vertical--m-box--inset | 0.5rem | ||
| ||||
.pf-v6-c-tabs.pf-m-inset-md | --pf-v6-c-tabs--inset | 1rem | ||
| ||||
.pf-v6-c-tabs.pf-m-inset-md | --pf-v6-c-tabs--m-vertical--inset | 1rem | ||
| ||||
.pf-v6-c-tabs.pf-m-inset-md | --pf-v6-c-tabs--m-vertical--m-box--inset | 1rem | ||
| ||||
.pf-v6-c-tabs.pf-m-inset-lg | --pf-v6-c-tabs--inset | 1.5rem | ||
| ||||
.pf-v6-c-tabs.pf-m-inset-lg | --pf-v6-c-tabs--m-vertical--inset | 1.5rem | ||
| ||||
.pf-v6-c-tabs.pf-m-inset-lg | --pf-v6-c-tabs--m-vertical--m-box--inset | 1.5rem | ||
| ||||
.pf-v6-c-tabs.pf-m-inset-xl | --pf-v6-c-tabs--inset | 2rem | ||
| ||||
.pf-v6-c-tabs.pf-m-inset-xl | --pf-v6-c-tabs--m-vertical--inset | 2rem | ||
| ||||
.pf-v6-c-tabs.pf-m-inset-xl | --pf-v6-c-tabs--m-vertical--m-box--inset | 2rem | ||
| ||||
.pf-v6-c-tabs.pf-m-inset-2xl | --pf-v6-c-tabs--inset | 3rem | ||
| ||||
.pf-v6-c-tabs.pf-m-inset-2xl | --pf-v6-c-tabs--m-vertical--inset | 3rem | ||
| ||||
.pf-v6-c-tabs.pf-m-inset-2xl | --pf-v6-c-tabs--m-vertical--m-box--inset | 3rem | ||
|