ラジオグループ

ラジオグループを使用すると、ユーザーは相互に排他的なオプションのリストから単一のオプションを選択できます。


インストール

npx nextui-cli@latest add radio
上記のコマンドは個別のインストール専用です。もし@nextui-org/react がグローバルにインストール済みの場合は、このステップをスキップできます。 @nextui-org/reactがすでにグローバルにインストールされている場合は、このステップをスキップできます。

インポート

使い方

無効化

デフォルト値

説明付き

水平

制御された

valueonValueChange プロパティを使用して、ラジオ入力値を制御できます。

注意: NextUI Radio は、onChange のようなネイティブイベントもサポートしており、FormikReact Hook Form のようなフォームライブラリで役立ちます。

無効

スロット

  • RadioGroup スロット

    • base: ラジオグループのルートラッパー。ラベルとラッパーを囲みます。
    • wrapper: ラジオグループのラッパーで、すべてのラジオを囲みます。
    • label: ラジオグループのラベルで、ラッパーの前に配置されます。
    • description: ラジオグループの説明スロットです。
    • errorMessage: ラジオグループのエラーメッセージスロットです。
  • ラジオのスロット

    • base: ラジオのルートラッパーで、すべての要素を囲みます。
    • wrapper: ラジオのラッパーで、コントロール要素を囲みます。
    • labelWrapper: ラベルと説明のラッパーです。
    • label: ラジオのラベルスロットです。
    • control: コントロール要素で、円形の要素です。
    • description: ラジオの説明スロットです。

カスタムスタイル

カスタムの Tailwind CSS クラスをコンポーネントスロットに渡すことで、RadioGroup および Radio コンポーネントをカスタマイズできます。

カスタム実装

ラジオグループをさらにカスタマイズする必要がある場合は、useRadio フックを使用して独自の実装を作成できます。

データ属性

  • RadioGroup の base 要素には、次の属性があります。

    • data-orientation: ラジオグループの向き。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 プロパティに基づきます。

アクセシビリティ

  • ラジオグループは、ARIA を介して支援技術に公開されます。
  • 各ラジオは、ネイティブ HTML の <input> 要素で構築されており、必要に応じてカスタムスタイルを適用するために視覚的に隠すことができます。
  • フォームの自動入力などのブラウザ機能を完全にサポートします。
  • 矢印キーのキーボードイベントをサポートします。
  • キーボードフォーカスの管理とクロスブラウザの正規化を行います。
  • 支援技術のためのグループおよびラジオのラベル付けをサポートします。

API

RadioGroup のプロパティ

属性説明デフォルト
childrenReactNode | ReactNode[]ラジオ要素のリストです。-
labelReactNodeラジオグループのラベルです。-
sizesm | md | lgラジオのサイズです。md
colordefault | primary | secondary | success | warning | dangerラジオボタンの色。primary
orientationhorizontal | verticalラジオグループの配置方向。vertical
namestringHTMLフォームを送信する際に使用されるRadioGroupの名前。詳しくはMDNを参照してください。-
valuestring[]現在選択されている値。(制御された状態)-
defaultValuestring[]デフォルトで選択されている値。(非制御状態)-
descriptionReactNodeラジオグループの説明。-
errorMessageReactNode | ((v: ValidationResult) => ReactNode)ラジオグループのエラーメッセージ。-
validate(value: string) => ValidationError | true | null | undefinedコミット時(例:blur時)に入力値を検証し、無効な値に対してエラーメッセージを返します。 validationBehaviornativeに設定されている場合、検証エラーはフォーム送信時に表示されます。リアルタイム検証には、isInvalidプロパティを使用してください。-
validationBehaviornative | aria値が不足しているか無効な場合に、フォーム送信を防ぐためにネイティブHTMLフォーム検証を使用するか、ARIAを介してフィールドを必須または無効としてマークするか。aria
isDisabledbooleanラジオグループが無効かどうか。false
isRequiredbooleanフォーム送信前にユーザーがチェックボックスを必須にする必要があるかどうか。false
isReadOnlybooleanチェックボックスをユーザーが選択できるが、変更できないかどうか。-
isInvalidbooleanラジオグループが無効かどうか。false
validationStatevalid | invalid入力が「有効」または「無効」の視覚的なスタイルを表示するかどうか。(非推奨)代わりにisInvalidを使用してください。false
disableAnimationbooleanアニメーションを無効にするかどうか。false
classNamesRecord<"base"| "wrapper"| "label", string>ラジオグループのスロットにカスタムクラス名をセットできます。-

RadioGroup イベント

属性説明
onChangeReact.ChangeEvent<HTMLInputElement>要素の値が変更されたときに呼び出されるハンドラー。event.target.value(string)にアクセスして新しい値を取得できます。
onValueChange((value: string) => void)値が変更されたときに呼び出されるハンドラー。

Radio プロパティ

属性説明デフォルト
childrenReactNodeラジオボタンのラベル。-
labelReactNodeラジオボタンのラベル。-
sizesm | md | lgラジオボタンのサイズ。md
colordefault | primary | secondary | success | warning | dangerラジオボタンの色。primary
descriptionReactNodeフィールドの説明。選択する内容の特定の要件など、ヒントを提供します。-
isDisabledbooleanラジオボタンが無効かどうか。false
isRequiredbooleanフォーム送信前にユーザーがチェックボックスを必須にする必要があるかどうか。false
isReadOnlybooleanチェックボックスをユーザーが選択できるが、変更できないかどうか。-
isInvalidbooleanラジオボタンが無効かどうか。これはラジオグループのvalidationStateプロパティに基づいています。false
disableAnimationbooleanアニメーションを無効にするかどうか。false
classNamesRecord<"base"| "wrapper"| "labelWrapper" | "label" | "control" | "description", string>ラジオボタンのスロットにカスタムクラス名をセットできます。-