Radio Group
少数の見える選択肢から一つだけ選ぶ場合に使います。
プレビュー
表示密度の選択
説明付きの Compact、Comfortable、Spacious の 3 つから表示密度を選びます。
インストール
この Registry を初めて使う場合は、先に 基本設定と共通スタイルの導入 を完了してください。
npx shadcn@latest add @neumorphism-ui/radio-group共有 base を一度導入した後、CLI でコンポーネントと依存関係を追加します。
表示密度の選択
npx shadcn@latest add @neumorphism-ui/label @neumorphism-ui/radio-group使い方
グループに名前を付け、各 RadioGroupItem に固有の value とラベルを指定します。defaultValue で初期値を設定するか、onValueChange で値を制御します。
"use client";
import { useId } from "react";
import { Label } from "@/components/ui/label";
import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group";
export default function Example() {
const id = useId();
return (
<RadioGroup defaultValue="standard" aria-label="Delivery method">
<Label htmlFor={id + "-standard"} className="flex items-center gap-2">
<RadioGroupItem id={id + "-standard"} value="standard" />Standard
</Label>
<Label htmlFor={id + "-express"} className="flex items-center gap-2">
<RadioGroupItem id={id + "-express"} value="express" />Express
</Label>
</RadioGroup>
);
}API リファレンス
各項目を実際の input[type=radio] としてレンダリングし、React context を通じて name と選択状態を共有します。制御・非制御の値、水平・垂直 layout、disabled、required に対応します。
| コンポーネント | プロパティ | 型 | デフォルト | 説明 |
|---|---|---|---|---|
RadioGroup | value / defaultValue | string | — | 制御された選択値、または非制御時の初期値です。 |
RadioGroup | onValueChange | (value: string) => void | — | 選択値が変わったときに呼び出されます。 |
RadioGroup | orientation | "horizontal" | "vertical" | "vertical" | layout の向きと aria-orientation を設定します。 |
RadioGroup | name | string | generated id | すべての項目で共有する native radio name です。 |
RadioGroup | disabled / required | boolean | false | すべての項目に input の制約を設定します。 |
RadioGroupItem | value必須 | string | — | 項目が選択されたときに group へ渡す値です。 |
アクセシビリティ
- 01
RadioGroup の root には aria-label または aria-labelledby でアクセシブルな group 名を指定してください。
- 02
各 RadioGroupItem の id と Label の htmlFor を関連付けてください。
- 03
実際の radio input により、native form 送信とキーボードによる選択動作が維持されます。