Gestaltung
Ein Blatt mit allem, was das Design-System in dieser Anwendung hergibt. Jeder Wert wird zur Laufzeit gemessen, kein Zustand nachgemalt, keine Bewegung im Leerlauf. Thema und Richtung gelten sofort und für die ganze Anwendung.
Wahl
Drei Themen und vier Richtungen, in der Leiste darüber. Die Wahl wird sofort an html gestempelt und danach in einen Keks geschrieben — sie bleibt über den nächsten Aufbau hinaus bestehen und gilt auf jeder Route.
- Thema: automatisch folgt der Systemeinstellung, hell und dunkel überstimmen sie.
- Richtung: keine ist die nackte Gestalt des Systems. Blaupause zeichnet den Riss, Editorial setzt den Katalog, Werkzeug verdichtet zur Anwendung.
- Eine Richtung erreicht ausschließlich die Landeseite und dieses Blatt. Der Editor und die Konto-Seiten tragen keine der beiden Klassen und bleiben unberührt — sichtbar an der Kopfzeile oben, die beim Umschalten stehen bleibt.
- Keine Richtung erfindet einen Wert: jede hängt vorhandene Tokens an andere Eigenschaften.
- Beide Kekse laufen ein Jahr, sind nicht HttpOnly und stehen auf SameSite Lax.
Farben
Jede Farbrolle über der Fläche, auf der sie wirklich vorkommt. Der Wert daneben wird im laufenden Thema gemessen, nicht abgeschrieben.
Warmes technisches Papier bei Tag, Zeichenraum bei Nacht. Jede Stufe über der darunter.
Drei Stufen auf dem Blatt. Die gedämpfte Tinte trägt auf der vertieften Hover-Fläche keinen Text — normative Auflage des Kontrastnachweises.
Haarlinie trennt, betonte Linie begrenzt. Die Rasterlinie malt das Papier-Raster.
Ein Akzent, und er ist Signal. Die Akzenttinte liegt auf dem Akzent, nicht auf dem Blatt — das ist der einzige Ort, an dem sie vorkommt.
Drei Zustände, je Fläche, Wäsche und Tinte. Die Farbe trägt die Aussage nie allein.
Fünf Stufen für Einordnungen. Jede Tinte ist gegen ihre eigene Fläche gerechnet.
Drei Diagrammserien und ihre Spur. Weiß erreicht auf keiner der drei Flächen 4,5:1 — deshalb dunkle Serientinten statt der Akzenttinte.
Anteilsdiagramme: der größte Wert bekommt den dunkelsten Schritt.
Typografie
Neun Stufen, jede mit Größe, Zeile, Laufweite und einem Satz, den man lesen kann.
- Zwei Familien: Archivo trägt die Stimme, IBM Plex Mono die Daten.
- Nie mehr als zwei Gewichte je Fläche.
- Versalien ausschließlich im Microlabel, ein bis drei Wörter.
- Jede Zahl in Mono mit tabellarischen Ziffern.
- Die gedämpfte Tinte trägt auf der vertieften Hover-Fläche keinen Text.
Zahlen
Die eine Formatierungsstelle der Anwendung, an echten Aufrufen gezeigt: de-DE, Mono, tabellarische Ziffern.
- de-DE: Tausenderpunkt, Dezimalkomma, Datum in Punktschreibweise.
- Geschütztes Leerzeichen zwischen Zahl und Einheit, auch vor dem Prozentzeichen.
- Europe/Berlin steht auf jedem Datumsaufruf, weil die Laufzeitzone auf Vercel UTC ist.
- Mono mit tabellarischen Ziffern: gleiche Stelle, gleiche Spalte.
- Kein Bauteil formatiert selbst — Werte kommen vorformatiert an.
Raster und Abstände
Die Abstandsleiter als gemessene Balken, dazu Satzbreite, Grundlinie, Rasterschritt und Eckmarke.
Vier-Pixel-Basis. Die Spur trägt als Breite das Token selbst — der Balken ist das Maß, nicht sein Bild.
Schrittweite —, Linienfarbe —.
Zwei Winkel, oben links und unten rechts, Länge —. Sie sind der einzige Zierat des Systems und tragen keine Bedeutung.
- Ein Container, und das ist .inhaltsbreite — keine eigene Maximalbreite irgendwo sonst.
- Spalten weichen, nichts rollt waagerecht.
- Radius null im ganzen Bedienteil. Radien im Dokument sind Nutzdaten.
- Haarlinie statt Schatten. Der eine Schatten liegt am Blatt.
Bausteine
Jeder Baustein aus components/amber, mit Namen, Herkunft und echten Zuständen. Hover und Fokus gehören dem Zeiger und der Tastatur — die Galerie malt sie nicht nach.
Vier Arten, ein Primärknopf je Blickbereich. Hover färbt in zwei Takten, Fokus antwortet in einem — beides erscheint beim Überfahren und beim Antabben, nicht als gemalte Fläche. Gesperrt heißt gesperrt, nicht grau.
Fünf Zustände: Ruhe, Pflicht, fehlerhaft, gesperrt und Fokus. Der Fokus setzt den Rahmen auf Amber und behält zusätzlich den globalen Ring — nachzusehen mit der Tabulatortaste.
Filterchip. Der Aktivzustand steht in aria-pressed und wird von dort gemalt — ein Wahrheitsträger, nicht zwei. Chips ersetzen keine Reiter.
Die Farbe trägt die Aussage nie allein — das Wort steht immer dabei. Eine Plakette ohne Text ist ein farbiger Fleck.
Die Plakettenklassen selbst. Für die drei Zustände gibt es mit StatusBadge ein Bauteil, für die fünf Stufen der Einordnung keines — sie kommen in dieser Anwendung nicht vor und werden nicht auf Vorrat gebaut. Hier stehen sie als rohe Klassen, damit die Auskunft vollständig ist.
Versal, gesperrt, Mono, gedämpfte Tinte. Ein bis drei Wörter, nie Fließtext, nie größer als die eine Stufe.
Karte mit Haarlinie, zwei Eckmarken und dem einzigen Schatten des Systems. Setzt position: relative — kein absolut gesetztes Menü darin.
Roam
136 Ebenen, zwei Bildschirme
Der Kopf ist Titel, Unterzeile und rechte Spalte. Fehlt alles drei, entfällt der Kopf.
Beide sind echt und wirken sofort auf diese Seite: der Themenumschalter läuft den Ring automatisch · hell · dunkel und schreibt den Keks, der Breitschalter nimmt jedem .inhaltsbreite-Behälter seine Maximalbreite. Die Leiste oben zeigt die Wirkung mit.
Beide liegen als natives dialog in der obersten Schicht: Fokusfalle, Escape und die Rückgabe des Fokus an den Auslöser kommen vom Element selbst. Der Schließknopf trägt ein Wort, kein Kreuzzeichen.
Die Kopfzeile des Design-Systems. In dieser Anwendung ist sie ungenutzt, und ihre Klassen .kopfzeile, .kopfzeile-innen, .kopfzeile-punkt und .kopfzeile-werkzeuge sind in styles/anwendung.css nicht definiert — der Editor führt seine eigene Titelleiste, die Konto-Seiten .seitenkopf. Sie steht hier unverkleidet, damit der Befund sichtbar ist und nicht im Verzeichnis schlummert.
Muster
Klassen, die kein Bauteil sind, sondern eine Figur: Fuge, Gefäß, Zustandsrahmen, Kante, Spur, Balken, Well, Tabelle, Eckmarke.
Der Behälter trägt die Linienfarbe, die Zellen decken sie ab, was übrig bleibt ist die Fuge. Eine Haarlinie ohne letztes Kind und ohne doppelte Ränder beim Umbruch.
Ein Gefäß aus mehreren Bedienteilen. Es färbt seinen Rahmen über :focus-within, der Amberring bleibt am wirklich fokussierten Feld.
Rahmen in Ruhe transparent, beim Überfahren betonte Linie, im aktiven Zustand Amber. Der Zustand steht in aria-pressed oder aria-current, nicht in einer zweiten Klasse.
Die Kante ist in Ruhe schon da, nur transparent — der Zustandswechsel bewegt deshalb nichts. Breite ist die Zustandskante, zwei Haarlinien.
Die vertiefte Fläche: Tabellenkopf, Code, Hinweisblock. Haarlinie, kein Schatten.
Der Renderer ist austauschbar, das Format nicht.
Zwei Balken für zwei Orte: der breite steht im Blatt, der drei Pixel hohe in einer Tabellenzelle. Beide wachsen höchstens einmal und nie im Leerlauf.
Kopf auf der vertieften Fläche, Zahlen rechtsbündig und in Mono, Zeilenwechsel nur als Farbe. Sie rollt nie waagerecht — Spalten weichen.
| Dokument | Zustand | Ebenen | Anteil |
|---|---|---|---|
| Roam | Gesichert | 136 | 72,0 % |
| Entwurf Nord | Ungesichert | 41 | 21,9 % |
| Archiv 2025 | Konflikt | 12 | 6,1 % |
Zwei Winkel am Blatt, oben links und unten rechts. Sie sind Schnittmarken einer Zeichnung und tragen keine Bedeutung — deshalb sind sie der einzige Zierat, den das System kennt.
Der Aufklapper des Design-Systems ist in dieser Anwendung nicht vorhanden: styles/anwendung.css führt ihn im Kopf der Datei namentlich unter dem, was zu einer Seitenanwendung mit Marketingrouten gehört und hier nicht auf Vorrat gebaut wird. Der Editor klappt mit eigenen Mitteln auf, die Konto-Seiten klappen nichts auf. Der Platz steht hier, damit das Fehlen eine Auskunft ist und kein Versehen.
- .kein-druck — verschwindet im Druck. Jede Bedienfläche trägt sie.
- .nur-druck — erscheint erst im Druck.
- .ab-md — Nebenspalte, die erst ab 768 Pixel erscheint und im Druck zurückkommt.
- .zellentext — Textzelle, die kürzt statt zu schieben; der volle Wert steht im title.
- .inhaltsbreite — der eine Container des Systems.
Bewegung
Sechs Zeitstufen aus einem Takt, vier Kurven aus einer Quelle, fünf erlaubte Muster und die Nie-Liste. Jede Probe läuft auf Knopfdruck und genau einmal.
Ein Takt von 60 Millisekunden, Vielfache 1 · 2 · 3 · 5 · 7 · 11. Jede Stufe ist mindestens das 1,4-Fache der vorigen — engere Zeiten unterscheidet niemand.
Eine Quellkurve, zwei Ableitungen, eine Feder. Alle vier laufen hier auf der Auftrittsdauer, damit nur die Kurve den Unterschied macht.
Einmal je Seite, gestaffelt um einen Takt je Kind, gedeckelt bei fünf. Der Zähler steht als eigene Eigenschaft am Kind, die Kappung im Stilblatt — nicht an der Aufrufstelle.
- Hilfslinien
- Umriss
- Bemaßung
- Eckmarken
- Flächen
- Schriftfeld
Einmal, aus der linken Kante, über die Auftrittsdauer. Danach steht der Balken.
Farbe in zwei Takten beim Überfahren, Fokus in einem beim Antabben, Maß in drei beim Umschalten. Kein Zustand wandert: der Zustandsweg ist null.
Herein über die Schichtdauer mit der Auftrittskurve, hinaus über die schnelle Dauer mit der Abgangskurve. Was verschwindet, hält niemanden auf. Die Probe steht in G-06, bei den beiden Bausteinen, die sich öffnen lassen.
Die einzige Kurve mit Überschwingen, und sie gilt ausschließlich für Bewegung, die aus einem Griff oder einem Schalter kommt. Höchstens zwei Prozent Überschwingen — bei einer Grundlinie Weg liegt das unter einer Haarlinie.
- Dauerbewegung ohne Anlass: Karussell, Ticker, pulsierender Punkt, Ladeanimation mit Charakter.
- Blinkender Schreibcursor und jedes Schimmern — beide laufen weiter, wenn niemand hinsieht.
- Bewegung als Verzierung einer Zahl.
- Parallaxe, scrollgetriebene Verwandlung, Sprung in die Sicht.
- Hover, der skaliert oder verschiebt.
- Ein zweiter Auftritt auf derselben Seite.
- Federkurven außerhalb der Hand, Überschwingen, Rotation als Übergang.
Zeichnung
Der Werkriss in klein, dreimal nebeneinander: serverseitiges SVG, WebGL2 und Canvas 2D aus derselben Geometriequelle.
- Eine Geometriequelle, drei Medien: lib/landung/riss-modell.ts.
- Der Server zeichnet das vollständige Bild als Inline-SVG.
- Der Klient sondiert auf einem Wegwerf-Element und erzeugt die Leinwand erst danach.
- Sobald der Maler gezeichnet hat, wird das SVG verborgen. Im Druck kehrt sich das um.
- WebGPU scheidet aus: Kontextsperre ohne Rückfall.
Schriftfeld
Das Blatt schließt wie eine Zeichnung: sechs Felder mit Benennung und Wert.