Skip to content
fandhe-frontendcore v0.4.3
GitHub

Checkbox

fandhe-frontend-pre-styled-ui の checkbox mod が提供するスタイル済み Checkbox 部品です。

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

Demo

data-state="checked"/"unchecked"/"indeterminate" の 3 態を持つチェックボックス。visually-hidden な input[type="checkbox"] がフォーム送信・キーボード操作の意味論を担い、チェックマークは CSS の border 合成で描画します(画像アセット不使用)。

Size

Features

  • headless-ui の checkbox::root へ委譲し、size/colorPalette variant クラスを付与する。
  • 3 値チェック状態(Unchecked/Checked/Indeterminate)を型で表現し、aria-checked の偽装・不整合な値を型で塞ぐ。
  • control パーツ(<div aria-hidden="true">)は視覚的なチェックボックス表現であり、支援技術からは隠して二重読み上げを防ぐ。
  • invalid/required/readonly の各フラグを CheckboxProps で受け取り、data-* 属性・ネイティブ属性へ反映する。

Anatomy

root
  hidden-input
  control
    indicator
  label

API Reference

Arguments

NameTypeDefaultDescription
sizeSizeSize::Mdサイズ variant。
paletteColorPaletteColorPalette::AccentcolorPalette 軸。
props&CheckboxProps—checked(3 値)・disabled・invalid・required・readonly を束ねる構造体。
attrsVec<(&str, &str)>—root パーツへ合成する追加属性。
childrenVec<Node>—root 配下の子ノード(通常 control/label/hidden-input を含む)。

Data Attributes

PartAttributeObserved Values
controldata-disabled(値なし)
controldata-invalid(値なし)
controldata-statechecked, indeterminate, unchecked
hidden-inputdata-disabled(値なし)
hidden-inputdata-invalid(値なし)
hidden-inputdata-statechecked, indeterminate, unchecked
indicatordata-disabled(値なし)
indicatordata-invalid(値なし)
indicatordata-statechecked, indeterminate, unchecked
labeldata-disabled(値なし)
labeldata-invalid(値なし)
labeldata-statechecked, indeterminate, unchecked
rootdata-disabled(値なし)
rootdata-invalid(値なし)
rootdata-statechecked, indeterminate, unchecked

CSS Variables

VariableDefault
--fandhe-checkbox-check-height0.5rem
--fandhe-checkbox-check-width0.25rem
--fandhe-checkbox-control-size1rem
--fandhe-checkbox-dash-width0.5rem
--fandhe-checkbox-gapvar(--fandhe-space-2)
--fandhe-checkbox-label-font-sizevar(--fandhe-font-font-size-sm)

Examples

説明文付き(label + description の合成)

checkbox は description 専用パートを持たない(headless anatomy に存在せず、chakra-ui も同様に呼び出し側合成のため。fandhe_frontend_pre_styled_ui::checkbox rustdoc「shadcn/ui との突合」節参照)。label の後ろへ通常の子ノードとして fg-muted + 1 段小さいフォントサイズの説明文を並べるだけで、2 段階の型階層を得られます。

Accessibility

WAI-ARIA

AttributeDescription
aria-checkedhidden-input パーツへ CheckedState から算出した値(true/false/mixed)を付与する(Indeterminate のとき "mixed")。
aria-invalidprops.invalid が true のとき hidden-input パーツへ "true" を付与する。
aria-hiddencontrol パーツ(視覚的表現のみを担う <div>)に固定付与し、支援技術からの重複読み上げを防ぐ。