Dark Mode landet als Häkchen im Backlog. Er verhält sich wie ein Fork. Ab dem Moment, in dem Sie ihn ausliefern, haben Sie zwei Farbsysteme, zwei Sätze von Kontrastentscheidungen, zwei Screenshot-Sätze im Marketing — und jede künftige Komponente muss zweimal geboren werden.
Wir sind nicht dagegen. Diese Seite ist dunkel. Wir sind dagegen, ihn als Schalter zu behandeln, den jemand in einem Sprint nachrüstet.
Umkehren ist kein Gestalten
Die naive Variante dreht die Palette um und erklärt es für erledigt. Dann tauchen die Probleme auf: reinweißer Text auf reinem Schwarz flimmert, Schatten transportieren keine Tiefe mehr, weil nichts mehr da ist, was man abdunkeln könnte, Markenfarben, die auf Weiß strahlten, wirken schlammig, und jede Illustration mit transparentem Hintergrund verschwindet.
- Tiefe muss neu gebaut werden. Helle Themes heben Flächen mit Schatten an. Dunkle heben sie mit Helligkeit an — je höher die Fläche, desto heller wird sie.
- Markenfarben brauchen meist einen zweiten Ton. Der Akzent, der auf Weiß den Kontrast besteht, besteht ihn auf Fast-Schwarz selten.
- Reines Schwarz und reines Weiß sind beides Fallen. Maximaler Kontrast erzeugt Halation, bei der heller Text in den dunklen Hintergrund ausblutet. Bei Menschen mit Astigmatismus ist das stärker ausgeprägt.
- Bilder brauchen einen Plan. Transparente PNGs, Screenshots und Logos setzen alle irgendwo eine Hintergrundfarbe voraus.
Der ehrliche Preis
Grob ein Drittel mehr Designzeit bei jeder neuen Komponente und eine dauerhafte zweite Spalte in jedem visuellen QA-Durchgang. Das ist der echte Preis, und er lohnt sich, wenn Ihr Produkt nachts, in langen Sitzungen oder von Entwicklern genutzt wird — Zielgruppen, die ernsthaft danach fragen werden.
Liefern Sie lieber ein Theme aus, über das Sie nachgedacht haben, als zwei, die Sie umgedreht haben.
Wenn Sie sich doch dafür entscheiden, bauen Sie es ab Tag eins auf semantischen Tokens auf — `surface`, `text-primary`, `border-subtle` — und niemals auf rohen Hex-Werten in Komponenten. Tokens nachträglich in eine Codebasis mit fest verdrahteten Farben einzuziehen, ist weit aufwendiger als das Theme selbst.

