Menu

CSS Farbverlauf: radial-gradient, linear-gradient und conic

CSS-Farbverläufe sind Bilder, die der Browser aus Farben zeichnet. Hier lernst du radial-gradient (Form, Größe, Position), linear-gradient (Richtung und Winkel), conic-gradient, Farbstopps, harte Stopps für Streifen, wiederholte Verläufe und Text mit Farbverlauf.

Diese Seite enthält ausführbare Editoren - bearbeiten, ausführen und Ausgabe sofort sehen.

Radiale Farbverläufe

radial-gradient() lässt Farben von einem Mittelpunkt nach außen ineinander übergehen. Wie jeder CSS-Verlauf ist es ein Bild und gehört deshalb in background-image (oder die Kurzschreibweise background):

Die vollständige Syntax lautet radial-gradient(shape size at position, color stops). Alles vor den Farben ist optional.

TeilWerteStandard
Formcircle, ellipseellipse
Größeclosest-side, closest-corner, farthest-side, farthest-corner oder Längenfarthest-corner
Positionat center, at top left, at 30% 70%, at 20px 40pxat center
FarbstoppsZwei oder mehr Farben, jede mit optionaler Position

Das Schlüsselwort für die Größe bestimmt, wo die letzte Farbe erreicht wird: an der nächstgelegenen Seite der Box, der entferntesten Ecke und so weiter. Ändere die Werte hier und sieh zu, wie der Verlauf neu gezeichnet wird:

Probier circle farthest-corner at 30% 50%, #f59e0b, #2563eb, ellipse at bottom, white, #16a34a und circle 40px, #f59e0b 99%, transparent (ein Punkt mit harter Kante).

Lineare Farbverläufe

linear-gradient() lässt Farben entlang einer geraden Linie übergehen. Setz eine Richtung oder einen Winkel an den Anfang, dann die Farben:

Winkel beginnen bei 0deg mit Richtung nach oben und drehen im Uhrzeigersinn, also ist 90deg gleich to right und 180deg der Standard to bottom. to right bleibt auf Seiten von rechts nach links physisch; spiegle es selbst, wenn der Verlauf der Leserichtung folgen soll.

Farbstopps und harte Stopps

Jede Farbe kann eine Position haben. Ohne Positionen werden die Farben gleichmäßig verteilt. Teilen sich zwei Farben eine Position, erfolgt der Wechsel sofort, und so zeichnest du Streifen, Flaggen und Fortschrittsbalken:

Ein Stopp kann auch zwei Positionen haben, #111827 12px 24px, was ein einfarbiges Band von 12px bis 24px zeichnet.

Konische Farbverläufe

conic-gradient() lässt Farben um einen Mittelpunkt kreisen, wie die Zeiger einer Uhr. Mit harten Stopps zeichnet es ein Kreisdiagramm ganz ohne Bilder oder JavaScript:

Ein in CSS gezeichnetes Diagramm ist für Screenreader unsichtbar, also schreib die Zahlen zusätzlich als Text hin.

Text mit Farbverlauf

Schneide einen Hintergrund mit Verlauf auf die Buchstaben zu und mach den Text selbst transparent:

.gradient-text {
  background: linear-gradient(90deg, #2563eb, #db2777);
  -webkit-background-clip: text; /* older browsers need the prefix */
  background-clip: text;
  color: transparent;
}

Denk an eine einfache color als Fallback: Klappt das Zuschneiden nicht, verschwindet der Text. Text mit Farbverlauf hat außerdem ungleichmäßigen Kontrast, also nimm ihn nur für große Überschriften.

Verläufe lassen sich in einer einzigen background-image-Liste mit Bildern und anderen Verläufen stapeln; die Seite zu Hintergrundbildern behandelt Ebenen, Größe und Position.

Häufige Fehler

  • background-color: linear-gradient(...). Ein Verlauf ist ein Bild: Nimm background-image oder background.
  • Grad in die falsche Richtung. 0deg zeigt nach oben, nicht nach rechts. 90deg geht nach rechts.
  • Ein Verlauf an einem Element ohne Höhe. Es ist nichts zu sehen; gib ihm Inhalt oder eine Größe.
  • Trübe Mittelfarben. Ein Übergang zwischen zwei gesättigten Gegenfarben wie Rot und Grün läuft in sRGB durch ein Graubraun. Füge einen mittleren Stopp hinzu oder mische in einem anderen Farbraum: linear-gradient(in oklch, red, green).
  • Streifenbildung bei großen, dezenten Verläufen. Sehr ähnliche Farben auf großer Fläche zeigen Stufen; etwas mehr Kontrast zwischen den Stopps hilft.

Häufig gestellte Fragen

Wie erstelle ich einen radialen Farbverlauf in CSS?

Nimm background-image: radial-gradient(#93c5fd, #1e3a8a);. Form und Position setzt du vor die Farben, etwa radial-gradient(circle at top left, #93c5fd, #1e3a8a).

Was ist der Unterschied zwischen circle und ellipse in radial-gradient?

ellipse (der Standard) passt sich den Proportionen der Box an, ist in einer breiten Box also breit. circle hält den Verlauf rund, egal welche Form die Box hat.

Wie lege ich die Richtung eines linearen Farbverlaufs fest?

Setz eine Richtung oder einen Winkel an den Anfang: linear-gradient(to right, red, blue) oder linear-gradient(45deg, red, blue). Standard ist to bottom (180deg); 0deg zeigt nach oben, und Winkel drehen im Uhrzeigersinn.

Wie mache ich harte Streifen statt eines weichen Übergangs?

Gib zwei Farben dieselbe Stoppposition: linear-gradient(90deg, #2563eb 50%, #f59e0b 50%) wechselt in der Mitte die Farbe, ohne Übergang. repeating-linear-gradient wiederholt ein Muster aus solchen Stopps.

Kann ich einen Farbverlauf als background-color verwenden?

Nein. Ein Farbverlauf ist ein Bild, gehört also in background-image oder die Kurzschreibweise background. background-color: linear-gradient(...) ist ungültig und wird ignoriert.

Coddy programming languages illustration

Lerne mit Coddy zu programmieren

LOS GEHT'S