Tinyrack

Field

ラベル、コントロール、説明、ネイティブ妥当性、エラーを組み合わせるアクセシブルな構成です。

主なプロパティ

TRField は Base UI Field の全構造をラップします。LabelDescription、表示中の Error はコントロールに自動的に関連付けられます。RootnamedisabledControl の同名プロパティより優先されます。

パーツ責務
Root名前、利用可否、検証タイミング、dirty・touched・filled・focused の状態
Labelアクセシブルな名前と、クリックでフォーカスする対象
Controlネイティブ入力の値、イベント、妥当性、フォームデータ、リセット
Descriptionaria-describedby に含まれる常時表示の説明
Errorネイティブの妥当性または外部の状態に応じた復旧メッセージ
Validity値、エラー、ネイティブの ValidityState を読み取るレンダープロップ
Itemコレクション内のチェックボックス・ラジオとラベル・説明の配置

値をフォーカス可能なまま送信する場合は ControlreadOnly、操作不可かつフォームデータから除外する場合は Rootdisabled を使います。標準的なパーツの組み合わせでは、aria-labelledbyaria-describedby を手動で設定する必要はありません。

インストール

pnpm add @tinyrack/ui

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

スタイル

@import '@tinyrack/ui/components/field.css';

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

インポート

import { TRField } from '@tinyrack/ui/components/field';

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

プレイグラウンド

プレビュー内で入力すると、操作対象の値が変わります。プレイグラウンドのコントロールでは required、invalid、read-only、disabled、size を切り替えられ、リセットするとコントロールとプレビューの値が初期値に戻ります。

使用方法

サイズ パーマリンク

周囲のコントロールとコンテンツの密度に合うサイズを選びます。

利用可否と有効性の状態 パーマリンク

回復案内には invalid、フォームデータから値を除外する場合は disabled、フォーカスと送信値を保つ場合は readOnly を使います。

送信、復旧、リセット パーマリンク

メールのネイティブな妥当性に対応するエラーを選び、リセットすると入力とフィードバックが復元されます。

コレクション項目とネイティブの妥当性 パーマリンク

Item は選択肢と説明を配置し、Validity は検証ルールを重複させずに現在の状態を公開します。

API

TRField.Root

プロパティ型 / 既定値用途
namestringフィールドを命名し、Control.name より優先します
disabledboolean / falseコントロールを無効化し、すべてのパーツに data-disabled を付与します
invalid, dirty, touchedboolean外部で管理するフィールドの状態
validate同期・非同期バリデーターエラー、エラー配列、または null を返します
validationMode'onSubmit' | 'onBlur' | 'onChange' / 'onSubmit'検証タイミング
validationDebounceTimenumber / 0onChange 検証のデバウンス時間(ミリ秒)
actionsRefRefObject<TRFieldRootActions>validate() を公開します

Control はネイティブ入力のプロパティ、value / defaultValueonValueChange(value, details) を受け取ります。サイズは Root ではなくコントロールに指定します。ControluiSize?: 'md' | 'lg'(既定値 md)を受け取り、ほかの Tinyrack コントロールも同じプロパティを持つため、Root の内側でも単独でも同じルールで指定できます。Label.nativeLabel={false} は、render が label 以外のホスト要素を使う場合に指定します。Error.matchtrue または valueMissing などの ValidityState のキー、Item.disabled は単一の選択肢の無効化、ValidityvalidityvalueinitialValueerrorerrors を提供します。

すべてのホストパーツは ref、ネイティブ属性・イベント、関数形式の className / style、Base UI の render を保持します。名前空間、7 つの名前付きパーツ、各プロパティ・状態型、TRFieldRootActionsTRFieldValidityData、Control の変更イベント型はすべて個別にエクスポートされます。CSS は明示的に読み込みます。