Tool-Anleitungen

Tailwind Shade Generator: Benutzerdefinierte Farbskalen leicht gemacht

7 Min. Lesezeit

Tailwind CSS wird mit einer sorgfältig gestalteten Farbpalette geliefert: 22 Farbtöne, jeder mit 11 Schattierungen von 50 bis 950. Sie deckt die überwiegende Mehrheit der Anwendungsfälle ab – aber in dem Moment, in dem du das spezifische Blau deiner Marke verwenden oder ein Lila, das genau zu deinem Unternehmenslogo passt, die eingebaute Palette nicht ausreicht.

Hier wird ein Shade-Generator unverzichtbar. Du gibst eine Farbe an – dein Marken-Primär-, Akzent- oder semantische Farbe – und der Generator gibt eine vollständige 50-bis-950-Skala aus, die genau als Tailwind-CSS-Konfigurationsobjekt formatiert ist und direkt in deine tailwind.config.js eingefügt werden kann.

Dieser Leitfaden erklärt, wie Tailwinds Schattierungssystem funktioniert, wie du benutzerdefinierte Skalen mit ColorFYIs Shade-Generator generierst und wie du Tailwind effektiv konfigurierst, einschließlich Dunkelmodus.


Wie Tailwinds Schattierungssystem funktioniert

Tailwinds Farbskala basiert auf einem 11-Schritt-Nummernsystem:

50  100  200  300  400  500  600  700  800  900  950

Jeder Schritt repräsentiert eine wahrnehmungsbezogene Helligkeitsstufe:

  • 50 ist die hellste – beinahe weiß, nur ein Hauch Farbe
  • 500 ist die „reine" Farbe – voll gesättigt, mittlere Helligkeit
  • 950 ist die dunkelste – beinahe schwarz, tiefer Farbton

Die Zahlen sind nicht willkürlich. Sie sind so angeordnet, dass sie ungefähr gleichmäßige wahrnehmungsbezogene Helligkeitssprünge erzeugen. Der Unterschied zwischen 100 und 200 sieht für dein Auge etwa genauso aus wie der Unterschied zwischen 700 und 800.

Warum 11 Schritte?

11 Schritte bieten genügend Granularität, um jeden häufigen Anwendungsfall in einer UI abzudecken:

Schattierung Hauptverwendung
50 Seiten- und Abschnittshintergründe, dezente Töne
100 Hover-Hintergründe für Ghost-/Outline-Elemente
200 Deaktivierte Zustandshintergründe, dezente Rahmen
300 Dekorative Rahmen, dezente Trennlinien
400 Platzhaltertext, sekundäre Icon-Farbe
500 Die Basisfarbe – ausgefüllte Schaltflächen, Links
600 Hover-Zustand für gefüllte interaktive Elemente
700 Aktiver-/Gedrückt-Zustand, barrierefreier Text auf hellen Hintergründen
800 Dunkler Text auf farbigen Hintergründen, Hervorhebungstext
900 Überschriften, hochkontrastiger Text
950 Beinahe-schwarze Töne, Text mit maximalem Kontrast

Dieses System bedeutet, dass jede Tailwind-Farbe wie ein Mini-Design-System für sich selbst funktioniert. Wenn du weißen Text benötigst, der auf einer gefüllten Schaltfläche lesbar ist, verwende -600. Wenn du einen kaum wahrnehmbaren Hintergrundton benötigst, verwende -50.


Die 50–950-Skala im Detail

Schauen wir uns ein konkretes Beispiel mit Tailwinds eingebauter violet-Skala an:

Schattierung Hex RGB-Helligkeit (L in OKLCH)
violet-50 #F5F3FF ~98%
violet-100 #EDE9FE ~95%
violet-200 #DDD6FE ~89%
violet-300 #C4B5FD ~80%
violet-400 #A78BFA ~70%
violet-500 #8B5CF6 ~57%
violet-600 #7C3AED ~48%
violet-700 #6D28D9 ~40%
violet-800 #5B21B6 ~33%
violet-900 #4C1D95 ~26%
violet-950 #2E1065 ~15%

