14 KiB
Gruppenregeln
Status: Entwurf
Gruppenregeln gelten fuer Komponenten-Bereiche wie Actions, Form Inputs, Data Display, Feedback, Overlays, Navigation, Layout, Typography, Utility und Patterns.
Der Komponenten-Index ist nur eine Link- und Statusuebersicht. Wiederverwendbare Regeln stehen hier oder in 03_Benennung.
Format fuer neue Regeln
Neue Gruppenregeln sollen diese Struktur nutzen:
## Bereichsname
### Regel: [kurzer Regelname]
Status: Offen
Gilt fuer:
- [[Components/Component Name]]
Komponenten-Notizen:
| Komponente | Notiz | Status |
| --- | --- | --- |
| [[Components/Component Name]] | | Offen |
Bereiche
| Bereich | Tag | Zweck |
|---|---|---|
| Actions | #Actions |
Aktions-Komponenten wie Buttons und Links |
| Form Inputs | #FormInputs |
Inputs, Selects, Toggles, Upload, Field Groups |
| Data Display | #DataDisplay |
Tables, Badges, Avatars, Cards, Empty States |
| Feedback | #Feedback |
Alerts, Toasts, Loader, Skeletons, Error States |
| Overlays | #Overlays |
Dialoge, Drawer, Side Panels, Confirmation Flows |
| Navigation | #Navigation |
Sidebar, Tabs, Breadcrumbs, Page Navigation |
| Layout | #Layout |
Cards, Divider, Collapsibles, Page Templates |
| Typography | #Typography |
Labels und textbezogene Komponenten |
| Utility | #Utility |
Utility Controls wie Theme Toggle |
| Patterns | #Patterns |
Zusammengesetzte Patterns aus mehreren Komponenten |
Uebergreifende Control-Regeln
Regel: Control-Hoehen fuer Button und Form Inputs
Status: Teilweise entschieden
Diese Regel definiert konkrete Hoehen fuer Button und ausgewaehlte Form-Input-Controls.
Die Size-Namen selbst sind global in 03_Benennung definiert.
Feste Hoehen sind bisher nur fuer Small, Medium und Large entschieden.
Sie gilt fuer einzeilige Controls und Trigger, nicht fuer mehrzeilige oder stark spezialisierte Eingabeflaechen.
| Size | Height | Height Mode | Status |
|---|---|---|---|
3X Small |
Offen | Offen | Werte offen |
2X Small |
Offen | Offen | Werte offen |
Extra Small |
Offen | Offen | Werte offen |
Small |
32px | Exact | Entschieden |
Medium |
36px | Exact | Entschieden |
Large |
48px | Exact | Entschieden |
Extra Large |
Offen | Offen | Werte offen |
2X Large |
Offen | Offen | Werte offen |
3X Large |
Offen | Offen | Werte offen |
Gilt fuer:
- Components/Button
- Components/Button Group
- Components/Icon Button
- Components/Text Input
- Components/Number Input
- Components/Select
- Components/Multiselect
- Components/Multiselect Tags
- Components/Combobox Autocomplete
- Components/Search Input
- Components/Date Picker
- Components/Toggle Group Segmented Control
Komponenten-Notizen:
| Komponente | Notiz | Status |
|---|---|---|
| Components/Button | Referenz fuer Action-Control-Hoehen | Entschieden |
| Components/Button Group | Einzelne Buttons folgen derselben Size-Regel | Entschieden |
| Components/Icon Button | Square Control folgt derselben Size-Regel; Breite entspricht Hoehe | Entschieden |
| Components/Text Input | Input-Hoehe folgt derselben Size-Regel | Entschieden |
| Components/Number Input | Einzeiliger Input folgt derselben Size-Regel | Entschieden |
| Components/Select | Select-Hoehe folgt derselben Size-Regel | Entschieden |
| Components/Multiselect | Control-Hoehe folgt derselben Size-Regel | Entschieden |
| Components/Multiselect Tags | Tags/Chips muessen zur Control-Hoehe passen | Offen |
| Components/Combobox Autocomplete | Trigger/Input folgt derselben Size-Regel | Entschieden |
| Components/Search Input | Suchfeld folgt derselben Size-Regel | Entschieden |
| Components/Date Picker | Single-date Trigger folgt derselben Size-Regel; Range-Version separat klaeren | Teilweise entschieden |
| Components/Toggle Group Segmented Control | Erstmal gleiche Hoehen; spaeter visuell pruefen | Offen |
Actions
Regel: Actions nutzen Action-Sprache
Status: Offen
Gilt fuer:
Komponenten-Notizen:
| Komponente | Notiz | Status |
|---|---|---|
| Components/Button | Hauptkomponente fuer Actions | Offen |
| Components/Button Group | Gruppierte Actions | Offen |
| Components/Link | Unterschied zwischen Link- und Button-Verhalten klaeren | Offen |
Form Inputs
Regel: Form Inputs teilen eine Field-Anatomy
Status: Entschieden
Gilt fuer Komponenten mit #FormInputs, wenn sie in einem Field-Kontext mit Label, Help text oder Message verwendet werden.
Die Regel steuert die aeussere Field-Struktur, nicht die interne Geometrie des eigentlichen Controls.
Field-Anatomy:
| Element | Name in der Konvention | Position | Typografie / Abstand | Status |
|---|---|---|---|---|
| Label | label |
Oberhalb von Help text oder Control | Abstand zu helpText: 8px |
Entschieden |
| Help text | helpText |
Zwischen Label und Control | Abstand zum Control: 6px | Entschieden |
| Input / Control | Komponenten-Control | Zwischen Help text und Message | Abstand zu message: 4px |
Entschieden |
| Message | message |
Unterhalb des Controls | 12px, Medium | Entschieden |
Naming:
- Der untere Field-Text heisst immer
message. messagewird fuer Props, Slots, Layer-Namen und Dokumentation verwendet.- Der untere Field-Text heisst nicht
label,helper,helpTextodermassage. helpTextist ausschliesslich der Hilfetext oberhalb des Controls.
Komponenten-Notizen:
| Komponente | Notiz | Status |
|---|---|---|
| Components/Text Input | Hauptreferenz fuer Field-Anatomy | Entschieden |
| Components/Textarea | Mehrzeilige Texteingabe; nutzt dieselbe aeussere Field-Anatomy | Entschieden |
| Components/Number Input | Einzeiliges Zahlenfeld mit optionalen Steppern, Prefix oder Suffix | Entschieden |
| Components/Select | Auswahlfeld | Entschieden |
| Components/Multiselect | Auswahlfeld mit mehreren Werten | Entschieden |
| Components/Multiselect Tags | Mehrfachauswahl mit sichtbaren Tags/Chips | Entschieden |
| Components/Combobox Autocomplete | Textfeld mit Such- und Auswahlverhalten | Entschieden |
| Components/Search Input | Spezialisierte Texteingabe fuer Suche | Entschieden |
| Components/Date Picker | Single-date Field nutzt die Field-Anatomy; Range-Version separat klaeren | Teilweise entschieden |
| Components/File Upload | Spezialisierter Input mit gleicher aeusserer Field-Anatomy | Entschieden |
| Components/Input OTP Pin Code | Spezialisiertes Code-Field mit gleicher aeusserer Field-Anatomy | Entschieden |
| Components/Form Group Input Group | Wrapper fuer Label, Help text, Control und Message | Entschieden |
| Components/Checkbox | Nutzt die Field-Anatomy nur, wenn Label, Help text oder Message im Field-Kontext vorkommen | Entschieden |
| Components/Checkbox Group | Nutzt die Field-Anatomy fuer Gruppen-Label, Help text und Message | Entschieden |
| Components/Radio Group | Nutzt die Field-Anatomy fuer Gruppen-Label, Help text und Message | Entschieden |
| Components/Switch | Nutzt die Field-Anatomy nur im Field-Kontext; interne Switch-Struktur bleibt separat | Entschieden |
| Components/Slider Range Slider | Nutzt die Field-Anatomy nur im Field-Kontext; Slider-Geometrie bleibt separat | Entschieden |
| Components/Toggle Group Segmented Control | Nutzt die Field-Anatomy nur im Field-Kontext; interne Toggle-Geometrie bleibt separat | Entschieden |
Regel: Form Inputs nutzen definierte Standardbreiten
Status: Entschieden
Diese Regel definiert Min Width und Default Max Width fuer textnahe Form Inputs.
Fill Container ist optional: Die Komponente darf bei Bedarf die verfuegbare Containerbreite ausfuellen, soll aber nicht automatisch ohne Kontext auf volle Breite gehen.
| Feld | Min Width | Default Max Width | Fill Container | Status |
|---|---|---|---|---|
| Components/Text Input | 12rem / 192px | 20rem / 320px | optional | Entschieden |
| Components/Textarea | 12rem / 192px | 36rem / 576px | optional | Entschieden |
| Components/Number Input | 12rem / 192px | 12rem / 192px | optional | Entschieden |
| Components/Select | 12rem / 192px | 20rem / 320px | optional | Entschieden |
| Components/Multiselect | 12rem / 192px | 24rem / 384px | optional | Entschieden |
| Components/Multiselect Tags | 12rem / 192px | 36rem / 576px | optional | Entschieden |
| Components/Combobox Autocomplete | 12rem / 192px | 24rem / 384px | optional | Entschieden |
| Components/Search Input | 12rem / 192px | 24rem / 384px | optional | Entschieden |
| Components/Date Picker | 12rem / 192px | 20rem / 320px | optional | Entschieden fuer Single Date; Range offen |
Regel: Form Inputs nutzen horizontales Innenpadding
Status: Entschieden
Diese Regel definiert horizontales Innenpadding fuer einzeilige textnahe Form Inputs. Sie gilt fuer Inputs mit Textinhalt und optionale linke oder rechte Icons. Textarea wird nicht ueber diese Regel gesteuert, weil vertikales Padding und mehrzeilige Hoehe separat geklaert werden muessen.
| Fall | Wert | Mode | Status |
|---|---|---|---|
| Linkes Innenpadding ohne Icon | 12px | Exact | Entschieden |
| Rechtes Innenpadding ohne Icon | 12px | Exact | Entschieden |
| Linker Rand zu linkem Icon | 12px | Exact | Entschieden |
| Rechtes Icon zu rechtem Rand | 12px | Exact | Entschieden |
| Icon zu Text | 8px | Exact | Entschieden |
Gilt fuer:
- Components/Text Input
- Components/Number Input
- Components/Select
- Components/Multiselect
- Components/Multiselect Tags
- Components/Combobox Autocomplete
- Components/Search Input
- Components/Date Picker
Komponenten-Notizen:
| Komponente | Notiz | Status |
|---|---|---|
| Components/Text Input | Standard-Referenz fuer einzeiliges Padding | Entschieden |
| Components/Number Input | Folgt dem einzeiligen Input-Padding | Entschieden |
| Components/Select | Folgt dem einzeiligen Input-Padding | Entschieden |
| Components/Multiselect | Folgt dem einzeiligen Input-Padding | Entschieden |
| Components/Multiselect Tags | Padding muss mit Tags/Chips zusammen funktionieren | Entschieden |
| Components/Combobox Autocomplete | Folgt dem einzeiligen Input-Padding | Entschieden |
| Components/Search Input | Folgt dem einzeiligen Input-Padding | Entschieden |
| Components/Date Picker | Single-date Trigger folgt dem einzeiligen Input-Padding; Range-Version separat klaeren | Teilweise entschieden |
Regel: Form Inputs nutzen Radius Small
Status: Entschieden
Diese Regel definiert den Standard-Corner-Radius fuer Form Inputs. Der Token ist global in 03_Benennung definiert.
| Property | Token | Wert | Mode | Status |
|---|---|---|---|---|
| Corner Radius | Radius Small |
4px | Exact | Entschieden |
Gilt fuer:
- Components/Text Input
- Components/Textarea
- Components/Number Input
- Components/Select
- Components/Multiselect
- Components/Multiselect Tags
- Components/Combobox Autocomplete
- Components/Search Input
- Components/Date Picker
Komponenten-Notizen:
| Komponente | Notiz | Status |
|---|---|---|
| Components/Text Input | Nutzt Radius Small |
Entschieden |
| Components/Textarea | Nutzt Radius Small; mehrzeilige Hoehe separat klaeren |
Entschieden |
| Components/Number Input | Nutzt Radius Small |
Entschieden |
| Components/Select | Nutzt Radius Small |
Entschieden |
| Components/Multiselect | Nutzt Radius Small |
Entschieden |
| Components/Multiselect Tags | Nutzt Radius Small |
Entschieden |
| Components/Combobox Autocomplete | Nutzt Radius Small |
Entschieden |
| Components/Search Input | Nutzt Radius Small |
Entschieden |
| Components/Date Picker | Single-date Trigger nutzt Radius Small; Range-Version separat klaeren |
Teilweise entschieden |
Data Display
Regel: Data Display braucht Regeln fuer Inhaltszustaende
Status: Offen
Gilt fuer Komponenten mit #DataDisplay.
Komponenten-Notizen:
| Komponente | Notiz | Status |
|---|---|---|
| Components/Table | Hauptreferenz fuer Loading, Empty, Hover und Selection States | Offen |
| Components/Badge Feedback | Benennungsueberschneidung mit Feedback pruefen | Offen |
| Components/Empty State | Kann auch zu Feedback gehoeren | Offen |
Feedback
Regel: Feedback-Severity-Namen muessen konsistent bleiben
Status: Offen
Gilt fuer Komponenten mit #Feedback.
Komponenten-Notizen:
| Komponente | Notiz | Status |
|---|---|---|
| Components/Banner Alert | Beziehung zu Components/Alert klaeren | Offen |
| Components/Toast | Temporaeres Feedback | Offen |
| Components/Alert | Inline oder persistentes Feedback | Offen |
Overlays
Regel: Overlays brauchen klare Verhaltensregeln
Status: Offen
Gilt fuer Komponenten mit #Overlays.
Komponenten-Notizen:
| Komponente | Notiz | Status |
|---|---|---|
| Components/Modal Dialog | Hauptkandidat fuer Dialog-Regeln | Offen |
| Components/Confirm Dialog | Bestaetigungs-Flow fuer kritische Actions | Offen |
| Components/Slide Over Side Panel | Side-Panel-Verhalten | Offen |
Navigation
Noch keine Gruppenregel entschieden.
Layout
Noch keine Gruppenregel entschieden.
Typography
Noch keine Gruppenregel entschieden.
Utility
Noch keine Gruppenregel entschieden.
Patterns
Regel: Patterns dokumentieren Flows, nicht einzelne Komponenten
Status: Offen
Gilt fuer Eintraege mit #Patterns.
Komponenten-Notizen:
| Pattern | Notiz | Status |
|---|---|---|
| Components/Bulk Actions Table Multi Select | Nutzt Table, Checkbox, Button, Confirm Dialog | Offen |
| Components/Search Filter Bar | Nutzt Search Input, Select, Badge, Button | Offen |
| Components/Error Recovery | Nutzt Feedback- und Retry-Patterns | Offen |