Switch
通常は変更がすぐ反映される、オン・オフの設定に使います。
プレビュー
ライブ・任意・固定の設定
制御されたライブ価格とメール通知を切り替え、管理者が固定した無効な設定と比較します。
インストール
この Registry を初めて使う場合は、先に 基本設定と共通スタイルの導入 を完了してください。
npx shadcn@latest add @neumorphism-ui/switch共有 base を一度導入した後、CLI でコンポーネントと依存関係を追加します。
ライブ・任意・固定の設定
npx shadcn@latest add @neumorphism-ui/label @neumorphism-ui/switch使い方
表示する Label を Switch の id に接続します。初期値は defaultChecked、実際の設定を管理する場合は checked と onCheckedChange を使います。
"use client";
import { useId } from "react";
import { Label } from "@/components/ui/label";
import { Switch } from "@/components/ui/switch";
export default function Example() {
const id = useId();
return (
<div className="flex items-center gap-3">
<Switch id={id} name="notifications" defaultChecked />
<Label htmlFor={id}>Email notifications</Label>
</div>
);
}API リファレンス
native checkbox input に role=switch を適用し、form とブラウザーの動作を維持します。checked、defaultChecked、onCheckedChange に対応します。
| コンポーネント | プロパティ | 型 | デフォルト | 説明 |
|---|---|---|---|---|
Switch | checked / defaultChecked | boolean | — | 制御されたオン状態、または非制御時の初期状態です。 |
Switch | onCheckedChange | (checked: boolean) => void | — | オン状態が変わったときに呼び出されます。 |
Switch | onChange | React.ChangeEventHandler<HTMLInputElement> | — | native checkbox の change event を受け取ります。 |
Switch | disabled | boolean | false | input とポインターによる操作を無効にします。 |
Switch | name / value / required | native input props | — | form 送信に使用する native checkbox 属性です。 |
アクセシビリティ
- 01
実際の checkbox に role=switch を適用することで、checked 状態を支援技術に伝え、Space キーの操作も維持します。
- 02
Label の htmlFor と Switch の id を関連付けるか、aria-label を指定してください。
- 03
即時適用されず、別途 save action が必要な boolean 選択には Checkbox の方が適している場合があります。