Beachte, dass die Basisfarbe violet-500 bei einer Helligkeit von etwa 57% liegt – nicht genau in der Mitte von 0–100%, sondern leicht über dem Mittelpunkt positioniert, damit die Skala visuell ausgewogen bleibt. Sehr dunkle Schattierungen komprimieren sich in einen kleineren Helligkeitsbereich (15–40%), weil das menschliche Auge dunkle Schattierungen weniger präzise unterscheidet als helle.


Benutzerdefinierte Farbskalen generieren

ColorFYIs Shade-Generator verwenden

Der Shade-Generator nimmt jeden Hex-Code und gibt eine vollständige, Tailwind-formatierte Skala aus. So sieht der Arbeitsablauf aus:

Schritt 1: Gib deine Markenfarbe in das Eingabefeld ein.

Angenommen, deine Marke verwendet das exakte Blau #0057B8 – ein mitteldunkles Blau, das von vielen Enterprise-Marken verwendet wird.

Schritt 2: Der Generator berechnet alle 11 Schattierungen mit einem wahrnehmungsmäßig einheitlichen Algorithmus und zeigt dir den Hex-Code und eine visuelle Vorschau jedes Schritts.

Schritt 3: Kopiere den generierten Tailwind-Konfigurationsblock.

Die Ausgabe für #0057B8 sieht ungefähr so aus:

brand: {
  50:  '#E6F0FF',
  100: '#CCE1FF',
  200: '#99C3FF',
  300: '#66A4FF',
  400: '#3386FF',
  500: '#0057B8',  // Deine Eingabefarbe, verankert bei 500
  600: '#0049A3',
  700: '#003B8A',
  800: '#002D6B',
  900: '#001F4D',
  950: '#001230',
},

Was „Verankerung" bedeutet

Der Shade-Generator verankert deine Eingabefarbe standardmäßig an Position 500. Das bedeutet, die Eingabefarbe wird zur Mitte der Skala – fünf hellere Schattierungen werden darüber generiert, fünf dunklere darunter.

Einige Generatoren erlauben es, an einer anderen Position zu verankern. Wenn deine Markenfarbe bereits ein sehr dunkles Navy ist, kann eine Verankerung bei 700 oder 800 einen nützlicheren Bereich erzeugen. Wenn sie ein sehr helles Pastell ist, macht eine Verankerung bei 200 oder 300 mehr Sinn. Der Shade-Generator ermöglicht dir, den Ankerpunkt anzupassen.

Warum wahrnehmungsbezogene Gleichmäßigkeit wichtig ist

Ein naiver Shade-Generator könnte einfach den HSL-L-Wert um gleiche Schritte verringern: 95%, 85%, 75%, 65%, 55%, 45%, 35%, 25%, 15%. Die Mathematik ist einfach, aber das visuelle Ergebnis ist ungleichmäßig. Die Übergänge am hellen Ende der Skala sehen weiter auseinander aus als am dunklen Ende, weil das menschliche Auge empfindlicher für Helligkeitsunterschiede in Mitteltönen ist.

ColorFYIs Generator verwendet OKLCH-Helligkeitsinterpolation, die Schritte erzeugt, die visuell gleichmäßig wirken – und damit die wahrnehmungsbezogene Qualität von Tailwinds handgefertigten Standardskalen erreicht.


tailwind.config.js konfigurieren

Mit einer benutzerdefinierten Farbe erweitern

Der sicherste Weg, eine benutzerdefinierte Farbskala hinzuzufügen, ist Tailwinds Standards zu erweitern statt sie zu ersetzen:

// tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
  theme: {
    extend: {
      colors: {
        brand: {
          50:  '#E6F0FF',
          100: '#CCE1FF',
          200: '#99C3FF',
          300: '#66A4FF',
          400: '#3386FF',
          500: '#0057B8',
          600: '#0049A3',
          700: '#003B8A',
          800: '#002D6B',
          900: '#001F4D',
          950: '#001230',
        },
      },
    },
  },
}

Nachdem du dies hinzugefügt hast, kannst du Klassen wie bg-brand-500, text-brand-700, border-brand-200 und hover:bg-brand-600 in deinem gesamten Projekt verwenden.

Eine eingebaute Farbe ersetzen

