Skip to content
fandhe-frontendcore v0.4.3
GitHub

Toggle Group

fandhe-frontend-pre-styled-ui の toggle_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" とは異なります)。variant(Outline/Ghost)はイシュー #2024 の shadcn/ui 突合で新設しました。最下段は複数押下可能な MultiToggleGroup 相当(bold/italic が同時押下)の見た目です。

Features

  • size/variant/colorPalette variant クラスを root へ付与し、headless-ui の toggle_group::root へ委譲する。
  • variant(ToggleGroupVariant::Outline/Ghost)はイシュー #2024 の shadcn/ui 突合で新設した軸。Outline(既定)は輪郭あり、Ghost は背景・輪郭なしの最小装飾(crate::toggle::ToggleVariant と同じ意味論。custom property 経由で item パーツへ伝播する)。
  • 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。
variantToggleGroupVariantToggleGroupVariant::Outline外観 variant(Outline/Ghost、イシュー #2024)。
paletteColorPaletteColorPalette::AccentcolorPalette 軸。
disabledboolfalseグループ全体の無効化状態。
orientationOption<Orientation>NoneSome のとき root へ data-orientation を出力する(role="group" に aria-orientation は WAI-ARIA 上許可されないため付与しない)。
labelled_byOption<&str>NoneSome のとき aria-labelledby を付与する。
attrsVec<(&str, &str)>—root パーツへ合成する追加属性。
childrenVec<Node>—root 配下の子ノード(通常 toggle_group::item 列)。

Data Attributes

PartAttributeObserved Values
itemdata-disabled(値なし)
itemdata-orientationvertical
itemdata-pressed(値なし)
itemdata-stateoff, on
itemdata-valuebold, bottom, center, italic, left, middle, right, top, underline
rootdata-disabled(値なし)
rootdata-orientationvertical

CSS Variables

VariableDefault
--fandhe-toggle-group-item-backgroundvar(--fandhe-color-bg)
--fandhe-toggle-group-item-border-colorvar(--fandhe-color-border)
--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-labelledbylabelled_by が Some のときのみ root へ付与する。
aria-pressed各 item に付与する。押下状態(true/false)を表す。