ポータブルUI契約

以下のIDが、それぞれのルールの正式な所有者です。

ポータビリティ

FE-PORT-001: ポータブルであることがデフォルト

準拠したモジュールは、モジュールを編集することなく、またプロジェクト固有の非公開ファサードクラスに頼ることなく、別の準拠ファサードテーマでも動作します。

FE-STYLE-001: 非公開ファサードへの依存禁止

ポータブルなモジュールは、1つのファサードだけが定義する任意のクラスやセレクタを必要としてはいけません。共有のPrimeVue .p-* テーマルールは非公開クラスではありません。あるモジュールが必要とするPrimeVue以外のスタイリングはそのモジュールに属しますが、共有コンポーネントとセマンティクスに従うことで最小化すべきです。

自分の複数のモジュールが同じPrimeVue以外のスタイリングを必要とする場合、それはファサードにも各モジュールにも属しません。デザインレイヤーを参照してください。

コンポーネントとアフォーダンス

FE-UI-001: PrimeVueがコントロールを満たすなら使用する

PrimeVueが必要なセマンティクス、インタラクション、意図されたアフォーダンスを提供するなら、モジュールはそれを使用しなければなりません。

FE-UI-002: データ形状はアフォーダンスではない

同じ値を表現できるからといって、2つのコントロールが等価になるわけではありません。意図されたアフォーダンスが見た目にも挙動としてもトグルである場合、SelectButton はスライド式の3状態トグルの代替に自動的になるわけではありません。

FE-UI-003: セマンティクスとアフォーダンスが同じなら見た目も同じ

等価なコントロールは、サイズ、間隔、色、タイポグラフィ、ボーダー、シャドウ、フォーカス、ホバー、無効、不正、モーションの挙動を共有しなければなりません。カスタムのコンポジットは、PrimeVueにおける視覚的な兄弟を明示し、該当するすべての共有ランタイムプロパティを継承します。

FE-UI-004: PrimeVueの省略は狭い範囲に限られる

PrimeVueを省略できるのは、モジュールが物理的にもセマンティックにもPrimeVue的なものを一切レンダリングしない場合に限られます。チャートのみのコンポーネントは該当しますが、ボタンやフォームフィールドを含むチャートは該当しません。

FE-UI-005: コンポーネントAPIを発明しない

ドキュメント化されていないpropや挙動は近道ではありません。PrimeVueの ToggleSwitch は、新しいpositions propを発明したところで3状態のコントロールにはなりません。必要なアフォーダンスを供給するPrimeVueコンポーネントやコンポジションが存在しない場合は、レビュー済みのカスタム兄弟プロセスを使用してください。

Tailwindとトークン

FE-TW-001: Wippy Tailwindはサポートされている

共有のWippyプリセットはサポートされたビルド時の契約です。モジュールはドキュメント化されたユーティリティを使用でき、ドメイン固有のレイアウト、アプリケーション固有のブレークポイント、装飾、新規の可視化のために拡張できます。

FE-TW-002: コンパイルされた値はランタイムトークンではない

px-3、rounded-md、duration-200 のようなユーティリティは通常、定数にコンパイルされます。一貫したベースラインを提供しますが、ファサードがランタイムのテーマ変数を差し替えても変化しません。

FE-TW-003: 共有される兄弟の見た目はランタイムのセマンティクスに追従する

見た目のプロパティがテーマをまたいでPrimeVueの兄弟に追従しなければならない場合は、ドキュメント化されたランタイム連動のセマンティックユーティリティか、公開トークンを直接使用してください。固定値のユーティリティが許されるのは、そのプロパティが明示的に platform-invariant に分類されている場合だけです。

FE-TW-004: 保護されたマッピングは意味を保つ

モジュールはプリセットを拡張できますが、保護された primary、surface、severity、text、content、highlight、ポータブルコントロールのセマンティクスを非互換な形で再定義してはいけません。

FE-TOKEN-001: すべてのトークンは実在しなければならない

すべての --p-* 参照は、選択された生成済みマニフェストに存在しなければなりません。

FE-TOKEN-002: トークン名は推測可能なAPIではない

類推でトークンを組み立ててはいけません。トークンカタログまたは選択したパッケージのマニフェストを検索してください。

アクセシビリティ

FE-A11Y-001: カスタムであることはアクセシビリティの免除ではない

カスタムコントロールの例外は、妥当なHTML、キーボード操作、フォーカス、アクセシブル名、状態、無効時の挙動を維持しなければなりません。インタラクティブ要素をネストしてはいけません。