ラジオグループ
ラジオグループを使用すると、ユーザーは相互に排他的なオプションのリストから単一のオプションを選択できます。
インストール
npx nextui-cli@latest add radio
上記のコマンドは個別のインストール専用です。もし@nextui-org/react
がグローバルにインストール済みの場合は、このステップをスキップできます。@nextui-org/react
がすでにグローバルにインストールされている場合は、このステップをスキップできます。
インポート
使い方
無効化
デフォルト値
説明付き
水平
制御された
value
と onValueChange
プロパティを使用して、ラジオ入力値を制御できます。
注意: NextUI
Radio
は、onChange
のようなネイティブイベントもサポートしており、Formik や React Hook Form のようなフォームライブラリで役立ちます。
無効
スロット
-
RadioGroup スロット
- base: ラジオグループのルートラッパー。ラベルとラッパーを囲みます。
- wrapper: ラジオグループのラッパーで、すべてのラジオを囲みます。
- label: ラジオグループのラベルで、ラッパーの前に配置されます。
- description: ラジオグループの説明スロットです。
- errorMessage: ラジオグループのエラーメッセージスロットです。
-
ラジオのスロット
- base: ラジオのルートラッパーで、すべての要素を囲みます。
- wrapper: ラジオのラッパーで、コントロール要素を囲みます。
- labelWrapper: ラベルと説明のラッパーです。
- label: ラジオのラベルスロットです。
- control: コントロール要素で、円形の要素です。
- description: ラジオの説明スロットです。
カスタムスタイル
カスタムの Tailwind CSS クラスをコンポーネントスロットに渡すことで、RadioGroup
および Radio
コンポーネントをカスタマイズできます。
カスタム実装
ラジオグループをさらにカスタマイズする必要がある場合は、useRadio
フックを使用して独自の実装を作成できます。
データ属性
-
RadioGroup の
base
要素には、次の属性があります。- data-orientation: ラジオグループの向き。
orientation
プロパティに基づきます。
- data-orientation: ラジオグループの向き。
-
Radio の
base
要素には、次の属性があります。- data-selected: ラジオが選択されている場合。
isSelected
プロパティに基づきます。 - data-pressed: ラジオが押された場合。usePressに基づきます。
- data-invalid: ラジオが無効な場合。
validationState
プロパティに基づきます。 - data-readonly: ラジオが読み取り専用の場合。
isReadOnly
プロパティに基づきます。 - data-hover-unselected: ラジオがホバーされ、チェックされていない場合。useHoverに基づきます。
- data-hover: ラジオがホバーされている場合。useHoverに基づきます。
- data-focus: ラジオがフォーカスされている場合。useFocusRingに基づきます。
- data-focus-visible: キーボードでラジオがフォーカスされている場合。useFocusRingに基づきます。
- data-disabled: ラジオが無効になっている場合。
isDisabled
プロパティに基づきます。
- data-selected: ラジオが選択されている場合。
アクセシビリティ
- ラジオグループは、ARIA を介して支援技術に公開されます。
- 各ラジオは、ネイティブ HTML の
<input>
要素で構築されており、必要に応じてカスタムスタイルを適用するために視覚的に隠すことができます。 - フォームの自動入力などのブラウザ機能を完全にサポートします。
- 矢印キーのキーボードイベントをサポートします。
- キーボードフォーカスの管理とクロスブラウザの正規化を行います。
- 支援技術のためのグループおよびラジオのラベル付けをサポートします。
API
RadioGroup のプロパティ
属性 | 型 | 説明 | デフォルト |
---|---|---|---|
children | ReactNode | ReactNode[] | ラジオ要素のリストです。 | - |
label | ReactNode | ラジオグループのラベルです。 | - |
size | sm | md | lg | ラジオのサイズです。 | md |
color | default | primary | secondary | success | warning | danger | ラジオボタンの色。 | primary |
orientation | horizontal | vertical | ラジオグループの配置方向。 | vertical |
name | string | HTMLフォームを送信する際に使用されるRadioGroupの名前。詳しくはMDNを参照してください。 | - |
value | string[] | 現在選択されている値。(制御された状態) | - |
defaultValue | string[] | デフォルトで選択されている値。(非制御状態) | - |
description | ReactNode | ラジオグループの説明。 | - |
errorMessage | ReactNode | ((v: ValidationResult) => ReactNode) | ラジオグループのエラーメッセージ。 | - |
validate | (value: string) => ValidationError | true | null | undefined | コミット時(例:blur時)に入力値を検証し、無効な値に対してエラーメッセージを返します。 validationBehavior が native に設定されている場合、検証エラーはフォーム送信時に表示されます。リアルタイム検証には、isInvalid プロパティを使用してください。 | - |
validationBehavior | native | aria | 値が不足しているか無効な場合に、フォーム送信を防ぐためにネイティブHTMLフォーム検証を使用するか、ARIAを介してフィールドを必須または無効としてマークするか。 | aria |
isDisabled | boolean | ラジオグループが無効かどうか。 | false |
isRequired | boolean | フォーム送信前にユーザーがチェックボックスを必須にする必要があるかどうか。 | false |
isReadOnly | boolean | チェックボックスをユーザーが選択できるが、変更できないかどうか。 | - |
isInvalid | boolean | ラジオグループが無効かどうか。 | false |
validationState | valid | invalid | 入力が「有効」または「無効」の視覚的なスタイルを表示するかどうか。(非推奨)代わりにisInvalidを使用してください。 | false |
disableAnimation | boolean | アニメーションを無効にするかどうか。 | false |
classNames | Record<"base"| "wrapper"| "label", string> | ラジオグループのスロットにカスタムクラス名をセットできます。 | - |
RadioGroup イベント
属性 | 型 | 説明 |
---|---|---|
onChange | React.ChangeEvent<HTMLInputElement> | 要素の値が変更されたときに呼び出されるハンドラー。event.target.value (string)にアクセスして新しい値を取得できます。 |
onValueChange | ((value: string) => void) | 値が変更されたときに呼び出されるハンドラー。 |
Radio プロパティ
属性 | 型 | 説明 | デフォルト |
---|---|---|---|
children | ReactNode | ラジオボタンのラベル。 | - |
label | ReactNode | ラジオボタンのラベル。 | - |
size | sm | md | lg | ラジオボタンのサイズ。 | md |
color | default | primary | secondary | success | warning | danger | ラジオボタンの色。 | primary |
description | ReactNode | フィールドの説明。選択する内容の特定の要件など、ヒントを提供します。 | - |
isDisabled | boolean | ラジオボタンが無効かどうか。 | false |
isRequired | boolean | フォーム送信前にユーザーがチェックボックスを必須にする必要があるかどうか。 | false |
isReadOnly | boolean | チェックボックスをユーザーが選択できるが、変更できないかどうか。 | - |
isInvalid | boolean | ラジオボタンが無効かどうか。これはラジオグループのvalidationState プロパティに基づいています。 | false |
disableAnimation | boolean | アニメーションを無効にするかどうか。 | false |
classNames | Record<"base"| "wrapper"| "labelWrapper" | "label" | "control" | "description", string> | ラジオボタンのスロットにカスタムクラス名をセットできます。 | - |