Tinyrack

Tabs

3 種類の密度、2 種類の方向、手動・自動アクティベーションに対応するキーボード操作可能なビューです。

主なプロパティ

プロパティ既定値
uiSizemd, lgmd
orientationhorizontal, verticalhorizontal
disabled tabTRTabs.Tab disabledfalse
activationmanual or activateOnFocusmanual
focuslooping or boundedlooping
statecontrolled value, including null, or uncontrolled defaultValuefirst enabled tab

インストール

pnpm add @tinyrack/ui

長い行はコード領域を横にスクロールして確認できます。

スタイル

@import '@tinyrack/ui/components/tabs.css';

長い行はコード領域を横にスクロールして確認できます。

インポート

import { TRTabs } from '@tinyrack/ui/components/tabs';

長い行はコード領域を横にスクロールして確認できます。

プレイグラウンド

使用方法

制御付き手動アクティベーション パーマリンク

矢印キーでフォーカスを移動します。Enter または Space でフォーカス中のタブを選び、結果を更新します。

Overflow と indicator パーマリンク

狭い tab strip は横方向に scroll し、任意の indicator が active tab に追従します。

構造

  • Root は制御・非制御の選択状態、方向、uiSize を管理します。
  • List はアクセシブルな名前を持つ tablist で、activation と focus のループを設定します。
  • Tabvalue で view を識別します。disabled tab は focus できますが activation できません。
  • Indicator は任意で、overflow strip 内でも active tab に追従します。
  • Panel は同じ value を持つ tab とアクセシブルなコンテンツを関連付けます。

API

パート主な props説明
Rootvalue, defaultValue, onValueChange, orientation, uiSizeactive tab をなくす場合は value={null} を使います。値を指定しない場合は最初の enabled tab が選択されます。
ListactivateOnFocus, loopFocus手動 activation と focus のループが既定です。
Tabvalue, disabled, render矢印キーで focus を移動し、手動モードでは Enter または Space で activation します。
IndicatorrenderBeforeHydration, renderBase UI の geometry 変数で動く任意の visual marker です。
Panelvalue, keepMounted, hiddenUntilFound, rendertab value と一致し、ARIA の関連付けを維持します。

Base UI が role、focus 移動、selection、hydration-safe な状態を提供します。Tinyrack foundation style の後に tabs.css を import してください。--tr-tabs-indicator-background--tr-tabs-indicator-size--tr-tabs-radius--tr-tabs-tab-height--tr-tabs-panel-padding でスタイルを調整できます。