Zum Inhalt springen
Design Tokens

Design Tokens in Tailwind CSS einrichten

So verankerst du Design Tokens in Tailwind CSS: Farben, Abstände und Radien als CSS-Variablen, mit dem theme-Block nutzbar machen und Themes umschalten.

9 Min. LesezeitStand: 12. Juli 2026
Design TokensTailwindDark Mode
--color-primary01
Serie 04
Licht, das den ganzen Tag bleibt
Sechs Leuchten aus einer Werkstatt in Utrecht.
Serie ansehenShowroom

Design Tokens sind die benannten Grundwerte deines Designs: Farben, Abstände, Schriftgrößen und Radien. In Tailwind CSS lassen sie sich als CSS-Variablen hinterlegen und direkt als Utility-Klassen nutzen. Dieser Leitfaden zeigt, wie du Tokens sauber verankerst, sodass dein Theme an einer Stelle steuerbar bleibt.

Das Wichtigste in Kürze
  • Tokens sind benannte Entscheidungen. Nicht blau, sondern Primärfarbe.
  • In Tailwind v4 stehen sie als CSS-Variablen im Theme und gelten damit für Utilities und eigenes CSS gleichzeitig.
  • Wenige Rollen schlagen viele Werte. Drei Grautöne, die man versteht, sind besser als zwölf, die man rät.
  • Ein Dark Mode ist mit Tokens ein Austausch von Werten, kein zweiter Satz Klassen.
01

Warum Tokens statt fester Werte

Wenn Farbwerte und Abstände quer durch das Projekt fest verdrahtet sind, wird jede Anpassung zur Suchaktion. Ein Token bündelt den Wert unter einem sprechenden Namen, etwa color-primary oder space-4. Eine Änderung an der Quelle wirkt dann überall.

Namen schaffen zudem eine gemeinsame Sprache. Design und Entwicklung reden über primary und surface statt über zufällige Hex-Zahlen. Das reduziert Missverständnisse und hält die Oberfläche über viele Komponenten hinweg konsistent.

02

Tokens als CSS-Variablen definieren

Der natürliche Ort für Tokens sind CSS-Variablen im :root-Block deiner Stylesheet-Datei. Dort legst du Werte wie --color-primary, --radius-md oder --space-4 an. Weil es echte CSS-Variablen sind, stehen sie überall zur Verfügung und lassen sich zur Laufzeit ändern.

Halte die Namen flach und vorhersehbar. Eine Skala wie --space-1 bis --space-8 oder --color-fg und --color-bg ist leichter zu merken als frei erfundene Bezeichnungen. Diese Ordnung zahlt sich aus, sobald das Projekt wächst.

