Checkbox
Checkboxは、ユーザーがオプションのオン/オフを切り替えるためのフォームコントロールです。単独で使用するか、複数を並べてグループとして使用します。
3
Sizes
3
Radius
3
States
Radix
Base
Playground
プレビュー
Dr=sm16px
Size
Color
Weight
Radius
Checked
Items
Options
<Checkbox
label="Email"
/>Sizes
smボックス14px
アイコン10px
フォント12px
Gap6px
クリック24px
defaultボックス16px
アイコン12px
フォント14px
Gap8px
クリック32px
lgボックス20px
アイコン14px
フォント16px
Gap10px
クリック36px
| Size | ボックス | アイコン | フォント | Gap | クリック領域 | プレビュー |
|---|---|---|---|---|---|---|
sm | 14px | 10px | 12px | 6px | 24px | |
default | 16px | 12px | 14px | 8px | 32px | |
lg | 20px | 14px | 16px | 10px | 36px |
Features
With Field
Fieldコンポーネントと組み合わせることで、disabled状態を自動的に継承します。
<Field>
<Field.Label>Notifications</Field.Label>
<div className="flex flex-col gap-2">
<Checkbox defaultChecked label="Email" />
<Checkbox label="Push" />
<Checkbox label="SMS" />
</div>
</Field><Field>
<Field.Label>Notifications</Field.Label>
<div className="flex gap-6">
<Checkbox defaultChecked label="Email" />
<Checkbox label="Push" />
<Checkbox label="SMS" />
</div>
</Field>States
Unchecked
Checked
Indeterminate
Disabled
Disabled On
<Checkbox />
<Checkbox defaultChecked />
<Checkbox checked="indeterminate" />
<Checkbox disabled />
<Checkbox disabled defaultChecked />API
Props
checkedundefinedboolean | "indeterminate"制御モードでのチェック状態
defaultCheckedundefinedboolean非制御モードでの初期チェック状態
onCheckedChangeundefined(checked: boolean | "indeterminate") => void状態変更時のコールバック
size"default""sm" | "default" | "lg"チェックボックスのサイズ (14/16/20px)
radius"sm""none" | "sm" | "md"角丸 (none: 0px / sm: 2px / md: 4px)
weight"bold""thin" | "bold"ボーダーの太さ (thin: 1px / bold: 2px)
color"default""default" | "primary"チェック/未確定状態の塗り色
labelundefinedstringチェックボックスのラベルテキスト
disabledundefinedboolean無効状態
requiredundefinedboolean必須フィールド
nameundefinedstringフォームのname属性
value"on"stringフォームのvalue属性
| Name | Type | Default | Description |
|---|---|---|---|
checked | boolean | "indeterminate" | undefined | 制御モードでのチェック状態 |
defaultChecked | boolean | undefined | 非制御モードでの初期チェック状態 |
onCheckedChange | (checked: boolean | "indeterminate") => void | undefined | 状態変更時のコールバック |
size | "sm" | "default" | "lg" | "default" | チェックボックスのサイズ (14/16/20px) |
radius | "none" | "sm" | "md" | "sm" | 角丸 (none: 0px / sm: 2px / md: 4px) |
weight | "thin" | "bold" | "bold" | ボーダーの太さ (thin: 1px / bold: 2px) |
color | "default" | "primary" | "default" | チェック/未確定状態の塗り色 |
label | string | undefined | チェックボックスのラベルテキスト |
disabled | boolean | undefined | 無効状態 |
required | boolean | undefined | 必須フィールド |
name | string | undefined | フォームのname属性 |
value | string | "on" | フォームのvalue属性 |
Anatomy
1
2
3
4
I agreestate
checked · unchecked · indeterminate1
Root
フレックスコンテナ
2
Box
チェックボックス本体
3
Checkmark
チェック時に表示
4
Label
オプション
Best Practices
✓
推奨
- ✓明確なラベルを付けて使用する
- ✓複数選択が必要な場合に使用する
- ✓グループの全選択にindeterminateを使用
- ✓必須項目にはFieldと組み合わせる
✕
避けるべき
- ✗排他的選択にCheckboxを使わない(Radioを使用)
- ✗即座に効果が出る切替にはSwitchを使用
- ✗ラベルなしで使用しない
- ✗選択肢が多すぎる場合はSelectを検討
Accessibility
キーボード操作
Spaceチェック切替
Tabフォーカス移動
ARIA属性
role="checkbox"自動付与aria-checkedtrue/false/mixed- フォーカスインジケーター
labelでクリック領域拡大