Files
HiveGrid-Wireframes/04 Standards/Subframe UI Standards/07_Global-Rules.md
T

4.2 KiB

Global Rules

Diese Datei enthaelt Regeln, die fuer alle Komponenten gelten koennen. Sie ist nicht fuer Vokabular gedacht; Vokabular steht in 03_Benennung. Gruppenspezifische visuelle Regeln stehen in 04_Gruppenregeln.

Component API

Regel: Props folgen einer Prioritaets-Hierarchie

Status: Entschieden

Props werden nach ihrer visuellen und funktionalen Ueberschreibungsstaerke eingeordnet. Je staerker eine Prop andere Darstellung ueberschreiben kann, desto hoeher steht sie in der Reihenfolge.

Prioritaet Kategorie Bedeutung Beispiele
1 Zustand Ueberschreibt andere Styles am staerksten disabled, error, loading, checked, indeterminate, selected
2 Erscheinung Legt visuelle Grundidentitaet fest variant, tone, color, primary, secondary, neutral, destructive, success, warning, information
3 Groesse Veraendert Hoehe, Padding, Schriftgroesse oder Dichte size
4 Layout-Sonderfaelle Veraendert Struktur oder Rahmenbedingungen fillContainer, borderless, noPadding, border, square
5 Sichtbarkeit / Toggles Blendet Teile ein oder aus showLabel, hideLabel, dismissible, noAction
6 Inhalt / Slots Liefert Inhalt, aber steuert nicht die visuelle Prioritaet children, icon, image, actions, actionChildren, Textwerte

Innerhalb einer Kategorie wird nach Ueberschreibungsstaerke sortiert. Beispiel: disabled steht vor error, weil disabled die Komponente vollstaendig inaktiv macht.

Edge Cases

Regel: Props nach Funktion sortieren, nicht nach Namen

Status: Entschieden

Ein Prop-Name allein entscheidet nicht ueber die Kategorie. Die Bedeutung des Props entscheidet.

Beispiel:

Prop Bedeutung Kategorie
state bei echtem UI-Zustand disabled, error, loading Zustand
state bei Progress-Status uploading, success, error als visuelle Erscheinung Erscheinung

Leitfrage: Ueberschreibt es alles als Zustand, oder beschreibt es die Grunderscheinung?

Regel: Technische Primitive haben Vorrang vor idealer Sortierung

Status: Entschieden

Bei Subframe- oder Core-Primitives koennen Props technisch vorgegeben sein. Wenn eine Prop als cannot be modified oder technisch fixiert gilt, wird sie nicht erzwungen umsortiert. Der Rest der Props wird um diese technische Vorgabe herum sortiert.

Beispiele:

  • checked
  • indeterminate
  • open
  • value

Semantisch koennen diese Props trotzdem in Kategorie 1 gehoeren. Die technische Reihenfolge hat aber Vorrang, wenn eine Umsortierung das Primitive bricht.

Regel: Slot-Props gehoeren zu Inhalt

Status: Entschieden

Slot-Props und React-Nodes gehoeren zur niedrigsten Prioritaet. Sie erzeugen Inhalt, sind aber keine Style-Treiber.

Beispiele:

  • children
  • actions
  • actionChildren
  • icon
  • image

Regel: Komponenten duerfen Kategorien auslassen

Status: Entschieden

Eine Komponente muss nicht Props aus jeder Kategorie haben. Wenn eine Komponente keine Zustands-Props hat, beginnt ihre API-Hierarchie einfach bei der naechsten passenden Kategorie.

Beispiel: Avatar, Badge oder Tag koennen ohne disabled oder error trotzdem regelkonform sein.

Regel: Subkomponenten folgen derselben Logik

Status: Entschieden

Subkomponenten und interne Parts folgen derselben Prop-Prioritaet im Kleinen.

Beispiele:

  • Switch.Thumb
  • Progress.Indicator
  • Select.Trigger