Angular フォームライブラリ | ng-hub-ui-forms

アクセシブルな Angular フォームフィールド(input、textarea、slider、select、datepicker)。コントロール/グループ/フォーム単位のエラーを自動表示し、リアクティブフォームと CSS 変数に対応します。

API リファレンス

forms の完全な仕様をここにまとめました。バインド、リッスン、プロジェクション、テーマ設定ができるすべてが一か所に集約されています。必要なものを接続し、好きなようにスタイリングしてください — standalone で signal フレンドリーです。

インプット

14 個のインプットで forms を調整。通常の Angular @Input と同じようにバインドできます。

名前デフォルト説明
formControlName / [formControl]string | FormControl任意のフィールドをリアクティブコントロールにバインドします。コントロールが touched かつ無効な場合、エラーが自動的に表示されます。
labelstring''フィールドのラベルテキスト。
labelType'stacked' | 'floating' | 'horizontal''stacked'ラベルの配置。
placeholderstring''プレースホルダーテキスト。
formTextstringコントロールの下に表示されるヘルパーテキスト。
type (hub-input)'text' | 'number' | 'password' | 'email' | 'tel' | 'url' | 'color' | 'checkbox' | 'switch' | 'counter' | 'file''text'hub-input のフォーマット。
prepend / append (hub-input)string | string[]コントロールの前後に表示される input-group のアドオンテキスト。
mask (hub-input)stringテキストフォーマット用のパターンマスク。トークン: 0 = 数字、A = 英字、* = 英数字。その他の文字はリテラルな区切り文字です。例: "0000 0000 0000 0000"。
unmaskValue (hub-input)booleanfalseマスクを設定した場合、フォーマット済みテキストの代わりに、入力された生の文字(区切り文字なし)をフォームに保存します。
range (hub-slider)booleanfalse2 つのつまみを持つレンジスライダー。値は [lower, upper] のタプルになります。
format (hub-select)'dropdown' | 'buttons' | 'checkbox' | 'radio''dropdown'select が同じ値をどのようにレンダリングするか。
items / bindLabel / bindValue / multiple (hub-select)any[] / string / string / boolean選択肢、オブジェクト項目の label/value プロパティ名、および複数選択。
mode (hub-datepicker)'single' | 'range''single'単一の日付または日付範囲。
min / max / disabledDates (hub-datepicker)string | Date / (date) => boolean選択可能な日付の範囲と、日付ごとの無効化を判定する述語。

アウトプット

forms の動作に反応 — ロジックを接続できる 4 個のイベント。

名前説明
valueChangeEventEmitter<value>フィールドの値が変化するたびに発行されます。
submit (form[hubForm])EventEmitter<void>ツリーが touched としてマークされた後、送信時に発行されます。
opened / closed / cleared / viewChange (hub-datepicker)EventEmitterカレンダーのライフサイクルおよびナビゲーションイベント。
onOpen / onClose / onClear / onSearch / onAdd / onRemove (hub-select)EventEmitterドロップダウンのライフサイクルおよびタグ/タイプアヘッドイベント。

テンプレート

自分好みに — 4 個のテンプレートスロットでカスタムマークアップをプロジェクションできます。

名前説明サンプル
hubFormTextリッチなヘルパーテキストコンテンツを投影します。<ng-template hubFormText>…</ng-template>
hubValidationError指定されたエラーキーのメッセージを上書きします。<ng-template hubValidationError key="min">…</ng-template>
hubLegendカスタムの fieldset legend コンテンツ。<ng-template hubLegend>…</ng-template>
ng-option-tmp (hub-select)カスタムのドロップダウンオプションのレンダリング(再エクスポートされた ng-select ディレクティブ)。<ng-template ng-option-tmp let-item="item">…</ng-template>

CSS 変数

17 個の CSS 変数であらゆるピクセルをテーマ設定。:root で上書きするか、ラッパーにスコープを限定できます。

共有フィールドトークン

すべてのフィールドで共有される要素:ラベル、ヘルパーテキスト、検証フィードバック、フォーカスリング。

変数デフォルト説明
--hub-label-font-weightvar(--hub-ref-font-weight-medium)string フィールドラベルのウェイト。
--hub-form-feedback-colorvar(--hub-sys-color-danger)color 検証エラーのテキスト色。
--hub-form-text-colorvar(--hub-sys-text-muted)color ヘルパーテキストの色。
--hub-form-focus-ring-colorvar(--hub-sys-focus-ring-color)color フォーカスリングの色。
--hub-form-invalid-border-colorvar(--hub-sys-color-danger)color 無効なコントロールの境界線の色。

入力

input、textarea、select トリガーで共有されるテキストコントロールのスキン。

変数デフォルト説明
--hub-input-bgvar(--hub-sys-surface-page)color コントロールの背景。
--hub-input-border-colorvar(--hub-sys-border-color-default)color コントロールの境界線の色。
--hub-input-border-radiusvar(--hub-ref-radius-md)length コントロールの境界半径。
--hub-input-padding-y0.375remlength コントロールの垂直パディング。
--hub-input-padding-x0.75remlength コントロールの水平パディング。
--hub-input-focus-border-colorvar(--hub-sys-color-primary)color フォーカス時の境界線の色。

select、slider、datepicker

システムトークンに連鎖するコンポーネント固有のアクセント。

変数デフォルト説明
--hub-select-option-selected-bgvar(--hub-sys-color-primary)color 選択されたドロップダウンオプションの背景。
--hub-select-value-bgvar(--hub-sys-surface-elevated)color 複数選択チップの背景。
--hub-slider-track-fill-bgvar(--hub-sys-color-primary)color slider トラックの塗りつぶし部分。
--hub-slider-thumb-bgvar(--hub-sys-color-primary)color slider のつまみの色。
--hub-daterangepicker-active-bgvar(--hub-sys-color-primary)color 選択されたカレンダー日の背景。
--hub-daterangepicker-in-range-bgcolor-mix(in srgb, var(--hub-sys-color-primary) 14%, transparent)color 範囲内のカレンダー日の背景。

スタイリングとテーマ設定

スタイリングのサンプルはまだドキュメント化されていません。このセクションには、カスタマイズのレシピやテーマ設定のサンプルが含まれる予定です。