# Tabs API

> Auto-generated API reference for `Tabs` from @vuetify/v0 (Vuetify0).
> Source of truth: https://0.vuetifyjs.com/api/tabs

## Related

- https://0.vuetifyjs.com/components/disclosure/tabs
- https://0.vuetifyjs.com/composables/selection/create-step
- https://0.vuetifyjs.com/components/disclosure/expansion-panel
- https://0.vuetifyjs.com/components/disclosure/dialog

## Tabs.Root

### Props

| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| `namespace` | `string \| undefined` | `"v0:tabs"` | no | Namespace for dependency injection (must match child namespace) |
| `disabled` | `boolean \| undefined` | `false` | no | Disables the entire tabs instance |
| `enroll` | `boolean \| undefined` | `false` | no | Auto-select non-disabled items on registration |
| `mandatory` | `boolean \| "force" \| undefined` | `"force"` | no | Controls mandatory tab behavior: - false: No mandatory tab enforcement - true: Prevents deselecting the last selected item - `force` (default): Automatically selects the first non-disabled tab |
| `circular` | `boolean \| undefined` | `true` | no | Whether arrow key navigation wraps around |
| `orientation` | `TabsOrientation \| undefined` | `"horizontal"` | no | Tab orientation for keyboard navigation |
| `activation` | `any` | `"automatic"` | no | Activation mode: - `automatic`: Tab activates on focus (arrow keys) - `manual`: Tab activates on Enter/Space only |
| `modelValue` | `T \| T[] \| undefined` | — | no | — |

### Events

| Name | Type | Description |
|---|---|---|
| `update:model-value` | `[value: T \| T[]]` | — |

### Slots

| Name | Type | Description |
|---|---|---|
| `default` | `TabsRootSlotProps` | — |

## Tabs.Item

### Props

| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| `id` | `any` | — | no | Unique identifier (auto-generated if not provided) |
| `value` | `V \| undefined` | — | no | Value associated with this tab (used to match with TabsPanel) |
| `disabled` | `MaybeRefOrGetter<boolean> \| undefined` | — | no | Disables this specific tab |
| `namespace` | `string \| undefined` | `"v0:tabs"` | no | Namespace for dependency injection |
| `ariaLabel` | `string \| undefined` | — | no | Accessible label for this tab |
| `ariaLabelledby` | `string \| undefined` | — | no | ID of element that labels this tab |
| `ariaDescribedby` | `string \| undefined` | — | no | ID of element that describes this tab |
| `el` | `MaybeRefOrGetter<Element \| null \| undefined>` | — | no | Focus target when renderless / `:as="null"`. Defaults to the Atom host. |

### Slots

| Name | Type | Description |
|---|---|---|
| `default` | `TabsItemSlotProps` | — |

## Tabs.List

### Props

| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| `label` | `string \| undefined` | — | no | Accessible label for the tablist |
| `namespace` | `string \| undefined` | `"v0:tabs"` | no | Namespace for dependency injection |

### Slots

| Name | Type | Description |
|---|---|---|
| `default` | `TabsListSlotProps` | — |

## Tabs.Panel

### Props

| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| `value` | `V` | — | yes | Value to match with corresponding TabsItem |
| `namespace` | `string \| undefined` | `"v0:tabs"` | no | Namespace for dependency injection |

### Slots

| Name | Type | Description |
|---|---|---|
| `default` | `TabsPanelSlotProps` | — |