HandyAa20px
TabletAa30px
DesktopAa42px
Eine Skala statt einzelner Werte. Drei Stufen, die man sich merkt, schlagen zwölf, die man nachschlägt.
:root {  --blue-600: #1f5eff;  --slate-900: #0f172a;    --color-primary: var(--blue-600);   --color-text: var(--slate-900);   --radius-md: 8px;}
Rohe Werte oben, Rollen darunter. Zwei Ebenen, eine Datei.
03

Tokens in Tailwind verfügbar machen

In Tailwind CSS v4 konfigurierst du das Theme direkt im Stylesheet über den theme-Block. Dort verweist du auf deine Variablen, zum Beispiel color-primary auf var(--color-primary). Aus diesem Eintrag erzeugt Tailwind automatisch passende Utilities wie bg-primary oder text-primary.

So bleibt eine einzige Quelle der Wahrheit erhalten. Deine Komponenten nutzen die Utility-Klassen, diese greifen auf die Tokens zu, und die Tokens leben zentral in den Variablen. Änderst du einen Wert dort, zieht die Anpassung durch alle Klassen.

01SeiteEine URL, gerendert.
02RohwerteAlles, was im Stylesheet steht.
03RollenZusammenfassen und benennen.
04VariablenErst hier sind es Tokens.

Von der Variable bis zur Klasse im Bauteil. Nur die erste Station fasst du an, wenn sich etwas ändert.

@theme {   --color-primary: var(--color-primary);   --color-text: var(--color-text);} /* daraus entstehen bg-primary, text-primary, border-primary */
Aus jedem Eintrag im theme-Block macht Tailwind Utilities.
04

Semantische statt roher Namen

Es lohnt sich, zwei Ebenen zu trennen. Auf der unteren Ebene stehen rohe Werte wie blue-500 mit ihrem Farbwert. Auf der oberen Ebene stehen semantische Tokens wie primary, die auf einen rohen Wert zeigen. Komponenten nutzen nur die semantische Ebene.

Dieser kleine Umweg macht dein System flexibel. Willst du die Markenfarbe wechseln, änderst du nur, worauf primary zeigt. Kein Bauteil muss angefasst werden, weil keines direkt an einen rohen Wert gebunden ist.

Ausgelesen16 Farben, viele davon fast gleich.
#1f5eff#1f5dfe#2060ff#0f172a#0f172b#111827#ffffff#fefefe#f8fafc#f7f9fb#e2e8f0#e3e8f1#64748b#65748a#94a3b8#1f5eff
BehaltenVier Rollen, jede mit einer Aufgabe.
  • primaryPrimärfarbe#1f5eff
  • surfaceFläche#f8fafc
  • textText#0f172a
  • borderRand#e2e8f0

Links, was eine mittelgroße Seite an Werten hergibt. Rechts, was davon als Rolle in ein Projekt gehört.

Namen, die die Farbe nennen
  • blau-500, blau-600, blau-hell.
  • Beim Rebrand heißt Grün plötzlich blau-500.
  • Niemand weiß, welcher der beiden Grautöne für Ränder ist.
  • Der Dark Mode braucht einen zweiten Satz Namen.
Namen, die die Aufgabe nennen
  • primary, surface, border, text.
  • Beim Rebrand ändert sich nur, worauf primary zeigt.
  • border ist border, egal welcher Grauton dahinter liegt.
  • Der Dark Mode überschreibt dieselben vier Namen.

Wenige Rollen schlagen viele Werte.

Eine Liste aus Hex-Zahlen ist eine Bestandsaufnahme. Ein System wird daraus erst, wenn jeder Wert eine Aufgabe hat.

FarbeVier Rollen statt sechzehn Werten.
TypografieEine Skala, keine Einzelfälle.
AbstandVier Pixel als Schritt reichen.
05

Themes über Tokens umschalten

Weil Tokens CSS-Variablen sind, wird ein Dark-Mode fast beiläufig möglich. Du überschreibst dieselben Variablen in einem zweiten Kontext, etwa unter einem data-theme-Attribut oder einer Klasse am Wurzelelement. Die Utility-Klassen bleiben unverändert.

Die Komponenten wissen nichts vom aktiven Theme, sie lesen einfach die aktuellen Variablenwerte. So schaltest du zwischen hell und dunkel um, ohne eine einzige Klasse in den Bauteilen anzufassen.

:root { --color-surface: #ffffff; --color-text: #0f172a; }   [data-theme="dark"] {    --color-surface: #0f1115;    --color-text: #f4f5f7;  }
Dieselben Namen, andere Werte. Die Bauteile merken nichts.
06

Tokens pflegen und dokumentieren

Ein Token-Satz ist nur so gut wie seine Pflege. Halte die Liste kurz und entferne Werte, die niemand nutzt. Jeder zusätzliche Token, der keinen klaren Zweck hat, macht das System schwerer statt reicher.

Eine knappe Dokumentation hilft dem Team. Ein Abschnitt in der README oder eine DESIGN.md, die Farben, Abstände und ihre Bedeutung auflistet, sorgt dafür, dass neue Bauteile dieselben Werte verwenden und das Design konsistent bleibt.

Die Doku gehört neben die WerteEine DESIGN.md, die in einem anderen Ordner liegt als das Stylesheet, ist nach dem dritten Wechsel veraltet. Schreib zu jeder Rolle einen Halbsatz als Kommentar direkt über die Variable, dann steht die Erklärung dort, wo jemand sie sowieso liest.
07

Woran Token-Sätze scheitern

Ein Satz Tokens ist schnell angelegt. Dass er ein Jahr später noch gilt, ist die eigentliche Arbeit.

  1. Zu viele Werte. Zwölf Grautöne heißen, dass niemand mehr weiß, welcher wofür ist. Drei, die eine Aufgabe haben, reichen fast immer.
  2. Namen, die die Farbe nennen. blau-500 überlebt keinen Rebrand. Primär, Fläche, Rand und Text überleben ihn.
  3. Ausnahmen im Bauteil. Ein einzelnes hartes #1f2937 im Code ist die Stelle, an der ein Dark Mode später bricht.
Die Ausnahme im BauteilEin einzelnes hartes #1f2937 mitten im Code fällt erst auf, wenn jemand den Dark Mode einschaltet und eine Fläche schwarz auf schwarz steht. Suche vor jedem Theme-Wechsel einmal nach Rautezeichen im Quelltext.

Ein Token ist eine Entscheidung mit Namen. Ohne Namen ist es nur ein Wert.

08

Dark Mode ohne zweiten Satz Klassen

Wenn Farben als Tokens stehen, ist ein Dark Mode ein Austausch von Werten. Du definierst dieselben Namen unter einem Selektor noch einmal, und alles, was die Namen benutzt, zieht mit.

Zwei Dinge musst du selbst prüfen: Bilder brauchen im Dunkeln oft weniger Kontrast, und feste Farbwerte in einzelnen Bauteilen fallen erst dort auf. Wer von Anfang an über Tokens arbeitet, hat beim Umschalten fast nichts zu tun.

Teilen
Geschrieben von
Amelie RoesmannCreative DirectionLeonie RoesmannDesign Engineering

Wir bauen Websites und Web-Apps bei Systra Studios in Münster und legen die Bausteine daraus hier ab. Was in den Beiträgen steht, kommt aus echten Projekten, nicht aus einem Werbeprospekt.

Systra Studios: Webdesign aus Münster

Du weißt, worauf es ankommt.
Das Auslesen übernimmt das Werkzeug.

URL eingeben, Farben, Typografie und Abstände bekommen. Als DESIGN.md für Menschen oder als tokens.json für den Build.

  • Farben werden am gerenderten Bild geprüft.
  • Nahe beieinander liegende Werte werden zusammengefasst.
  • Ausgabe als Markdown oder JSON, beides zum Kopieren.
Style Extractor öffnen
Ergebnis
  • primary#1f5eff
  • surface#f8fafc
  • text#0f172a
  • border#e2e8f0
TypografieAaInter · 16 / 20 / 28 / 40
FAQ

Häufige Fragen

In Tailwind v4 nicht mehr. Das Theme steht im Stylesheet im theme-Block, und das ist auch der Ort, an dem deine Variablen zu Utilities werden. Eine Konfigurationsdatei brauchst du nur noch für Plugins oder wenn du aus v3 migrierst.

Deine Frage war nicht dabei? Wir helfen gern weiter.

Kontakt aufnehmen