Wenn du eine Standardfarbe vollständig ersetzen möchtest (z. B. Tailwinds blue durch dein Marken-Blau ersetzen):

module.exports = {
  theme: {
    extend: {
      colors: {
        blue: {
          50:  '#E6F0FF',
          // ... bis 950
        },
      },
    },
  },
}

Klassen wie bg-blue-500, text-blue-700 verwenden jetzt deine benutzerdefinierte Skala statt Tailwinds eingebautem Blau.

CSS-Variablen für Laufzeit-Theming verwenden

Für Anwendungen, die Laufzeit-Themenwechsel benötigen (z. B. White-Label-Produkte, benutzerdefinierbare Themes), definiere die Skala als CSS-Custom-Properties:

/* globals.css */
:root {
  --color-brand-50:  #E6F0FF;
  --color-brand-100: #CCE1FF;
  --color-brand-200: #99C3FF;
  --color-brand-300: #66A4FF;
  --color-brand-400: #3386FF;
  --color-brand-500: #0057B8;
  --color-brand-600: #0049A3;
  --color-brand-700: #003B8A;
  --color-brand-800: #002D6B;
  --color-brand-900: #001F4D;
  --color-brand-950: #001230;
}
// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      colors: {
        brand: {
          50:  'var(--color-brand-50)',
          100: 'var(--color-brand-100)',
          // ... bis 950
        },
      },
    },
  },
}

Das Ändern der CSS-Variablen zur Laufzeit (über JavaScript) färbt jetzt deine gesamte UI sofort um.

Tailwind-v4-Konfiguration

Tailwind CSS v4 verlagert die Konfiguration vollständig in CSS mit @theme:

@import "tailwindcss";

@theme {
  --color-brand-50:  #E6F0FF;
  --color-brand-100: #CCE1FF;
  --color-brand-200: #99C3FF;
  --color-brand-300: #66A4FF;
  --color-brand-400: #3386FF;
  --color-brand-500: #0057B8;
  --color-brand-600: #0049A3;
  --color-brand-700: #003B8A;
  --color-brand-800: #002D6B;
  --color-brand-900: #001F4D;
  --color-brand-950: #001230;
}

Keine tailwind.config.js benötigt. Die --color-brand-*-Variablen sind automatisch als Utility-Klassen verfügbar (bg-brand-500, text-brand-700 usw.).


Dunkelmodus-Schattierungen

Dunkelmodus invertiert deine Farbskala nicht – er kehrt um, welche Schattierungen du verwendest. Dieselbe Skala funktioniert für Hell- und Dunkelmodus; du tauschst nur aus, welches Ende der Skala Hintergründe und welches Text übernimmt.

Das Inversionsprinzip

Rolle Hellmodus Dunkelmodus
Seitenhintergrund brand-50 brand-950
Oberflächen-/Kartenhintergrund brand-100 brand-900
Dezenter Rahmen brand-200 brand-800
Gedämpfter Text brand-400 brand-600
Textkörper brand-700 brand-300
Überschriftstext brand-900 brand-100
Gefüllte Schaltfläche brand-500 brand-500
Schaltflächen-Hover brand-600 brand-400

Die gefüllte Schaltflächenfarbe (brand-500) bleibt in beiden Modi gleich – sie ist der Ankerpunkt. Alles drumherum kehrt sich um: Helle Hintergründe werden zu dunklen Hintergründen, dunkler Text wird zu hellem Text.

Mit Tailwinds Dunkelmodus implementieren

<!-- Hintergrund: light-50 im Hellen, dark-950 im Dunkeln -->
<div class="bg-brand-50 dark:bg-brand-950">

  <!-- Karte: light-100 im Hellen, dark-900 im Dunkeln -->
  <div class="bg-brand-100 dark:bg-brand-900 rounded-lg p-6">

    <!-- Überschrift: dark-900 Text im Hellen, light-100 im Dunkeln -->
    <h2 class="text-brand-900 dark:text-brand-100">Kartentitel</h2>

    <!-- Textkörper: dark-700 im Hellen, light-300 im Dunkeln -->
    <p class="text-brand-700 dark:text-brand-300">Karteninhalt hier.</p>

    <!-- Schaltfläche: immer brand-500, Hover verschiebt sich je nach Modus -->
    <button class="bg-brand-500 hover:bg-brand-600 dark:hover:bg-brand-400 text-white">
      Aktion
    </button>

  </div>
