Tabs
A component for toggling between related panels on the same page.
API reference
Import the component and assemble its parts:
import { Tabs } from '@base-ui-components/react/tabs';
<Tabs.Root>
  <Tabs.List>
    <Tabs.Tab />
    <Tabs.Indicator />
  </Tabs.List>
  <Tabs.Panel />
</Tabs.Root>Root
Groups the tabs and the corresponding panels.
Renders a <div> element.
| Prop | Type | Default | |
|---|---|---|---|
defaultValue | 
  | 
  | |
value | 
  | 
  | |
onValueChange | 
  | 
  | |
orientation | 
  | 
  | |
className | 
  | 
  | |
render | 
  | 
  | 
| Attribute | Description  | |
|---|---|---|
data-orientation | Indicates the orientation of the tabs.  | |
data-activation-direction | Indicates the direction of the activation (based on the previous selected tab).  | |
List
Groups the individual tab buttons.
Renders a <div> element.
| Prop | Type | Default | |
|---|---|---|---|
activateOnFocus | 
  | 
  | |
loop | 
  | 
  | |
className | 
  | 
  | |
render | 
  | 
  | 
| Attribute | Description  | |
|---|---|---|
data-orientation | Indicates the orientation of the tabs.  | |
data-activation-direction | Indicates the direction of the activation (based on the previous selected tab).  | |
Tab
An individual interactive tab button that toggles the corresponding panel.
Renders a <button> element.
| Prop | Type | Default | |
|---|---|---|---|
value | 
  | 
  | |
className | 
  | 
  | |
render | 
  | 
  | 
| Attribute | Description  | |
|---|---|---|
data-selected | Present when the tab is selected.  | |
data-highlighted | Present when the tab is highlighted.  | |
data-orientation | Indicates the orientation of the tabs.  | |
data-disabled | Present when the tab is disabled.  | |
data-activation-direction | Indicates the direction of the activation (based on the previous selected tab).  | |
Indicator
A visual indicator that can be styled to match the position of the currently active tab.
Renders a <span> element.
| Prop | Type | Default | |
|---|---|---|---|
renderBeforeHydration | 
  | 
  | |
className | 
  | 
  | |
render | 
  | 
  | 
| Attribute | Description  | |
|---|---|---|
data-orientation | Indicates the orientation of the tabs.  | |
data-activation-direction | Indicates the direction of the activation (based on the previous selected tab).  | |
| CSS Variable | Description  | |
|---|---|---|
--active-tab-bottom | Indicates the distance on the bottom side from the parent's container if the tab is active.  | |
--active-tab-height | Indicates the width of the tab if it is active.  | |
--active-tab-left | Indicates the distance on the left side from the parent's container if the tab is active.  | |
--active-tab-right | Indicates the distance on the right side from the parent's container if the tab is active.  | |
--active-tab-top | Indicates the distance on the top side from the parent's container if the tab is active.  | |
--active-tab-width | Indicates the width of the tab if it is active.  | |
Panel
A panel displayed when the corresponding tab is active.
Renders a <div> element.
| Prop | Type | Default | |
|---|---|---|---|
value | 
  | 
  | |
className | 
  | 
  | |
keepMounted | 
  | 
  | |
render | 
  | 
  | 
| Attribute | Description  | |
|---|---|---|
data-orientation | Indicates the orientation of the tabs.  | |
data-activation-direction | Indicates the direction of the activation (based on the previous selected tab).  | |
data-hidden | Present when the panel is hidden.  | |