Перейти к основному содержанию

Обзор

Используйте TabButton для ссылок маршрутов и действий, таких как добавление вкладки или открытие меню переполнения. Он имеет такой же внешний вид, как Вкладки, и для взаимодействия использует Кнопку.

Использование

Состояние и семантика

Ваше приложение передает active на основе текущего состояния маршрута или меню. Это свойство выделяет элемент управления. Установите aria-current="page" для ссылки текущего маршрута. Ссылки маршрутов и соседние действия сохраняют семантику ссылок или кнопок без роли вкладки, aria-selected или связи с панелью. Используйте Tabs.Root, Tabs.List, Tabs.Tab, Tabs.Panel и необязательный Tabs.Indicator для переключения между связанными панелями содержимого. Размещайте элементы управления маршрутом и действиями вне Tabs.List.

Навигация

Задайте href, чтобы отрисовать нативную ссылку. Текущий маршрут управляет своим видом active и значением aria-current.
Для маршрутизации на стороне клиента передайте ссылку маршрутизатора через render, задайте nativeButton={false} и role="link", а разрешенный пункт назначения передайте как href. Сохраняйте параметры состояния маршрута и истории в ссылке маршрутизатора. Пользовательские обертки должны передавать предоставленные props и ref своему элементу anchor.
Явно заданный nativeButton управляет контрактом взаимодействия даже при наличии href. Сопоставьте его с фактически отрисованным элементом. Отключенные ссылки сохраняют роль ссылки и блокируют активацию.

Действия

Без href элемент управления отображает нативную кнопку с type="button". Нативные атрибуты, refs, стили, имена классов и обработчики событий передаются без изменений. render принимает элемент или функцию, получающую props и состояние Button. Refs указывают на фактически отрисованную кнопку или anchor, включая refs, предоставленные для составного элемента.
Используйте startIcon, endIcon и badge для вспомогательного содержимого. Аватар, переданный в слот значка, является декоративным, когда текст называет назначение. size сохраняет публичный контракт размера Button. Явно заданный размер имеет приоритет над размером окружающей ButtonGroup; в противном случае компонент по умолчанию использует sm.

Свойства

boolean
по умолчанию:"false"
Highlights the current destination or an action associated with the active tab. Does not change the control role.
ReactNode
Content following the label and trailing icon, such as a count.
string | ((state: ButtonState) => string | undefined)
CSS class applied to the element, or a function that returns a class based on the component’s state.
ReactNode
Decorative content displayed after the label.
boolean
по умолчанию:"false"
Whether the button should be focusable when disabled.
string
Destination URL. Renders a native anchor when render is omitted unless nativeButton is explicitly true. Custom renderers retain their own element contract.
boolean
по умолчанию:"true"
Whether the rendered root is a native button. Defaults to true for custom renderers. The built-in href anchor defaults to false; an explicit value takes precedence.
ReactElement<unknown, string | JSXElementConstructor<any>> | ComponentRenderFn<HTMLProps, ButtonState>
Caller-supplied root element or renderer. Native attributes, handlers, event details, and refs reach the rendered root. Use nativeButton={false} and role="link" for a custom navigation anchor. Router integration belongs to the caller.
AriaRole
Role of the root element. Use link for custom navigation renderers.
"md" | "sm"
по умолчанию:"sm"
Padding of the tab content: sm or md. Explicit size takes precedence over the ButtonGroup size, then sm applies.
ReactNode
Decorative content displayed before the label.
CSSProperties | ((state: ButtonState) => CSSProperties | undefined)
Style applied to the element, or a function that returns a style object based on the component’s state.