Oluwa.io
Alle Texte
·7 Min. Lesezeitdesignsystememinimalismusbarrierefreiheitdesign-tokens

Schwarz und Weiß: Ein Designsystem, gebaut für Fokus

Warum wir jedes Produkt auf einem minimalistischen Schwarz-Weiß-Designsystem bauen: geschlossene Graustufen, Typo-Hierarchie und Barrierefreiheit von Haus aus.

Von Vitor Lima

Wir bauen jedes OLUWA-Produkt in striktem Schwarz-Weiß. Kein Marken-Blau, kein Akzent-Türkis, kein „Erfolgs-Grün“, das sich in eine Toast-Benachrichtigung einschleicht. Ein minimalistisches Schwarz-Weiß-Designsystem ist keine Nostalgie für das Terminal, und es ist auch kein Moodboard, in das wir uns verguckt haben. Es ist eine funktionierende Einschränkung, die unsere Entscheidungen schneller, unsere Oberflächen lesbarer und unsere Barrierefreiheits-Grundlinie von Haus aus höher macht. Das hier ist der Grund, warum wir uns für Monochrom entschieden haben, was wir aufgegeben haben und welche Tokens und Regeln Sie morgen übernehmen könnten.

Warum wir Farbe bewusst entfernt haben

Farbe ist die am meisten missbrauchte Variable im Interface-Design. Sie ist billig hinzuzufügen und teuer zu regieren. In dem Moment, in dem man eine Palette hat, konkurriert jedes Element um einen der Farbtöne, und „welche Farbe sollte das haben“ wird zu einer Frage, die man hunderte Male pro Woche beantwortet, meist inkonsistent.

Ein destruktiver Button ist rot. Aber ein Fehlerzustand ist es auch, und eine Pflichtfeld-Markierung, und das Benachrichtigungs-Badge, und die Diagrammreihe für abgewanderte Nutzer. Rot bedeutet nun fünf Dinge, was heißt, es bedeutet nichts.

Farbe zu entfernen entfernt diese ganze Klasse von Entscheidungen. Wenn man nicht zu einem Farbton greifen kann, um Wichtigkeit zu signalisieren, signalisiert man sie mit den Werkzeugen, die tatsächlich Bedeutung tragen: Position, Größe, Gewicht und Weißraum. Diese Werkzeuge sind ehrlicher. Eine Überschrift liest sich als wichtig, weil sie groß ist und oben mit Raum um sich herum sitzt, nicht weil jemand sie lila gestrichen hat.

Das Fazit: Wenn Sie Farbe verwenden, um ein Hierarchieproblem zu beheben, haben Sie ein Hierarchieproblem, kein Farbproblem. Monochrom lässt sich nicht darüber hinwegtäuschen.

Hierarchie ohne Farbe: drei Hebel

Wenn der Farbton vom Tisch ist, erledigen drei Hebel die ganze Arbeit.

Typo-Skala. Wir fahren eine modulare Skala mit klaren Sprüngen, keinen kontinuierlichen Verlauf von Größen. Stufen, die zu nah beieinander sitzen, lesen sich als Rauschen; das Auge braucht einen unmissverständlichen Rang. Unsere Arbeitsskala ist etwa 12 / 14 / 16 / 20 / 28 / 40 / 64 px. Fließtext sitzt bei 16, sekundäre Metadaten bei 14, und alles über 20 ist strukturell. Wenn zwei Dinge sich in ihrer Wichtigkeit unterscheiden sollen, bekommen sie verschiedene Stufen, niemals dieselbe Stufe in zwei Grautönen.

Gewicht und Schreibweise. Mit einer Schriftart und ohne Farbe wird das Gewicht zu einem primären Signal. Wir verwenden höchstens drei Gewichte: Regular, Medium und ein einziges Bold, reserviert für echte Betonung. Großbuchstaben mit weit gespreiztem Buchstabenabstand übernehmen die Aufgabe einer „Label-Farbe“ und markieren eine Zeichenkette als Kategorie oder Eyebrow ganz ohne Färbung.