</div>

Eine separate Dunkelmodus-Palette generieren

Bei einigen Design-Systemen, insbesondere solchen mit erheblicher visueller Trennung zwischen Hell- und Dunkelmodus, möchtest du möglicherweise eine separate „Dunkel"-Skala generieren. Dies könnte sein:

  • Eine leicht wärmere oder kühlere Version desselben Farbtons (gesättigter für den Dunkelmodus, da dunkle Hintergründe lebendigere Farben benötigen, um äquivalent auszusehen)
  • Ein komplementärer Farbton, der besser gegen dunkle Hintergründe funktioniert

Generiere beide Skalen mit dem Shade-Generator und definiere sie als separate Tokens:

:root {
  /* Hellmodus-Skala */
  --color-brand-500: #0057B8;
}

[data-theme="dark"] {
  /* Dunkelmodus-Skala (etwas gesättigter) */
  --color-brand-500: #3386FF;
}

Häufige benutzerdefinierte Skalierungsszenarien

Eine Markenfarbe exakt anpassen

Viele Markenrichtlinien geben einen einzelnen Pantone- oder Hex-Code an. Wenn deine Markenfarbe #E63946 (ein lebhaftes Rot) ist, generiere die Skala, verankert bei 500. Dein Markenrot wird zu brand-500, und du erhältst den vollen Bereich für Design-Flexibilität.

Ein warmes neutrales Grau hinzufügen

Standardgrauskalen in Tailwind neigen zu kühlen Tönen. Um ein warmes Grau zu erstellen, das mit einem orangefarbenen oder roten Primärton harmoniert, generiere eine Schattierungsskala für eine entsättigte warme Farbe wie #8B7355 und verwende sie dann als dein neutrales Grau. Die leichte Wärme schafft visuelle Kohärenz mit deiner Primärfarbe.

Semantische Farbskalen erstellen

Dein Design-System benötigt wahrscheinlich semantische Skalen:

  • Erfolg: Aus einem Grün wie #16A34A generieren
  • Warnung: Aus einem Amber wie #D97706 generieren
  • Fehler/Gefahr: Aus einem Rot wie #DC2626 generieren
  • Info: Aus einem Himmelblau wie #0284C7 generieren

Jede wird zu einer benannten Skala in deiner Konfiguration (success, warning, error, info) neben deinen Marken-primary- und neutral-Skalen.


Wichtigste Erkenntnisse

  • Tailwinds 50–950-Schattierungssystem bietet 11 wahrnehmungsmäßig gleichmäßig gespaced Helligkeitsstufen, von beinahe weiß bis beinahe schwarz, die jeden UI-Anwendungsfall abdecken.
  • ColorFYIs Shade-Generator konvertiert jeden einzelnen Hex-Code in eine vollständige Tailwind-fertige Skala mit einem wahrnehmungsmäßig einheitlichen Algorithmus.
  • Erweitere tailwind.config.js mit theme.extend.colors, um benutzerdefinierte Skalen hinzuzufügen, ohne Tailwinds Standardwerte zu verlieren; verwende @theme in Tailwind v4.
  • Verwende CSS-Custom-Properties (var(--color-brand-500)) für Laufzeit-Themenwechsel und White-Label-Anwendungen.
  • Dunkelmodus benötigt keine andere Farbe – er verwendet dieselbe invertierte Skala: helle Schattierungen werden Hintergründe, dunkle Schattierungen werden Text.
  • Generiere separate Skalen für deine Primär-, Neutral-/Grau- und semantischen Farben (Erfolg, Warnung, Fehler, Info), um ein vollständiges Design-System zu erstellen.
  • Verwende die numerische Benennungskonvention konsistent, damit Entwickler genau wissen, welche Schattierung sie greifen sollen: 600 für Hover-Zustände, 700 für barrierefreien Text auf Weiß, 100 für dezente Hintergründe.

Ähnliche Farben

Ähnliche Marken

Ähnliche Werkzeuge