Skip to content

Tabs

概要

TabsTabs.Root, Tabs.List, Tabs.Trigger, Tabs.Content を組み合わせて使うタブです。表示中のパネル切り替えだけでなく、activationMode によるキーボード操作の制御、lazyMount / unmountOnExit による描画コスト調整、orientation による縦配置にも対応しています。

TIP

旧タブ UI(TabsClassic)はレガシー扱いです。このページでは current API を案内します。

Usage 使用例

基本

監視画面のように、複数の情報パネルをひとつの領域で切り替える基本パターンです。

制御モード

valueonValueChange を使うと、外部ボタンや URL 状態と同期したタブ制御ができます。

縦配置

orientation="vertical" を使うと、設定画面のサイドナビ風レイアウトにできます。

API Reference

Tabs.Root Props

PropsTypeDefaultDescription
valuestring制御モード時の選択中タブです
defaultValuestring非制御モード時の初期タブです
onValueChange(details: { value: string }) => voidタブ変更時に呼ばれます
variant"line" | "subtle" | "enclosed" | "outline" | "plain""line"タブ見出しの見た目です
size"sm" | "md" | "lg""md"タブの高さと文字サイズです
orientation"horizontal" | "vertical""horizontal"タブの並び方向です
activationMode"automatic" | "manual""automatic"フォーカス移動時に即選択するか、Enter / Space で確定するかを切り替えます
lazyMountbooleanfalse未表示パネルの初回描画を遅延します
unmountOnExitbooleanfalse非アクティブパネルを DOM から外します
loopFocusbooleantrueキーボード移動で末尾から先頭、先頭から末尾へループさせます
fittedbooleanfalseタブを均等幅にします
idstring自動生成ARIA 連携に使うルート id です
classstring追加クラスです
styleRecord<string, string>ルートのインラインスタイルです

Tabs.List Props

PropsTypeDefaultDescription
classstringタブリストに追加するクラスです
styleRecord<string, string>タブリストのインラインスタイルです

Tabs.Trigger Props

PropsTypeDefaultDescription
valuestring対応するタブ値です
disabledbooleanfalse個別に無効化します
classstringトリガーに追加するクラスです
styleRecord<string, string>トリガーのインラインスタイルです

Tabs.Content Props

PropsTypeDefaultDescription
valuestring対応するタブ値です
classstringコンテンツに追加するクラスです
styleRecord<string, string>コンテンツのインラインスタイルです

Tabs.Indicator Props

PropsTypeDefaultDescription
classstring互換用の追加クラスです
styleRecord<string, string>互換用のインラインスタイルです

Subcomponents

ComponentDescription
Tabs.Root状態管理、ARIA 属性、キーボード操作を管理するルートです
Tabs.Listタブ見出しの並びを定義します
Tabs.Trigger個々のタブ切り替えボタンです
Tabs.Content対応するパネル本文です
Tabs.IndicatorAPI 互換用に export されているマーカーです

補足

Tabs.Indicator は export されていますが、現行実装では lineenclosed などの見た目を Tabs.Root / Tabs.Trigger 側で描画しているため、通常は明示的に配置する必要はありません。

Mithril UI Kit Documentation