Raum. Weißraum ist die tragende Wand eines monochromen Layouts. Nähe gruppiert Zusammengehöriges; Distanz trennt es. In MadaiOps, unserer Krypto-Orders-App, verlässt sich das Order-Ticket vollständig darauf: Preis, Größe und Seite sitzen dicht gruppiert, während die Bestätigungs-Aktion mit bewusstem Raum weggeschoben wird, damit sie niemals versehentlich neben einem Eingabefeld getroffen werden kann. Kein rotes „Gefahr“-Styling nötig. Der Abstand übernimmt das Absichern.

Kontrast ist ein System, kein Bauchgefühl

Die Falle bei Schwarz-Weiß ist zu denken, man habe nur zwei Werte. Man hat eine vollständige Graustufen-Rampe, und die Disziplin liegt darin, sie zu zügeln. Wir definieren eine kleine, feste Menge an Stufen und verbieten Grautöne abseits der Rampe. Hier ist die Rampe, die wir tatsächlich ausliefern:

--ink-000: #000000   /* primary text, headings */
--ink-700: #3d3d3d   /* body on light, secondary headings */
--ink-500: #6b6b6b   /* metadata, captions, disabled-adjacent */
--ink-300: #b0b0b0   /* borders, dividers, placeholder */
--ink-100: #e6e6e6   /* subtle fills, hover backgrounds */
--paper:   #ffffff   /* base surface */

Sechs Werte. Das ist das gesamte System, plus seine Umkehrung für den Dark Mode. Die Regel, die wir im Review durchsetzen: Es darf kein Grau existieren, das nicht auf der Rampe liegt. In dem Moment, in dem jemand ein #8a8a8a per Pipette abgreift, weil „der Rahmen sich eine Spur zu schwer anfühlte“, beginnt das System zu verrotten. Eine geschlossene Menge an Werten ist es, die ein monochromes UI davor bewahrt, in eine matschige Gleichförmigkeit abzudriften.

Text erreicht 4,5:1, Struktur erreicht 3:1

Jede Paarung von Text auf Fläche wird gegen die WCAG-Kontrastverhältnisse geprüft, bevor sie ausgeliefert wird. --ink-500 auf --paper landet bei etwa 5,7:1, komfortabel über der 4,5:1-Schwelle für Fließtext. --ink-300 fällt als Text durch und ist daher nur für Rahmen und Trennlinien erlaubt, wo die 3:1-Schwelle für Nicht-Text gilt. Die Regel in die erlaubten Verwendungen des Tokens zu kodieren, nicht nur in seinen Wert, ist das, was sie haltbar macht.

Die Barrierefreiheits-Dividende

Hier gewinnt Monochrom leise. Etwa einer von zwölf Männern hat eine Form von Farbfehlsichtigkeit, und jede Oberfläche, die sich auf Rot-gegen-Grün stützt, um Bedeutung zu tragen, ist für einen erheblichen Teil der Nutzer unlesbar. Wir laufen nie gegen diese Wand, weil wir Bedeutung von vornherein nie in Farbtönen kodiert haben. Unsere Zustände werden durch Form, Label, Gewicht und Position unterschieden.

Diese Disziplin erzwingt überall ein gesünderes Muster: Lassen Sie niemals einen einzelnen Kanal Bedeutung allein tragen. Ein deaktivierter Button in unserem System ist nicht bloß heller. Er verliert seinen Rahmen, und sein Label fällt auf --ink-300, sodass der Zustand auf einem Graustufen-Bildschirm, in hellem Sonnenlicht und für einen farbenblinden Nutzer identisch überlebt. Youp, unsere Journaling-App, kennzeichnet Stimmungseinträge mit Ikonografie und Label-Text statt mit dem üblichen Rot-zu-Grün-Stimmungsverlauf, sodass die emotionale Historie lesbar ist, ohne sich auf ein Spektrum zu verlassen, das viele Menschen nicht sehen können.

