Skip to content
fandhe-frontend
GitHub

Toggle Group

fandhe-frontend-pre-styled-uitoggle_group mod が提供するスタイル済み Toggle Group 部品です。 複数トグルボタンのグループで、高々 1 項目が押下される single モード (ToggleGroup)と複数項目が同時に押下される multiple モード (MultiToggleGroup)の 2 状態機械を選べます。

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

Demo

複数の Toggle をまとめて排他/複数選択させるグループ部品。root にのみ role="group" を固定付与します(RadioGroup の role="radiogroup" とは異なります)。

Features

  • `size`/`colorPalette` variant クラスを `root` へ付与し、headless-ui の `toggle_group::root` へ委譲する。
  • `radio_group`/`radio_card`/`segment_group` と同型の `orientation`/`labelled_by` 軸を持つ。
  • 各 item は単体 Toggle と同じ押下状態付きネイティブ button で `aria-pressed`/`data-state` 語彙を揃える。
  • `root` のみが `role="group"` を持つ(`role="radiogroup"` の RadioGroup とは異なる)。

Anatomy

root
  item

API Reference

Arguments

NameTypeDefaultDescription
sizeSizeSize::Mdサイズ variant。
paletteColorPaletteColorPalette::AccentcolorPalette 軸。
disabledboolfalseグループ全体の無効化状態。
orientationOption<Orientation>None`Some` のとき `root` へ `data-orientation` を出力する(`role="group"` に `aria-orientation` は WAI-ARIA 上許可されないため付与しない)。
labelled_byOption<&str>None`Some` のとき `aria-labelledby` を付与する。
attrsVec<(&str, &str)>root パーツへ合成する追加属性。
childrenVec<Node>root 配下の子ノード(通常 `toggle_group::item` 列)。

Data Attributes

PartAttributeObserved Values
itemdata-disabled
itemdata-pressed
itemdata-stateoff, on
itemdata-valuebottom, center, left, middle, right, top
rootdata-disabled
rootdata-orientationvertical

CSS Variables

VariableDefault
--fandhe-toggle-group-item-font-sizevar(--fandhe-font-font-size-sm)
--fandhe-toggle-group-item-padding-x0.75rem
--fandhe-toggle-group-item-padding-y0.375rem

Accessibility

Keyboard Interactions

KeyDescription
Space / Enterネイティブ `<button>` のブラウザ既定動作により各 item の押下状態を切り替える(ブラウザ実装依存、本フレームワークの JS 出力によらない)。

WAI-ARIA

AttributeDescription
role="group"`root` に固定付与する。
aria-labelledby`labelled_by` が `Some` のときのみ `root` へ付与する。
aria-pressed各 item に付与する。押下状態(true/false)を表す。