Portabler UI-Vertrag

Die folgenden IDs sind die kanonischen Eigentümer ihrer Regeln.

Portabilität

FE-PORT-001: Portabel ist der Standard

Ein konformes Modul funktioniert mit einem anderen konformen Facade-Theme ohne Modul-Änderungen und ohne projektprivate Facade-Klassen.

FE-STYLE-001: Keine private Facade-Abhängigkeit

Portable Module dürfen keine beliebigen Klassen oder Selektoren voraussetzen, die nur von einer bestimmten Facade definiert werden. Geteilte PrimeVue-.p-*-Theme-Regeln sind keine privaten Klassen. Nicht-PrimeVue-Styling, das ein Modul benötigt, gehört in dieses Modul, sollte aber durch Konformität mit geteilten Komponenten und Semantik minimiert werden.

Wenn mehrere Ihrer eigenen Module dasselbe Nicht-PrimeVue-Styling benötigen, gehört es weder in die Facade noch in jedes Modul: siehe Die Design-Schicht.

Komponenten und Affordanz

FE-UI-001: PrimeVue verwenden, wenn es das Steuerelement abdeckt

Wenn PrimeVue die erforderliche Semantik, Interaktion und beabsichtigte Affordanz bietet, muss das Modul es verwenden.

FE-UI-002: Datenform ist keine Affordanz

Die Fähigkeit, dieselben Werte darzustellen, macht zwei Steuerelemente nicht gleichwertig. Ein SelectButton ist nicht automatisch ein Ersatz für einen gleitenden Dreistellungs-Schalter, wenn die beabsichtigte Affordanz sichtbar und im Verhalten ein Schalter ist.

FE-UI-003: Gleiche Semantik und Affordanz bedeutet gleiches Erscheinungsbild

Gleichwertige Steuerelemente müssen Größen, Abstände, Farben, Typografie, Rahmen, Schatten sowie Fokus-, Hover-, Disabled-, Invalid- und Bewegungsverhalten teilen. Ein eigenes Komposit benennt sein visuelles PrimeVue-Geschwister und erbt jede zutreffende geteilte Laufzeit-Property.

FE-UI-004: Der Verzicht auf PrimeVue ist eng gefasst

PrimeVue darf nur weggelassen werden, wenn das Modul nichts rendert, das physisch oder semantisch PrimeVue-artig ist. Eine reine Diagrammkomponente qualifiziert sich dafür; ein Diagramm mit einer Schaltfläche oder einem Formularfeld nicht.

FE-UI-005: Niemals Komponenten-APIs erfinden

Eine undokumentierte Prop oder ein undokumentiertes Verhalten ist keine Abkürzung. Der PrimeVue-ToggleSwitch wird nicht zu einem Dreistellungs-Steuerelement, indem man eine neue positions-Prop erfindet. Wenn keine PrimeVue-Komponente und keine Komposition die erforderliche Affordanz liefert, verwenden Sie den geprüften Prozess für eigene Geschwister.

Tailwind und Tokens

FE-TW-001: Wippy-Tailwind wird unterstützt

Das gemeinsame Wippy-Preset ist ein unterstützter Vertrag zur Build-Zeit. Module dürfen seine dokumentierten Utilities verwenden und es für Domänenlayout, anwendungsspezifische Breakpoints, Dekoration und neuartige Visualisierung erweitern.

FE-TW-002: Kompilierte Werte sind keine Laufzeit-Tokens

Utilities wie px-3, rounded-md und duration-200 kompilieren normalerweise zu Konstanten. Sie bieten eine konsistente Grundlinie, ändern sich aber nicht, wenn eine Facade Laufzeit-Theme-Variablen austauscht.

FE-TW-003: Das Erscheinungsbild geteilter Geschwister folgt der Laufzeitsemantik

Wenn eine Erscheinungs-Property über Themes hinweg einem PrimeVue-Geschwister folgen muss, verwenden Sie eine dokumentierte, laufzeitgestützte semantische Utility oder ein direktes öffentliches Token. Eine feste Utility ist nur zulässig, wenn die Property ausdrücklich als platform-invariant eingestuft ist.

FE-TW-004: Geschützte Zuordnungen behalten ihre Bedeutung

Module dürfen das Preset erweitern, aber die geschützte Semantik für primary, surface, severity, text, content, highlight oder portable Steuerelemente nicht inkompatibel umdefinieren.

FE-TOKEN-001: Jedes Token muss existieren

Jede --p-*-Referenz muss im gewählten generierten Manifest vorhanden sein.

FE-TOKEN-002: Token-Namen sind keine erratbaren APIs

Konstruieren Sie ein Token niemals per Analogie. Durchsuchen Sie den Token-Katalog oder das Manifest des gewählten Pakets.

Barrierefreiheit

FE-A11Y-001: Eigenbau ist kein Freibrief bei Barrierefreiheit

Eine Ausnahme für ein eigenes Steuerelement muss gültiges HTML, Tastaturinteraktion, Fokus, zugänglichen Namen, Zustand und Disabled-Verhalten bewahren. Interaktive Elemente dürfen nicht verschachtelt werden.