Finalize D-D0b layout standards

This commit is contained in:
david committed 2026-07-03 00:25:21 +02:00
1 parent be2054274d
commit a18acf4900
15 files changed
+4737 -137

No files matched your search

@@ -0,0 +1,48 @@
---
kind: backlog
ticket: D-D0b
area: Layout Standards
status: Offen
stand: 2026-07-02
---
# D-D0b Backlog
Diese Datei sammelt Folgepunkte aus `D-D0b Layout Standards`, die nicht Teil des abgeschlossenen ersten Standards-Durchgangs sind.
Die Punkte sind nicht blockierend fuer den aktuellen Handoff.
## Layout / Responsive
| Thema | Warum spaeter? | Status |
|---|---|---|
| Mobile Layout Standards | Mobile wurde in D-D0b bewusst nicht validiert. Padding, Breakpoints, mobile App-Shell und mobile Dialogverhalten brauchen eine eigene Runde. | Backlog |
| Drawer / Side Panel Breitenregeln | Drawer wurden begrifflich abgegrenzt, aber noch nicht mit festen Breiten, Padding und Responsiveness validiert. | Backlog |
| Toolbar-zu-Tabelle-Abstand | Nur relevant, wenn Table-/Toolbar-Komponenten den Abstand nicht bereits sauber abdecken. | Beobachten |
## Komponenten / Semantik
| Thema | Warum spaeter? | Status |
|---|---|---|
| Button-/Action-Semantik | Klaeren, wann Actions Primary, Secondary, Destructive oder Positive sind. Destructive ist eindeutig rot, Confirm aber nicht automatisch gruen. | Backlog |
| Error-/Result-Dialog-Komponenten | Spaeter klaeren, welche blockierenden Fehler als `Result Dialog`, `Confirm Dialog` oder eigene Error-Dialog-Variante laufen. Normale Bereichsfehler bleiben inline. | Backlog |
| No-Permission-Komponente | No Permission ist fachlich als inline State geklaert, aber lokal noch nicht als eigene Komponenten-MD finalisiert. | Backlog |
| Table No-Permission State | Klaeren, ob die bestehende Table-Komponente eine eigene No-Permission-State-Variante braucht. | Backlog |
| Fill Buttons fuer XS/S Dialoge | Fuer XS/S-Dialoge mit genau zwei Actions koennte eine Fill-Buttons-Variante sinnvoll sein. Noch nicht validiert. | Optional |
## Standards / Research
| Thema | Warum spaeter? | Status |
|---|---|---|
| Weitere IBM-Carbon-Spacing-Inspiration | Carbon wurde fuer D-D0b als Referenz genutzt, ist aber keine harte Regelquelle. Weitere Details nur bei konkretem Bedarf. | Backlog |
| Accessibility-Regeln | Wichtig, aber nicht Teil des ersten Layout-Standards-Durchgangs. | Backlog |
| Vollstaendige Komponenten-Dokumentation | Erst noetig, wenn eine Komponente echte Regeln oder Ausnahmen braucht. | Backlog |
## Nicht in D-D0b aufnehmen
Diese Themen gehoeren nicht in D-D0b:
- Farben, Shadows und Radius, solange sie groesstenteils in Subframe gepflegt werden.
- Fachliche Feature-Flows.
- Backend-/Datenmodell-Logik.
- Vollstaendige App-Shell-Definition.
@@ -1,157 +1,237 @@
---
kind: brainstorming
kind: final-planning
ticket: D-D0b
area: Layout Standards
status: In Planung
status: Abgeschlossen
stand: 2026-07-02
---
# D-D0b Layout Brainstorming
# D-D0b Layout Standards
## Ziel
## Kurzfassung
D-D0b wird fuer diese Runde als Layout- und Composition-Standard geplant, nicht als Komponenten-Katalog.
D-D0b definiert die ersten systemweiten Layout- und Composition-Standards fuer HiveGrid-Screens. Das Ticket ist abgeschlossen und die validierten Regeln wurden in die dauerhaften Subframe UI Standards uebertragen.
Source of Truth fuer spaetere Screen-Arbeit:
- [Subframe UI Standards / Layout-Regeln](<../../../04 Standards/Subframe UI Standards/Layout/README.md>)
- [Subframe UI Standards / Entscheidungen](<../../../04 Standards/Subframe UI Standards/02_Entscheidungen.md>)
- [D-D0b Backlog](<D-D0b Backlog.md>)
Lokale Vorschau:
- Versioniertes Ticket-Artefakt: [D-D0b Layout Preview](<../../../Tickets/Fertige Tickets/Assets/D-D0b-Layout-Preview.html>)
- `99 Temp/D-D0b Layout Preview/index.html`
- Die Preview bleibt als lokale Arbeitskopie erhalten, ist aber kein Source of Truth.
- `99 Temp/` ist per `.gitignore` ausgeschlossen.
- Wenn Regeln spaeter abweichen, gelten die Markdown-Standards, nicht die HTML-Preview.
## Scope
Fokus:
- Layout-Raster und Page Padding
- Textabstaende und vertikale Rhythmik
- Breiten fuer kleine, normale und grosse Dialoge
- Form-, Tabellen-, Listen- und Settings-Composition
- Zustandsflaechen wie Empty, Loading, Error, No Permission
- Layout-Raster und erlaubte Abstandswerte.
- Page-, Card-, Surface- und Grid-Abstaende.
- Text-Rhythmus fuer Page- und Section-Header.
- Dialog- und Fullscreen-Dialog-Groessen.
- Dialog-interne Gaps.
- Ownership-Grenzen fuer Buttons, Formulare, Tabellen und States.
Nicht Fokus:
- konkrete Subframe-Komponenten
- App-Shell-Definition
- fachliche Feature-Flows
- Backend-/Datenmodell-Logik
## Temporaeres Preview-Lab
- Konkrete Fachflows.
- Backend-/Datenmodell-Logik.
- App-Shell-Definition.
- Vollstaendige Komponenten-Spezifikation.
- Mobile Layout Standards.
Lokales Preview-Lab:
## Entscheidungsuebersicht
`99 Temp/D-D0b Layout Preview/index.html`
| ID | Thema | Status | Ergebnis |
|---|---|---|---|
| D01 | Grundraster / Spacing Scale | Validiert | 8px-Rhythmus mit erlaubten Standardwerten |
| D02 | Page, Card und Grid Padding | Validiert | Page 24px, Card/Surface 16px, Grid/Card Gap 16px |
| D03 | Text-Rhythmus | Validiert | Token-aware: 0 / 24 / 0 / 12 |
| D04 | Button Ownership | Geklaert | Button-Details kommen aus der Button-Komponente |
| D05 | Form Layout Gap | Validiert | Komplette Field-Komponenten stehen 16px auseinander |
| D06 | Table Ownership | Geklaert | Tabellen-Dichte kommt aus der Table-Komponente |
| D07 | Dialoge | Validiert | XS 420, S 560, M 720, L 1200; Fullscreen max 2512 |
| D08 | Dialog Internal Gaps | Validiert | Balanced: 8 / 16 / 24 / 8 |
| D09 | States / Component Ownership | Geklaert | Empty/Error/No-Permission sind inline Komponenten-Zustaende |
Dieses Lab dient nur dazu, Layoutgroessen und Abstaende visuell zu entscheiden. Es ist kein Source of Truth und darf nicht als finaler Screen oder Komponentenbibliothek behandelt werden.
## Validierte Standards
Wichtig:
- Der Ordner `99 Temp/` ist per `.gitignore` ausgeschlossen.
- Nach Abschluss der D-D0b-Brainstorming- und Validierungsrunde muss `99 Temp/D-D0b Layout Preview/` geloescht werden.
- Validierte Entscheidungen werden danach in diese D-D0b-Dokumentation uebertragen.
- Nicht validierte Varianten bleiben nicht als finale Regel stehen.
### D01 Grundraster / Spacing Scale
## Preview-Visualisierung
HiveGrid nutzt einen 8px-Rhythmus als Hauptstandard.
Im lokalen Preview-Lab werden Abstaende visuell markiert:
Erlaubte Standardwerte:
- Lila = `Padding` / Innenabstand.
- Tuerkis = `Gap` / Abstand zwischen getrennten Elementen.
- Weiss = eigentlicher Inhalt / Content.
`4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 80, 96`
Begriffe:
Regeln:
- `Padding`: Innenabstand innerhalb eines Containers. Beispiel: Abstand zwischen Kartenrand und Karteninhalt, zwischen Dialogrand und Dialoginhalt, zwischen Tabellenzellenrand und Zelltext oder zwischen Buttonrand und Buttonlabel.
- `Gap`: Abstand zwischen mehreren Elementen innerhalb eines Layouts. Beispiel: Abstand zwischen Formularfeldern, Karten, Buttons oder Layout-Spalten.
- `Margin`: Aussenabstand eines einzelnen Elements zu anderen Bereichen. In den HiveGrid-Layout-Regeln soll bevorzugt mit Auto Layout/Flex/Grid-Gaps gearbeitet werden, weil das konsistenter steuerbar ist.
- `8px` ist die Basislogik fuer normale Layout-Gaps und Paddings.
- `4px`, `12px` und `20px` sind erlaubte Zwischenwerte fuer kompakte UI-Situationen, Field-Anatomy, kleine Icon-/Text-Abstaende oder feinere visuelle Gewichtung.
- `2px` ist kein normaler Layout-Abstand und darf nur fuer technische Feinkorrekturen wie Border-, Focus- oder Icon-Feintuning genutzt werden.
- Werte wie `6px`, `10px`, `14px`, `28px`, `36px` oder `44px` werden nicht als Standard neu eingefuehrt. Sie duerfen nur vorkommen, wenn eine bestehende Komponente, ein vorhandener Token oder eine technische Vorgabe sie bereits mitbringt.
Regel fuer das Preview:
### D02 Page, Card und Grid Padding
- Die Preview-Seite muss sich selbst an die Regeln halten, die sie gerade testet. Keine zusaetzlichen Zufallsabstaende nur fuer die Demo.
- Nur der jeweils relevante Abstand soll visuell markiert werden.
- Wenn es um Card Padding geht, wird die Card-Innenflaeche markiert.
- Wenn es um Dialog Padding geht, wird Header/Body/Footer-Innenabstand markiert.
- Wenn es um Tabellen geht, wird Cell Padding markiert.
- Wenn es um Formularabstaende geht, muss klar unterschieden werden zwischen Input-Padding und Field-Gap.
Validierte Standards:
## Carbon-Referenzen
- `Page Padding Standard`: 24px.
- `Page Padding Minimum`: 24px.
- `Card / Surface Padding Standard`: 16px.
- `Detail-/Editor-Surface Padding Standard`: 16px.
- `Grid / Card Gap Standard`: 16px.
- `Grid / Card Gap kompakter Sonderfall`: 12px fuer enge oder sehr dichte Teilbereiche.
- `Section Gap Standard`: 24px fuer groessere inhaltliche Bereiche.
- 2x Grid: https://carbondesignsystem.com/elements/2x-grid/overview/
- Spacing: https://carbondesignsystem.com/elements/spacing/overview/
- Modal Usage: https://carbondesignsystem.com/components/modal/usage/
- Forms Pattern: https://carbondesignsystem.com/patterns/forms-pattern/
Regeln:
## Subframe UI Standards als zentrale Shell
- Standard Desktop Pages und kompakte Settings Pages nutzen bei diesen Basiswerten dieselbe Spacing-Logik.
- Page Padding gehoert dem Page-/Content-Container nach der App Shell.
- Card/Surface Padding gehoert der Card-, Surface- oder Panel-Komponente.
- Kompakte Momente reduzieren nicht das Page Padding, sondern nur lokale Gaps/Abstaende innerhalb dichter UI-Bereiche.
- 32px Innenabstand ist kein frei zu verwendender Surface-Standard. Ausnahme: Die Subframe-`Dialog`-Komponente darf eine eigene 32px-Padding-Variante besitzen.
Die Subframe UI Standards liegen als eigenes Standards-Projekt im Repo:
### D03 Text-Rhythmus
- [00_HiveGrid-Einordnung](<../../../04 Standards/Subframe UI Standards/00_HiveGrid-Einordnung.md>)
- [Subframe UI Standards Start](<../../../04 Standards/Subframe UI Standards/00_Start.md>)
- [Layout-Regeln](<../../../04 Standards/Subframe UI Standards/Layout/README.md>)
D03 definiert vertikale Gaps zwischen Page-/Section-Textbloecken und Content. Diese Regel gilt nur zusammen mit 150%-Texttokens fuer beschreibende Texte.
Zweck:
Validierte Standards:
- D-D0b bleibt der Arbeits- und Validierungsort fuer Layout-Entscheidungen.
- Die Subframe UI Standards sind die dauerhafte Zielstruktur fuer systemweite Subframe-, Komponenten- und Layout-Standards.
- Nach Davids Validierung koennen D-D0b-Entscheidungen in den Layout-Bereich der Subframe UI Standards uebertragen werden.
- `Page Title -> Page Description`: 0px.
- `Page Header -> erster Content`: 24px.
- `Section Title -> Section Description`: 0px.
- `Section Description -> Section Content`: 12px.
Abgrenzung:
Regeln:
- Keine Regel in den Subframe UI Standards wird durch diese D-D0b-Datei automatisch geaendert.
- Keine unvalidierten D-D0b-Werte werden als finale Subframe-Regel gespeichert.
- Wenn eine Layout-Regel uebertragen wird, muss klar sein, ob sie allgemein gilt oder nur fuer bestimmte Layout-Archetypen.
- `0px` ist ein bewusst definierter Gap. Es bedeutet: Kein zusaetzlicher Auto-Layout-Abstand zwischen Titel und Beschreibung.
- Page- und Section-Beschreibungen muessen 150%-Texttokens nutzen, auch wenn sie gerade nur eine Zeile lang sind.
- Die 150%-Line-height erzeugt bereits optische Hoehe im Textblock. Deshalb wird zwischen Titel und Beschreibung kein zusaetzlicher Gap addiert.
- D03-Gaps werden zwischen gerenderten Textboxen gemessen, nicht zwischen einzelnen Buchstaben oder optischen Glyphen.
- Wenn eine Beschreibung durch kleinere Breite von einer auf zwei Zeilen springt, wird nur der Textblock hoeher. Der Gap zum naechsten Content bleibt gleich.
- `0`-Line-height-Tokens duerfen nicht fuer Texte genutzt werden, die umbrechen koennen.
- `0`-Line-height-Tokens bleiben fuer garantierte Einzeiler reserviert, z. B. Button Label, Badge, Tab, kurze Navigation oder kompakte Tabellenzellen mit Truncation.
## Erste Entscheidungsbereiche
### D04 Button Component Ownership
Die Entscheidungen werden einzeln validiert. David muss nicht die komplette Seite auf einmal abnehmen.
Button-Hoehen, Button-Innenpadding und Button-Varianten werden ueber die Button-Komponente abgedeckt.
Validierungsreihenfolge:
Regeln:
| ID | Entscheidung | Worum es geht |
|---|---|---|
| D01 | Grundraster / Spacing Scale | Welche Abstandswerte sind erlaubt? |
| D02 | Page & Card Padding | Wie viel Innenabstand bekommen Seiten, Karten, Dialogbereiche, Tabellenzellen und Buttons? |
| D03 | Text-Rhythmus | Wie nah stehen Titel, Beschreibung und erster Inhalt zusammen? |
| D04 | Buttons | Welche Button-Hoehen und horizontalen Innenabstaende wirken richtig? |
| D05 | Formulare | Wie dicht stehen Formularfelder, Labels und Help/Error-Texte? |
| D06 | Tabellen | Welche Row Height und welches Cell Padding gelten fuer Admin-Tabellen? |
| D07 | Dialoge | Welche Breiten gelten fuer kleine, normale und grosse Dialoge? |
| D08 | States | Wie gross sind Empty, Error und No-Permission-Bereiche? |
- Fuer Standardaktionen in Screens wird die Default-Variante der Button-Komponente genutzt.
- Die Default-Variante entspricht `Medium` und ist 36px hoch.
- Screen-Layouts sollen Button-Hoehen oder Button-Padding nicht manuell nachbauen.
- Action-Semantik wie Primary, Secondary, Destructive oder Positive wird separat validiert.
Arbeitsregel:
- Der Agent fuehrt David immer nur durch die naechste offene Entscheidung.
- Jede Entscheidung wird erst dokumentiert, wenn David sie explizit validiert hat.
- Wenn eine Entscheidung spaeter geaendert wird, muss ein Impact-Check auf die anderen Layout-Regeln erfolgen.
### D05 Form Layout Gap
### 1. Grundraster
Validierte Regel:
Zu klaeren:
- Ist ein 8px-Rhythmus als Hauptstandard passend?
- Welche Zwischenwerte sind erlaubt: 4px, 12px, 20px?
- Welche Abstaende gelten fuer eng verwandte Elemente, Feldgruppen und grosse Sections?
- Komplette Formular-Field-Komponenten stehen standardmaessig 16px auseinander.
- 12px bleibt ein kompakter Sonderfall fuer sehr dichte Teilbereiche.
- 24px wird fuer bewusst getrennte Formular-Sections genutzt, nicht als Standardabstand zwischen einzelnen Feldern.
### 2. Page Padding
Komponenten-Ownership:
Zu klaeren:
- Standard Desktop Page Padding
- kompakter Admin-/Settings-Padding-Standard
- Umgang mit Tabellen: full width vs. constrained
- Label/Input-Abstand, Help-/Description-Text, Error-/Message-Abstand und Input-Padding gehoeren zur jeweiligen Form-Input-Komponente.
- Wenn ein Screen gebaut wird, soll die vorhandene Field-Anatomy der Komponente genutzt werden.
- Beschreibungen/Hilfetexte werden ueber die entsprechenden Komponentenfelder/Props/Slots ausgefuellt, nicht als manuelle Textbloecke neben das Input gebaut.
### 3. Text-Rhythmik
### D06 Table Layout Ownership
Zu klaeren:
- Abstand Page Title zu Subtitle
- Abstand Subtitle zu erstem Content
- Abstand Section Title zu Beschreibung
- Abstand Beschreibung zu Inhalt
Row Height, Cell Padding, Header-Dichte und Tabellenvarianten werden ueber die Table-Komponente abgedeckt.
### 4. Formulare
Regeln:
Zu klaeren:
- Label/Input-Abstand
- Input/Help/Error-Abstand
- Abstand zwischen Feldern
- Abstand zwischen Form-Sections
- Screen-Layouts sollen Tabellen-Padding oder Row-Hoehen nicht manuell nachbauen.
- IBM Carbon dient als Referenz: Data Tables haben mehrere Row Sizes (`xs 24px`, `sm 32px`, `md 40px`, `lg 48px`, `xl 64px`), Column Padding von 16px und die Header Row soll zur Tabellen-Row-Groesse passen.
- Fuer HiveGrid gilt: Table-Komponente verwenden und deren passende Dichte waehlen, statt in einzelnen Screens eigene Tabellenwerte zu definieren.
### 5. Dialogbreiten
### D07 Dialog, Fullscreen Dialog und Drawer
Zu klaeren:
- kleine Confirm-Dialoge
- normale Formular-Dialoge
- grosse Editor-Dialoge
- maximale Breite relativ zum Viewport
Pattern-Definition:
### 6. Listen und Tabellen
- `Page`: eigener Ort in der App. Wird genutzt fuer Bereiche, in denen laenger gearbeitet wird, die eigene Navigation/Subnavigation haben oder spaeter direkt adressierbar sein sollen.
- `Dialog`: temporaeres Overlay ueber der aktuellen Page. Blockiert den Hintergrund, hat einen klaren Abschluss und fuehrt den User danach zur vorherigen Page zurueck.
- `Fullscreen Dialog`: temporaeres Overlay wie ein Dialog, aber fast oder ganz viewportfuellend. Keine normale Page.
- `Drawer / Side Panel`: seitliches Overlay oder Panel, meistens rechts, wenn der Kontext sichtbar bleiben soll.
Zu klaeren:
- Toolbar zu Tabelle
- Row Height
- Zell-Padding
- Empty/Loading/Error-Bereich
Zentrierte Dialoge:
- `XS`: 420px.
- `S`: 560px.
- `M`: 720px.
- `L`: 1200px max.
Fullscreen Dialog:
- `width: calc(100vw - 48px)`.
- `max-width: 2512px`.
- `height: calc(100vh - 48px)`.
- 24px aeusserer Rand pro Seite auf Desktop.
- Auf breiteren Monitoren bleibt der Fullscreen Dialog zentriert und skaliert nicht unendlich.
Dialog Padding:
- `16px` als Default.
- `32px` als groessere/ruhigere Variante fuer Dialoge, die bewusst mehr Innenraum brauchen.
- Diese Werte sollen ueber die Dialog-Komponente bzw. deren Varianten kommen, nicht durch freie Padding-Overrides im Screen.
### D08 Dialog Internal Gaps
Die Subframe-`Dialog`-Komponente nutzt fuer normale Dialog-Innenabstaende die `Balanced`-Logik:
- `Title -> Description`: 8px.
- `Field / Form Row Gap`: 16px.
- `Section Gap innerhalb Dialog`: 24px.
- `Footer Button Gap`: 8px.
- Footer Actions sind standardmaessig rechts ausgerichtet.
Regeln:
- Diese Werte beschreiben Gaps zwischen gerenderten Bloecken, nicht manuelle Text-Margins.
- Mehrzeiliger Text nutzt den jeweiligen 150%-Texttoken. Dadurch wird der Textblock hoeher; es wird kein zusaetzlicher Sonder-Gap oberhalb oder unterhalb des Texts addiert.
- Eine `Fill Buttons`-Variante fuer XS/S-Dialoge mit genau zwei Actions bleibt optional und muss separat validiert werden, falls sie gebraucht wird.
- Destructive/positive Action-Farben werden nicht allein aus `Cancel/Confirm` abgeleitet. Sie muessen semantisch zur Aktion passen und werden separat als Button-/Action-Regel validiert.
### D09 States / Component Ownership
States sind inline Inhaltszustaende, keine Modale.
Regeln:
- Empty, Error und No-Permission ersetzen inline den betroffenen Inhaltsbereich.
- Empty State und Error State sind bereits im Komponenten-Index vorhanden.
- Normale Bereichsfehler sollen ueber State-/Alert-/Partial-page-failure-Komponenten abgedeckt werden.
- Blockierende Error-/Result-Dialoge werden spaeter separat als Overlay-/Feedback-Komponenten geklaert.
## Anwendung fuer neue Screens
Beim Erstellen neuer Screens gilt:
- Die validierten Standards aus [Subframe UI Standards / Layout-Regeln](<../../../04 Standards/Subframe UI Standards/Layout/README.md>) verwenden.
- Komponenten-Defaults verwenden, wenn sie den validierten Standard bereits abbilden.
- Padding oder Gap nicht pseudomaessig nachbauen, wenn die zuständige Komponente dafuer bereits eine Eigenschaft, Variante oder Auto-Layout-Struktur hat.
- Modale in Subframe als echte Dialog-Komponenten bauen, nicht als Fake-Modal auf einer normalen Page.
- Page-/Section-Beschreibungen als 150%-Texttokens setzen, wenn sie umbrechen koennen.
- `0px` bei D03 bewusst als definierten Gap behandeln und nicht aus Versehen durch 4px/8px ersetzen.
- Backlog-Themen nicht in Screens erzwingen, solange sie nicht validiert sind.
## Backlog
Offene Folgepunkte stehen in [D-D0b Backlog](<D-D0b Backlog.md>).
## Externe Referenzen
- Carbon 2x Grid: https://carbondesignsystem.com/elements/2x-grid/overview/
- Carbon Spacing: https://carbondesignsystem.com/elements/spacing/overview/
- Carbon Typography: https://carbondesignsystem.com/elements/typography/overview/
- Carbon Modal Usage: https://carbondesignsystem.com/components/modal/usage/
- Carbon Forms Pattern: https://carbondesignsystem.com/patterns/forms-pattern/
- Carbon Data Table Usage: https://carbondesignsystem.com/components/data-table/usage/
- Carbon Data Table Style: https://carbondesignsystem.com/components/data-table/style/
@@ -3,19 +3,19 @@
{"id":"group-main","type":"group","x":-120,"y":-680,"width":4280,"height":1440,"label":"Admin RBAC Hauptflow"},
{"id":"group-notes","type":"group","x":-120,"y":900,"width":4280,"height":430,"label":"Dokumentierte Zustaende und Backlog"},
{"id":"s02","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/S02 Rollen und Berechtigungen.md","x":1560,"y":440,"width":440,"height":230},
{"id":"note-navigation","type":"text","text":"# Navigation\n\nS01 ist der Einstieg unter `Settings -> Mitarbeiter`.\n\nDer Rollen-Tab S02 ist direkt ueber die Settings-Tabs erreichbar und zusaetzlich ueber den Dropdown-Eintrag `Rollen und Berechtigungen bearbeiten`.","x":-40,"y":1020,"width":520,"height":240},
{"id":"s01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/S01 Mitarbeiterliste.md","x":0,"y":45,"width":440,"height":230},
{"id":"m03","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M03 Mitarbeiter deaktivieren.md","x":780,"y":45,"width":440,"height":230},
{"id":"m01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M01 Mitarbeiter einladen.md","x":780,"y":-360,"width":440,"height":230},
{"id":"note-seed","type":"text","text":"# Rollenmodell\n\nAdmin ist die einzige Start-/Systemrolle.\n\nWeitere Rollen werden vom Admin selbst angelegt.\n\nRollen-Vorlagen sind Work in Progress und werden nicht als feste Rollen in der Liste gezeigt.","x":1520,"y":1020,"width":520,"height":240},
{"id":"m02","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M02 Rolle bearbeiten.md","x":2680,"y":440,"width":440,"height":230},
{"id":"m04a","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M04A Rolle anlegen.md","x":2120,"y":-110,"width":440,"height":230},
{"id":"v01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/V01 Letzter Admin blockiert.md","x":2120,"y":-475,"width":440,"height":230},
{"id":"note-d01","type":"text","text":"# D01 Rollen-Dropdown\n\nKein eigener Screen.\n\nDas Dropdown ist direkt in S01 enthalten:\n- Rolle wechseln\n- `Rollen und Berechtigungen bearbeiten` fuehrt zu S02\n- letzter Admin wird ueber V01 blockiert","x":720,"y":1015,"width":500,"height":250},
{"id":"m04b","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M04B Rolle duplizieren.md","x":2980,"y":-110,"width":440,"height":230},
{"id":"note-backlog","type":"text","text":"# Backlog / V2\n\nReassign beim Deaktivieren, Rollen-Loeschen mit Ersatzrolle, Gruppen, Rechtekatalog, Rollen-Audit, Review-Zyklus, Rechte-Matrix, Bulk-Aktionen, erweiterter Admin-Schutz.","x":3520,"y":1020,"width":600,"height":240},
{"id":"d03","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/D03 Rolle in Nutzung blockiert.md","x":3600,"y":440,"width":440,"height":230},
{"id":"note-permission","type":"text","text":"# Permission-Muster\n\nIm Rollen-Modal wird eine konkrete Permission-Zeile vorgebaut:\n\n`Mitarbeiter ansehen`\nBeschreibung darunter\nControl: Toggle `An/Aus`\n\nRead-only/Bearbeiten bleibt spaeteres Advanced Control, falls ein Recht nicht binaer ist.\n\nFinaler Rechtekatalog liegt bei Development.","x":2620,"y":1000,"width":560,"height":280}
{"id":"note-navigation","type":"text","text":"# Navigation\n\nS01 ist der Einstieg unter `Settings -> Mitarbeiter`.\n\nDer Rollen-Tab S02 ist direkt ueber die Settings-Tabs erreichbar und zusaetzlich ueber den Dropdown-Eintrag `Rollen und Berechtigungen bearbeiten`.","x":-40,"y":1020,"width":520,"height":240},
{"id":"m02","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M02 Rolle bearbeiten.md","x":2680,"y":440,"width":440,"height":230},
{"id":"note-d01","type":"text","text":"# D01 Rollen-Dropdown\n\nKein eigener Screen.\n\nDas Dropdown ist direkt in S01 enthalten:\n- Rolle wechseln\n- `Rollen und Berechtigungen bearbeiten` fuehrt zu S02\n- letzter Admin wird ueber V01 blockiert","x":720,"y":1015,"width":500,"height":250},
{"id":"note-backlog","type":"text","text":"# Backlog / V2\n\nReassign beim Deaktivieren, Rollen-Loeschen mit Ersatzrolle, Gruppen, Rechtekatalog, Rollen-Audit, Review-Zyklus, Rechte-Matrix, Bulk-Aktionen, erweiterter Admin-Schutz.","x":3520,"y":1020,"width":600,"height":240},
{"id":"note-permission","type":"text","text":"# Permission-Muster\n\nIm Rollen-Modal wird eine konkrete Permission-Zeile vorgebaut:\n\n`Mitarbeiter ansehen`\nBeschreibung darunter\nControl: Toggle `An/Aus`\n\nRead-only/Bearbeiten bleibt spaeteres Advanced Control, falls ein Recht nicht binaer ist.\n\nFinaler Rechtekatalog liegt bei Development.","x":2620,"y":1000,"width":560,"height":280},
{"id":"v01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/V01 Letzter Admin blockiert.md","x":2120,"y":-440,"width":440,"height":230},
{"id":"m01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M01 Mitarbeiter einladen.md","x":1000,"y":-360,"width":440,"height":230},
{"id":"m03","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Admin RBAC/Screens/M03 Mitarbeiter deaktivieren.md","x":1000,"y":5,"width":440,"height":230}
],
"edges":[
{"id":"edge-s01-m01","fromNode":"s01","fromSide":"right","toNode":"m01","toSide":"left","label":"Mitarbeiter einladen"},
@@ -1,12 +1,12 @@
{
"nodes":[
{"id":"group-main","type":"group","x":-80,"y":-100,"width":1260,"height":420,"label":"Backlog / geparkte Konto-Loeschung"},
{"id":"group-notes","type":"group","x":-80,"y":560,"width":1260,"height":360,"label":"Backlog-Hinweise"},
{"id":"group-main","type":"group","x":-80,"y":-60,"width":1440,"height":420,"label":"Backlog / geparkte Konto-Loeschung"},
{"id":"group-notes","type":"group","x":-80,"y":560,"width":1440,"height":360,"label":"Backlog-Hinweise"},
{"id":"s01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Konto loeschen/Screens/S01 Settings Workspaces Loeschbereich.md","x":0,"y":0,"width":420,"height":200},
{"id":"m01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Konto loeschen/Screens/M01 Loeschung anfragen.md","x":640,"y":0,"width":420,"height":200},
{"id":"note-request","type":"text","text":"# Backlog\n\nDer gesamte Konto-Loeschworkflow ist geparkt.\n\nBestehende Screens sind nur Referenz und werden nicht als aktueller v1-Scope weitergebaut.","x":0,"y":680,"width":420,"height":200},
{"id":"note-permission","type":"text","text":"# Trennung\n\nAccount/Konto loeschen und Workspace loeschen sind zwei unterschiedliche Workflows.\n\nNicht in einem Screen vermischen.","x":540,"y":680,"width":420,"height":200},
{"id":"note-backlog","type":"text","text":"# Voraussetzung\n\nErst wieder aufnehmen, wenn Workspace Settings gebaut/validiert sind.\n\nDanach Flow neu mit David validieren.","x":1080,"y":680,"width":420,"height":200}
{"id":"note-permission","type":"text","text":"# Trennung\n\nAccount/Konto loeschen und Workspace loeschen sind zwei unterschiedliche Workflows.\n\nNicht in einem Screen vermischen.","x":0,"y":680,"width":420,"height":200},
{"id":"note-request","type":"text","text":"# Backlog\n\nDer gesamte Konto-Loeschworkflow ist geparkt.\n\nBestehende Screens sind nur Referenz und werden nicht als aktueller v1-Scope weitergebaut.","x":860,"y":680,"width":420,"height":200},
{"id":"m01","type":"file","file":"02 Wireframes/P2 Auth/WF-P2 Konto loeschen/Screens/M01 Loeschung anfragen.md","x":860,"y":0,"width":420,"height":200},
{"id":"note-backlog","type":"text","text":"# Voraussetzung\n\nErst wieder aufnehmen, wenn Workspace Settings gebaut/validiert sind.\n\nDanach Flow neu mit David validieren.","x":1440,"y":680,"width":420,"height":200}
],
"edges":[
{"id":"edge-s01-m01","fromNode":"s01","fromSide":"right","toNode":"m01","toSide":"left","label":"Loeschung anfragen"},
@@ -14,4 +14,4 @@
{"id":"edge-s01-permission","fromNode":"s01","fromSide":"bottom","toNode":"note-permission","toSide":"top","label":"Permission"},
{"id":"edge-m01-request","fromNode":"m01","fromSide":"bottom","toNode":"note-request","toSide":"top","label":"Feedback"}
]
}
}