Hochkontrast- und Forced-Colors-Unterstützung bekommen Sie noch dazu nahezu kostenlos, weil Sie nie mit einer empfindlichen Markenpalette gegen die eigenen Barrierefreiheits-Overrides des Browsers gekämpft haben.

Wie Einschränkung Entscheidungen beschleunigt

Der unterschätzte Vorteil ist Geschwindigkeit. Eine Palette ist eine kombinatorische Explosion: Jede neue Komponente multipliziert sich gegen jeden Farbton und jeden Zustand. Monochrom lässt das in sich zusammenfallen. Ohne eine Farbentscheidung reduziert sich das Design einer Komponente auf Typo-Stufe, Gewicht, Abstand und darauf, welcher Graustufen-Token für den Rahmen. Das ist eine Entscheidung, die man in Sekunden treffen und im Review mit einer Regel statt mit einem Geschmacksargument verteidigen kann.

Es potenziert sich auch. Weil die Token-Menge winzig und geschlossen ist, komponieren Komponenten vorhersehbar: eine Karte, eine Tabellenzeile und ein Modal ziehen alle aus denselben sechs Grautönen und denselben sieben Typo-Stufen, also wirken sie verwandt, ganz ohne Abstimmung. Neue Flächen erben Konsistenz, statt um sie zu verhandeln. Für ein kleines Studio, das mehrere Produkte ausliefert, ist dieses gemeinsame Substrat der Unterschied zwischen vier Apps, die sich wie eine Familie anfühlen, und vier Apps, die sich wie vier Anbieter anfühlen.

Der Trade-off ist real und wert, ihn zu benennen. Monochrom hat weniger rohe Ausdrucksbreite, und manche Kategorien brauchen wirklich Farbe: Datenvisualisierung mit vielen Reihen, alles, was auf eine physische Farbe abbildet, Markenmomente, die von Wärme leben. Wir tun nicht so, als wäre es anders. Unsere Haltung ist, dass Farbe verdient und selten sein sollte, bewusst für eine bestimmte Aufgabe eingeführt, niemals als Standardhebel für Hierarchie. Wenn wir dann doch zu ihr greifen, schlägt sie gerade deshalb hart ein, weil alles um sie herum still ist.

Regeln, die Sie morgen übernehmen können

Wenn Sie das ausprobieren wollen, ohne alles neu zu bauen:

  • Schließen Sie Ihre Graustufen-Rampe. Wählen Sie fünf oder sechs Werte, benennen Sie sie und verbannen Sie alles abseits der Rampe im Code-Review. Diese eine Regel leistet den Großteil der Arbeit.
  • Machen Sie eine Typo-Skala und verwenden Sie nur ihre Stufen. Keine willkürlichen Schriftgrößen. Wenn Sie ständig eine neue Größe brauchen, stimmt die Skala nicht; korrigieren Sie die Skala, fügen Sie keinen Einzelfall hinzu.
  • Kodieren Sie erlaubte Verwendungen in die Tokens. --ink-300 heißt „nur Rahmen“, nicht bloß ein Hex-Wert. Dokumentieren Sie es dort, wo Entwickler es lesen werden.
  • Prüfen Sie jedes bedeutungstragende Signal auf einen zweiten Kanal. Wenn das Entfernen von Farbe einen Zustand mehrdeutig machen würde, fügen Sie Form, Label oder Position hinzu, bis es das nicht mehr tut.
  • Behandeln Sie Weißraum wie eine Komponente. Geben Sie Abständen benannte Tokens und verteidigen Sie sie im Review so, wie Sie anderswo Farben verteidigen.

Schlussgedanke

In Schwarz-Weiß zu arbeiten ist keine Einschränkung, die wir dulden; es ist eine Linse, die klärt. Streicht man die einfachste Variable, haben die strukturellen – Rhythmus, Proportion, Kontrast, Raum – keinen Ort, an dem sie sich verstecken können. Die Oberfläche hat entweder eine echte Hierarchie oder nicht, und man findet es sofort heraus. Diese Ehrlichkeit ist uns mehr wert als jede Palette.