Novi UI
コンポーネント一覧

Switch

即座に効く設定に使う。保存ボタンが必要なものは Checkbox にする。Raster では矩形で表示されるため、状態のラベル併記を強く推奨する。

デモ

使い分け

こうする

  • 切り替えた瞬間に効く設定に使う(保存ボタンを待たない)
  • ラベルは状態でなく対象を書く(「メール通知」であって「オン」ではない)

こうしない

  • フォームの中で保存ボタンを待つ項目に使わない。Checkbox にする
  • 「はい / いいえ」の質問に使わない。Radio にする

Props

Switch の props 一覧
名前型説明
size'sm' | 'md' | 'lg'
color'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'danger'
namestring
valuestring
isSelectedboolean
defaultSelectedboolean
onChange(isSelected: boolean) => void
isDisabledboolean
isReadOnlyboolean
descriptionReactNode
childrenReactNode
classNamesClassNames<typeof switchSlots>

Slot

構成部位に data-slot が出力されます。 CSS の上書きやテストはこれを狙ってください。

  • root必須
  • track必須
  • thumb必須
  • label
  • description

アクセシビリティ

キーボード操作
キー動作
Space切り替える
  • Space で切り替える。状態は `aria-checked` で伝わるが、色と形だけに依存せずラベルを併記する
  • キーボードだけで操作できます。フォーカスリングはコントラスト比 3:1 以上です。
  • 本文のコントラスト比は light / dark とも 4.5:1 以上を検査で保証しています。
  • prefers-reduced-motion が有効なときはアニメーションを行いません。