コンテンツにスキップ

Tabs

ARIA 属性の関連付け、矢印キーによるフォーカス移動、縦横の切り替え、手動選択に対応したタブ。

<pe-tabs class="Tabs">
<div class="List" data-tabs-list aria-label="Account settings">
  <button type="button" class="Tab" data-tabs-trigger="profile">Profile</button>
  <button type="button" class="Tab" data-tabs-trigger="security">Security</button>
  <span class="Indicator" data-tabs-indicator></span>
</div>

<section class="Panel" data-tabs-content="profile">Profile settings</section>
<section class="Panel" data-tabs-content="security">Security settings</section>
</pe-tabs>

Tabs は、複数のコンテンツを切り替えて表示するときに使います。リストにアクセシブル名を付け、各トリガーとパネルに同じ空でない値を指定します。パネルの表示に時間がかかる場合は手動選択を使います。

キー 動作
Left / Right 横並びのタブ間を移動します。初期設定では、端から反対側へ移動します
Up / Down 縦並びのタブ間を移動します。初期設定では、端から反対側へ移動します
Home / End 最初 / 最後の有効なタブへ移動
Enter / Space 手動選択モードで、フォーカス中のタブを選択します

無効なトリガーはスキップされます。ボタンにはネイティブの disabled を優先してください。

パーツ セレクター 役割
ホスト <pe-tabs> ライフサイクルと選択値を管理します
リスト [data-tabs-list] role="tablist" とタブの向きが設定されます
トリガー [data-tabs-trigger="value"] タブ用の ARIA 属性、tabindex、選択状態が設定されます
パネル [data-tabs-content="value"] タブパネル用の ARIA 属性と表示状態が設定されます
インジケーター [data-tabs-indicator] 選択中のタブを示す任意の装飾要素。位置は CSS 変数で受け取ります
名前説明
data-tabs-value初期値および現在の選択値。更新すると一致する有効なタブが選択されます。
data-tabs-orientation"horizontal"(初期値)または "vertical"。ARIA 属性と、移動に使う矢印キーを切り替えます。
data-tabs-activation"automatic"(初期値)または "manual"。フォーカス移動時に自動選択するか、Enter / Space で選択するかを指定します。
data-tabs-loop"true"(初期値)または "false"。端から反対側へフォーカスを移動するかを指定します。
名前説明
valuestring | null現在の値を取得します。文字列を代入すると選択されます。
select(value, options?)void有効なタブを選択します。{ focus: true } を渡すとそのトリガーにフォーカスします。
名前説明
pe-tabs:change選択中のタブが変わったときに発火します。イベントはバブリングし、Shadow DOM の境界も越えます。

イベントの detail には次の値が含まれます。

名前説明
value新しい選択値。選択できるタブがない場合は null。
previousValue以前の選択値。
triggerアクティブ化したタブトリガー(該当する場合)。
panel対応するタブパネル(該当する場合)。
reason"click"、"keyboard"、"programmatic"、"attribute"、"disabled"、または "missing"。
activationDirection"left"、"right"、"up"、"down"、または "none"。
名前説明
data-stateトリガーとパネル上: "active" または "inactive"。ホスト上: 現在の値を反映します。
data-activation-directionホストとアクティブなトリガー上: "left"、"right"、"up"、"down"、または "none"。
data-tabs-indicatorタブリスト内に置く任意の装飾要素です。位置を表す CSS 変数が設定されます。

[data-tabs-indicator] がある場合、コンポーネントは次の CSS 変数を設定します。

名前説明
--active-tab-leftリスト左端からの距離。
--active-tab-rightリスト右端からの距離。
--active-tab-topリスト上端からの距離。
--active-tab-bottomリスト下端からの距離。
--active-tab-widthアクティブなトリガーの幅。
--active-tab-heightアクティブなトリガーの高さ。