Zum Inhalt springen

CSS-Verlaufsgenerator

Lineare, radiale und konische Verläufe mit Vorschau bauen und als background-CSS kopieren. Bei OKLCH-Interpolation mit Alternativzeile für ältere Browser.

Vorlagen

Typ
deg

Farbstopps

Klick auf die Leiste, um dort einen Stopp hinzuzufügen, und zieh einen Griff, um ihn zu verschieben. Mit der Tastatur verschieben die Pfeiltasten einen Stopp um 1 % (mit Umschalt um 10 %), und Entf entfernt ihn.

%
%

CSS

background: linear-gradient(90deg, #ff7e5f 0%, #feb47b 100%);

Deine Eingaben werden nur in diesem Browser verarbeitet und nie an einen Server gesendet. So funktioniert es

Ein CSS-Farbverlauf mit drei Farbstopps und einer Farbanpassungsleiste

Hier baust du einen Farbverlauf, siehst Farben und Richtung sofort in der Vorschau und nimmst am Ende die fertige background-Deklaration mit. Voreingestellt ist die Vorlage „Sonnenuntergang“ mit dem CSS background: linear-gradient(90deg, #ff7e5f 0%, #feb47b 100%);.

So benutzt du den Generator

  1. Vorlagen: Klick eine der fünf an, Sonnenuntergang, Ozean, Bonbon, Monochrom oder Aurora, und nimm sie als Ausgangspunkt.
  2. Typ: „Linear“, „Radial“ oder „Konisch“. Je nach Typ ändern sich die Optionen darunter.
  3. Farbstopps: Hier legst du Farben und Positionen fest. Wie das im Einzelnen geht, steht im nächsten Abschnitt.
  4. In OKLCH interpolieren (in oklch): Ist die Option an, werden die Farben im OKLCH-Farbraum miteinander verbunden.
  5. CSS: Hier steht die Deklaration zu den aktuellen Einstellungen. Mit „CSS kopieren“ nimmst du sie mit.
Typ CSS-Funktion Verfügbare Optionen
Linear linear-gradient Winkel. 90deg läuft von links nach rechts, 180deg von oben nach unten
Radial radial-gradient Form („Kreis“, „Ellipse“) und Mittelpunkt
Konisch conic-gradient Winkel (die Richtung, in der die Farben zu kreisen beginnen) und Mittelpunkt

Den Winkel tippst du ins Zahlenfeld oder stellst ihn mit dem Regler zwischen 0 und 360 ein. Das Zahlenfeld nimmt auch Werte über 360 und negative Werte an und schreibt sie unverändert ins CSS. Für den Mittelpunkt stehen neun Stellen zur Wahl: die Mitte, die vier Seiten und die vier Ecken.

Mit Farbstopps arbeiten

Ein Farbstopp (color stop) ist ein Punkt, der festlegt: An dieser Stelle gilt diese Farbe. Der Verlauf entsteht, indem die Strecken zwischen den Stopps gefüllt werden. Möglich sind 2 bis 8 Stopps.

  • Ein Klick auf eine freie Stelle der Verlaufsleiste legt dort einen Stopp an. Er bekommt die Farbe, die an dieser Stelle gerade zu sehen war. Direkt nach dem Hinzufügen sieht der Verlauf deshalb aus wie vorher. Zieh den Stopp dann weiter oder gib ihm eine andere Farbe.
  • Der Button „Stopp hinzufügen“ setzt einen weißen Stopp (#ffffff) in die Mitte zwischen dem letzten Stopp und 100 %. Liegt der letzte Stopp schon bei 100 %, kommt der neue in die Mitte der größten Lücke zwischen zwei Stopps, damit er ihn nicht überdeckt. Liegt je ein Stopp bei 0 % und bei 100 %, entsteht er bei 50 %.
  • Zieh am Griff oder tipp eine Zahl ins Positionsfeld der Liste, um die Position zu ändern. Mit der Tastatur verschieben die Pfeiltasten einen Griff um 1 %, zusammen mit Umschalt um 10 %, und Entf löscht den Stopp.
  • Die Buttons Nach oben und Nach unten in der Liste tauschen die Position mit dem benachbarten Stopp. Damit drehst du die Reihenfolge der Farben um.
  • Entfernen geht nur, solange es mindestens 3 Stopps gibt.

Die Liste ist immer nach Position sortiert, und in dieser Reihenfolge stehen die Stopps auch im CSS. Positionen werden mit einer Nachkommastelle geschrieben.

Unterstützte Farbeingaben: Als Stoppfarbe gelesen werden HEX (3, 4, 6 oder 8 Stellen), Farbnamen, rgb(), hsl(), oklch() und transparent. Die Funktionen hwb(), lab(), lch() und color() sowie Variablen in var() werden nicht gelesen. Bei einer unlesbaren Farbe erscheint „Das ist keine CSS-Farbe, die dieses Tool lesen kann.“, und der betreffende Stopp fehlt in Vorschau und CSS. Gelesene Farben landen in genau der Schreibweise im CSS, in der du sie eingegeben hast.

Mit OKLCH-Interpolation ändert sich die Farbe in der Mitte

Ohne weitere Angabe mischt ein CSS-Verlauf, dessen Farben alle als HEX, Farbname, rgb() oder hsl() notiert sind, im sRGB-Farbraum: Die Werte für Rot, Grün und Blau der beiden Farben werden jeweils geradlinig ineinander überführt. Die empfundene Helligkeit verhält sich aber nicht proportional zu diesen Zahlen. Mischt man zwei Farben, die im Farbkreis weit auseinanderliegen, wird die Mitte deshalb dunkel und trüb. OKLCH führt Helligkeit (L), Buntheit (C) und Farbtonwinkel (H) getrennt und verbindet jeden der drei Werte für sich. Helligkeit und Buntheit brechen in der Mitte also nicht ein.

Setzt man zwei Stopps auf 0 % und 100 % und berechnet die Farbe bei 50 % der Leiste, ergibt sich:

Zwei Farben Mitte bei sRGB Mitte bei OKLCH
Rot #ff0000 → Grün #00ff00 #808000 (dunkles Oliv) #f99500 (helles Orange)
Blau #0000ff → Gelb #ffff00 #808080 (Grau) #00cfbd (Türkis)
Vorlage Sonnenuntergang #ff7e5f → #feb47b #ff996d #ff9a68

Je weiter die Farbtöne auseinanderliegen, desto größer der Unterschied. Bei ähnlichen Farben wie in der Vorlage Sonnenuntergang ist er kaum vorhanden. Eines solltest du außerdem wissen: Bei OKLCH tauchen in der Mitte Farbtöne auf, die in keiner der beiden Ausgangsfarben stecken. Zwischen Rot und Grün ziehen zum Beispiel Orange und Gelb vorbei. Sollen zwei Farben auf direktem Weg ineinander übergehen, lässt du die Option besser aus.

Warum das kopierte CSS aus zwei Zeilen besteht

Die Syntax, mit der man wie bei in oklch die Interpolation festlegt, ist vergleichsweise spät zu CSS gekommen, und manche Browser verstehen sie nicht. Deshalb besteht die Deklaration bei eingeschalteter OKLCH-Interpolation aus zwei Zeilen. Für einen linearen Verlauf von Rot nach Grün sieht das so aus:

background: linear-gradient(90deg, #ff0000 0%, #ff3300 12.5%, #ff5600 25%, #ff7600 37.5%, #f99500 50%, #e3b200 62.5%, #c2ce00 75%, #8fe800 87.5%, #00ff00 100%);
background: linear-gradient(90deg in oklch, #ff0000 0%, #00ff00 100%);
  • Die erste Zeile ist die Alternative. Die Strecke zwischen zwei benachbarten Stopps wird in 8 gleiche Teile zerlegt, und die 7 in OKLCH berechneten Zwischenfarben werden als gewöhnliche HEX-Stopps eingefügt. Aus 2 Stopps werden so 9, aus 3 werden 17.
  • Die zweite Zeile ist die in oklch-Syntax selbst.

Wird dieselbe Eigenschaft zweimal deklariert, gilt die spätere. Ein Browser, der in oklch kennt, nimmt also die zweite Zeile. Einer, der es nicht kennt, ignoriert sie und bleibt bei der ersten.

Solange die OKLCH-Interpolation an ist, zeichnet die Seite Vorschau und Verlaufsleiste in jedem Browser nach dem Verfahren der ersten Zeile. Die Alternativzeile ist eine Näherung, bei der die Zwischenfarben auf den sRGB-Bereich gebracht und als HEX geschrieben sind. Was ein Browser aus der zweiten Zeile selbst zeichnet, kann farblich leicht davon abweichen. Kommt es auf die Farbe an, prüfe das Ergebnis nach dem Einfügen im Zielbrowser.

Was der Generator nicht kann

  • Wiederholende Verläufe wie repeating-linear-gradient. Dafür setzt du im kopierten CSS repeating- vor den Funktionsnamen und passt den Bereich der Stopps von Hand an.
  • Die Größe eines radialen Verlaufs (closest-side und ähnliche) und einen Mittelpunkt in Koordinaten wie at 30% 70%
  • Hintergründe aus mehreren, durch Kommas getrennten Verläufen
  • Stopp-Positionen in px statt in Prozent
  • Andere Interpolationsarten wie in hsl oder in oklab

Quellen

Häufige Fragen

Ich habe eine Vorlage angeklickt, und die eingeschaltete OKLCH-Interpolation war wieder aus.

Eine Vorlage ändert nicht nur die Farben. Sie setzt Typ, Winkel, Form, Mittelpunkt und Farbstopps auf einmal neu und schaltet auch „In OKLCH interpolieren (in oklch)“ aus. Selbst angelegte Farbstopps werden durch die der Vorlage ersetzt und lassen sich nicht zurückholen. Willst du von einer Vorlage ausgehen, wähle erst die Vorlage und schalte danach die Option ein.

Lassen sich Streifen bauen, bei denen zwei Farben hart aneinanderstoßen, statt ineinander überzugehen?

Ja, indem du zwei Stopps auf dieselbe Position legst. Mit Rot bei 0 % und 50 % und Blau bei 50 % und 100 % entsteht linear-gradient(90deg, #ff0000 0%, #ff0000 50%, #0000ff 50%, #0000ff 100%), und die Farbe wechselt in der Mitte schlagartig. Genauer als das Ziehen am Griff ist es, dieselbe Zahl direkt ins Positionsfeld zu tippen.

Wird ein Verlauf, der nach transparent ausläuft, bei OKLCH-Interpolation in der Mitte dunkel?

Nein. transparent ist intern ein durchsichtiges Schwarz, und bei schlichtem Mischen würde die Mitte dadurch schwärzlich. Dieses Tool multipliziert wie CSS-Verläufe selbst zuerst das Alpha ein und mischt erst dann. In der Alternativzeile eines Verlaufs von Rot (#ff0000) nach transparent lauten die Zwischenstopps #ff0000bf, #ff000080 und #ff000040: Das Rot bleibt, nur die Deckkraft nimmt ab.

Kann ich das kopierte CSS in ein Element einfügen, das schon einen Hintergrund hat?

Füge das kopierte CSS innerhalb derselben Regel unter der vorhandenen background-Deklaration ein. Überschreibt eine andere Regel den Hintergrund, prüfe auch die Selektorspezifität und !important. Liefert die OKLCH-Interpolation zwei Zeilen, füge beide in der vorgegebenen Reihenfolge ein.

Verwendete Open-Source-Software: culori (MIT)

Zuletzt aktualisiert: