Unstyled Tabs
Tabs are UI elements for organizing and navigating between groups of related content.
TabPanelUnstyled API
Import
import TabPanelUnstyled from '@mui/base/TabPanelUnstyled';
// or
import { TabPanelUnstyled } from '@mui/base';Props
Props of the native component are also available.
| Name | Type | Default | Description | 
|---|---|---|---|
| value* | number | string  | The value of the TabPanel. It will be shown when the Tab with the corresponding value is selected.  | |
| children | node | The content of the component.  | |
| component | elementType | The component used for the root node. Either a string to use a HTML element or a component.  | |
| slotProps | { root?: func | object }  | {} | The props used for each slot inside the TabPanel.  | 
| slots | { root?: elementType } | {} | The components used for each slot inside the TabPanel. Either a string to use a HTML element or a component. See Slots API below for more details.  | 
The
ref is forwarded to the root element.Slots
To learn how to customize the slot, check out the Overriding component structure guide.
| Name | Default class | Default HTML tag | Description | 
|---|---|---|---|
| root | .MuiTabPanel-root | 'div' | The component that renders the root. | 
You can override the style of the component using one of these customization options:
- With a global class name.
 - With a rule name as part of the component's 
styleOverridesproperty in a custom theme. 
TabUnstyled API
Import
import TabUnstyled from '@mui/base/TabUnstyled';
// or
import { TabUnstyled } from '@mui/base';Props
Props of the native component are also available.
| Name | Type | Default | Description | 
|---|---|---|---|
| action | func | { current?: { focusVisible: func } }  | A ref for imperative actions. It currently only supports  focusVisible() action. | |
| component | elementType | The component used for the root node. Either a string to use a HTML element or a component.  | |
| disabled | bool | false | If  true, the component is disabled. | 
| onChange | func | Callback invoked when new value is being set.  | |
| slotProps | { root?: func | object }  | {} | The props used for each slot inside the Tab.  | 
| slots | { root?: elementType } | {} | The components used for each slot inside the Tab. Either a string to use a HTML element or a component. See Slots API below for more details.  | 
| value | number | string  | You can provide your own value. Otherwise, we fall back to the child position index.  | 
The
ref is forwarded to the root element.Slots
To learn how to customize the slot, check out the Overriding component structure guide.
| Name | Default class | Default HTML tag | Description | 
|---|---|---|---|
| root | .MuiTab-root | 'button' | The component that renders the root. | 
You can override the style of the component using one of these customization options:
- With a global class name.
 - With a rule name as part of the component's 
styleOverridesproperty in a custom theme. 
TabsListUnstyled API
Import
import TabsListUnstyled from '@mui/base/TabsListUnstyled';
// or
import { TabsListUnstyled } from '@mui/base';Props
Props of the native component are also available.
| Name | Type | Default | Description | 
|---|---|---|---|
| children | node | The content of the component.  | |
| component | elementType | The component used for the root node. Either a string to use a HTML element or a component.  | |
| slotProps | { root?: func | object }  | {} | The props used for each slot inside the TabsList.  | 
| slots | { root?: elementType } | {} | The components used for each slot inside the TabsList. Either a string to use a HTML element or a component. See Slots API below for more details.  | 
The
ref is forwarded to the root element.Slots
To learn how to customize the slot, check out the Overriding component structure guide.
| Name | Default class | Default HTML tag | Description | 
|---|---|---|---|
| root | .MuiTabsList-root | 'div' | The component that renders the root. | 
You can override the style of the component using one of these customization options:
- With a global class name.
 - With a rule name as part of the component's 
styleOverridesproperty in a custom theme. 
TabsUnstyled API
Import
import TabsUnstyled from '@mui/base/TabsUnstyled';
// or
import { TabsUnstyled } from '@mui/base';Props
Props of the native component are also available.
| Name | Type | Default | Description | 
|---|---|---|---|
| children | node | The content of the component.  | |
| component | elementType | The component used for the root node. Either a string to use a HTML element or a component.  | |
| defaultValue | false | number | string  | The default value. Use when the component is not controlled.  | |
| direction | 'ltr' | 'rtl'  | 'ltr' | The direction of the text.  | 
| onChange | func | Callback invoked when new value is being set.  | |
| orientation | 'horizontal' | 'vertical'  | 'horizontal' | The component orientation (layout flow direction).  | 
| selectionFollowsFocus | bool | If  true the selected tab changes on focus. Otherwise it only changes on activation. | |
| slotProps | { root?: func | object }  | {} | The props used for each slot inside the Tabs.  | 
| slots | { root?: elementType } | {} | The components used for each slot inside the Tabs. Either a string to use a HTML element or a component. See Slots API below for more details.  | 
| value | false | number | string  | The value of the currently selected  Tab. If you don't want any selected Tab, you can set this prop to false. | 
The
ref is forwarded to the root element.Slots
To learn how to customize the slot, check out the Overriding component structure guide.
| Name | Default class | Default HTML tag | Description | 
|---|---|---|---|
| root | .MuiTabs-root | 'div' | The component that renders the root. | 
You can override the style of the component using one of these customization options:
- With a global class name.
 - With a rule name as part of the component's 
styleOverridesproperty in a custom theme.