TabBar
Панель переключателей табов. Задаёт:
size—l(верхнеуровневый) илиm(внутри контента).orientation—horizontal(по умолчанию) илиvertical.markerPosition— позиция активного маркера (before/after).slotActionButton— слот справа от табов для дополнительных действий.
Когда использовать
- Внутри
Tabsкак единственный контейнер списка кнопок-табов. - Если нужно разместить дополнительные действия справа от табов (через слот
slotActionButton).
Анатомия
Orientation
horizontal — бар в строку, vertical — колонкой.
Size
m — дефолт, l — для крупных лейаутов.
Marker position
Положение активного маркера относительно содержимого таба: before — перед, after — после.
Установка
pnpm add @cloud-ru/ds-tabs
import { Tabs } from '@cloud-ru/ds-tabs'
<Tabs.Bar />
Примеры использования
Size L — верхнеуровневый
tsx
import { SIZE, Tabs } from '@cloud-ru/ds-tabs';
export function SizeL() {
return (
<Tabs defaultValue='a'>
<Tabs.TabBar size={SIZE.L}>
<Tabs.Tab value='a' label='Первая' />
<Tabs.Tab value='b' label='Вторая' />
</Tabs.TabBar>
</Tabs>
);
}Vertical orientation
tsx
import { ORIENTATION, Tabs } from '@cloud-ru/ds-tabs';
export function Vertical() {
return (
<Tabs defaultValue='a'>
<Tabs.TabBar orientation={ORIENTATION.Vertical}>
<Tabs.Tab value='a' label='Профиль' />
<Tabs.Tab value='b' label='Безопасность' />
</Tabs.TabBar>
</Tabs>
);
}Props
Types
Props
TabBarProps| Prop | Type | Default | Required | Description |
|---|---|---|---|---|
children | ReactElement<TabProps, string | JSXElementConstructor<any>>[] | — | yes | Контент (элементы Tabs.Tab) |
className | string | — | no | CSS-класс |
data-test-id | string | — | no | |
disableDivider | boolean | false | no | Скрыть разделитель под/рядом с панелью табов |
markerPosition | "after" | "before" | after | no | Поз иция маркера относительно таб-бара. Значения ориентационно-нейтральны, в Figma та же ось названа сторонами: `before` = Figma `top` (horizontal) / `left` (vertical), `after` = Figma `bottom` (horizontal) / `right` (vertical). |
orientation | "horizontal" | "vertical" | horizontal | no | Ориентация |
size | "l" | "m" | l | no | Размер панели табов: L — верхнеуровневый, M — на уровне контента |
slotActionButton | ReactNode | — | no | Слот действия: контент после списка табов — справа при горизонтальной ориентации, снизу при вертикальной. Разделитель под ним не продолжается. |