Tinyrack

Radio Group

複数候補から1つを選び、方向キー操作と1つのネイティブフォーム値を提供します。

主なプロパティ

プロパティ選択肢
ラベルaria-labelaria-labelledby、フィールドセットの凡例
非制御は defaultValue、制御は valueonValueChange を使います。
利用可否readOnly は選択項目のフォーカスを保ち、disabled は操作とフォームデータを除外します。
フォームグループの nameformrequired。リセットは defaultValue を復元します。
キーボード方向キーは無効項目を飛ばし、フォーカスと選択を循環します。

グループでは 1 つの値だけを選択できます。2 軸の方向キーを使用し、公開 orientation prop はありません。見た目の方向はレイアウトクラスで指定します。

インストール

pnpm add @tinyrack/ui

長い行はコード領域を横にスクロールして確認できます。

スタイル

@import '@tinyrack/ui/components/radio-group.css';

長い行はコード領域を横にスクロールして確認できます。

インポート

import { TRRadioGroup } from '@tinyrack/ui/components/radio-group';
import { TRRadio } from '@tinyrack/ui/components/radio';

長い行はコード領域を横にスクロールして確認できます。

プレイグラウンド

使用方法

選択全体の利用可否を決める

1つの値を必須にする

外部フォームに関連付ける

外部所有とリセット パーマリンク

`form` は非表示のラジオ入力を別のフォームに関連付けます。ネイティブリセットは非制御のデフォルト値を復元します。

API

値、利用可否、フォーム

プロパティ型 / 既定値用途
value, defaultValueunknown, 未選択選択した子の値を制御または初期化します。
onValueChange(value, details) => void選択を通知し、details.cancel() で拒否できます。
disabled, readOnlyboolean, falseグループを無効にするか、選択値をフォーカス可能な読み取り専用にします。
name, form, requiredネイティブフォーム prop直列化、外部所有、制約検証を設定します。
inputRefRef<HTMLInputElement>グループの非表示ネイティブ入力へアクセスします。

非制御グループは所有フォームのリセット時に defaultValue へ戻り、制御グループは value に従います。無効なグループは FormData から除外されます。

合成とアクセシビリティ

固有値を持つ TRRadio.Root をレンダリングし、グループにアクセシブルな名前を付けます。各項目は TRField.Item の中に TRField.Label と並べて置きます。アイテムが内側のラジオにラベルを結び付けるため、idhtmlFor は不要です。 TRField.Item には TRField.Root の祖先が必須なので、アイテムまたはグループ全体を 1 つの TRField.Root で囲みます。ルートは Base UI の renderref、ネイティブイベントと属性、状態に応じた classNamestyle をサポートします。SSR とハイドレーションでも選択を維持します。

モジュールは TRRadioGroupTRRadioGroupPropsTRRadioGroupState を公開します。CSS は明示的に読み込みます。