Skip to content
fandhe-frontend
GitHub

Tabs

fandhe-frontend-pre-styled-uitabs mod が提供するスタイル済み Tabs 部品です。 WAI-ARIA APG の Tabs パターン(role="tablist"/"tab"/"tabpanel"aria-selected・相互参照する aria-controls/aria-labelledby)に準拠した マークアップを SSR 時点の静的な選択状態から組み立てます。ページ内に収まる コンテンツ切り替え UI であり、他のセクションを覆うオーバーレイではないため、 掲示位置を中和する専用 CSS は不要です。

関連 API: fandhe-frontend-pre-styled-ui API / fandhe-frontend-headless-ui API

Demo

headless-ui の Tabs(WAI-ARIA Tabs パターン)に pre-styled-ui の data-scope / data-part セレクタ CSS を適用した静的掲示です。

選択中のタブは data-state="active" で強調されます。

Features

  • WAI-ARIA APG の Tabs パターン(role="tablist"/"tab"/"tabpanel"、aria-selected、相互参照する aria-controls/aria-labelledby、roving tabindex)に準拠したマークアップを組み立てる。
  • root / list / trigger / content の 4 パーツに加え、選択タブの位置を示す装飾パーツ indicator(opt-in)を持つ 5 パーツ構成。
  • ActivationMode(Automatic/Manual)と Orientation(Horizontal/Vertical)を data-activation-mode / data-orientation として出力する。
  • size / color-palette variant で root にクラスを付与する。

Anatomy

root
  list
    trigger
  content

API Reference

Arguments

NameTypeDefaultDescription
sizeSizeSize::Mdroot へ付与するサイズ variant。
paletteColorPaletteroot へ付与する配色 variant。
props&TabsProps<'_>id/selected/orientation/activation_mode/loop_focus/indicator を束ねる SSR 静的設定値。

Data Attributes

PartAttributeObserved Values
contentdata-orientationhorizontal
contentdata-stateactive, inactive
listdata-activation-modeautomatic
listdata-loop-focustrue
listdata-orientationhorizontal
rootdata-orientationhorizontal
triggerdata-orientationhorizontal
triggerdata-stateactive, inactive
triggerdata-valueoverview, usage

CSS Variables

VariableDefault
--fandhe-tabs-content-paddingvar(--fandhe-space-4) 0
--fandhe-tabs-trigger-paddingvar(--fandhe-space-2) var(--fandhe-space-4)

Accessibility

WAI-ARIA

AttributeDescription
role="tablist" / aria-orientationlist に付与。
role="tab" / aria-selected / aria-controlstrigger に付与。選択状態と対応する content の id を表す。
role="tabpanel" / aria-labelledbycontent に付与。対応する trigger の id を指す。