CSS und Web

CSS conic-gradient: Farbkreise, Tortendiagramme und Glanz

conic-gradient() zieht Farbe um einen Punkt, wie der Zeiger einer Uhr. Aus dieser einen Idee entstehen Farbkreise, Torten- und Ringdiagramme, Metallglanz und Strahlenkränze.

GradientlyVerifiziertes Gradiently-Konto··4 Min. Lesezeit
Cover: Found Dynamo · GR·787F·7V

Die Kurzfassung

  • Ein CSS conic gradient ordnet Farben um einen Mittelpunkt an und läuft vom oberen Rand im Uhrzeigersinn, statt entlang einer Linie oder in Ringen nach außen.
  • Farbstopps in einem conic gradient nutzen Winkel oder Prozentwerte einer vollen Drehung, sodass 25 % und 90deg dieselbe Position meinen.
  • Harte Stopps machen aus einem conic gradient Segmente, der schnellste Weg, in CSS ein Tortendiagramm zu zeichnen.
  • Das Schlüsselwort from dreht, wo der Verlauf beginnt, und at verschiebt den Mittelpunkt.
  • repeating-conic-gradient() wiederholt seine Stopps um den Kreis und zeichnet zusammen mit background-size Schachbretter und Strahlenkränze.
Auf dieser Seite

Ein CSS conic gradient zieht Farbe um einen Mittelpunkt, so wie ein Uhrzeiger über sein Zifferblatt streicht. Während ein linearer Farbverlauf sich entlang einer Linie und ein radialer sich von der Mitte nach außen ändert, ändert sich conic-gradient() mit dem Winkel. Er beginnt oben, läuft im Uhrzeigersinn und lässt sich überall einsetzen, wo CSS ein Bild annimmt. Damit ist er das natürliche Werkzeug für Farbkreise, Tortendiagramme, Laderinge und die winkligen Glanzlichter von gebürstetem Metall.

Ein einfacher Farbkreisconic-gradient(#ef4444, #eab308, #22c55e, #06b6d4, #3b82f6, #a855f7, #ef4444)
Sieben Stopps, gleichmäßig über eine volle Drehung verteilt. Die Wiederholung der ersten Farbe am Ende schließt die Naht oben.

Wählst du für ein Design zwischen Verlaufsarten, statt die Syntax zu lernen, sind Arten von Farbverläufen und der Designleitfaden zu konischen Farbverläufen bessere Startpunkte.

Die Syntax von conic-gradient()

css
/*               start angle   centre        stops */
conic-gradient(from 90deg at 30% 50%, #0ea5e9, #6366f1, #0ea5e9)

/* stops as angles or as percentages of the turn */
conic-gradient(#f59e0b 0deg 90deg, #1e293b 90deg)
conic-gradient(#f59e0b 0% 25%, #1e293b 25%)
Alles vor dem ersten Komma ist optional. Beide Stopplisten in den letzten zwei Zeilen zeichnen dasselbe Viertelsegment.
TeilBeispielStandard
Startwinkelfrom 45degfrom 0deg, senkrecht nach oben
Mittelpunktat 30% 50%, at top leftat center
Interpolationin oklch, in hsl longer huesRGB bei Hex-Farben
Stoppposition90deg, 0.25turn, 25%gleichmäßig um die Drehung verteilt
Die Teile von conic-gradient(). Stoppositionen werden um den Kreis gemessen, nicht entlang einer Linie.

Winkel laufen im Uhrzeigersinn von oben: 90deg ist drei Uhr, 180deg ist sechs. Die vollständige Definition steht auf der MDN-Seite zu conic-gradient(). Die Browserunterstützung ist in aktuellen Versionen von Chrome, Edge, Safari und Firefox seit Jahren universell, Präfixe sind also nicht nötig.

Den Verlauf drehen und verschieben

from dreht den ganzen Verlauf, was praktisch ist, wenn die Naht zwischen erster und letzter Farbe sonst oben säße. at verschiebt den Mittelpunkt. Rückst du ihn in eine Ecke, wird aus dem Kreis ein Strahlenfächer, und liegt er ganz außerhalb der Box, entsteht eine sanfte, schräge Fläche, die nichts mehr mit einem Kreis zu tun hat.

Dieselbe Familie aus Indigo, Violett und Pink, gedreht und verschoben. In der Eckversion füllt eine Vierteldrehung die Box.

Torten- und Ringdiagramme in CSS

Gib jedem Segment einen Anfang und ein Ende und lass jedes dort beginnen, wo das letzte endete. 0 als zweite Stoppposition zu schreiben ist eine Abkürzung: Eine Position, die kleiner ist als die vorherige, wird auf diese begrenzt, sodass die neue Farbe genau dort beginnt, wo die letzte endete. Runde das Element mit border-radius: 50% ab und schneide mit einer radialen Maske ein Loch heraus, um die Torte zum Ring zu machen.

css
.pie {
  width: 12rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: conic-gradient(
    #6366f1 0 40%,   /* 40% */
    #22d3ee 0 65%,   /* 25% */
    #f59e0b 0 85%,   /* 20% */
    #e2e8f0 0        /* the rest, 15% */
  );
}

.donut {
  /* same background as .pie, then a hole */
  mask: radial-gradient(farthest-side, transparent 58%, #000 59%);
}
Eine Torte mit vier Segmenten und die eine Zeile, die sie zum Ring macht. Nutze benutzerdefinierte Eigenschaften für die Prozentwerte, wenn sich die Daten ändern.
Tortensegmente: 40, 25, 20 und 15 %conic-gradient(#6366f1 0 40%, #22d3ee 0 65%, #f59e0b 0 85%, #e2e8f0 0)
Der Hintergrund der Torte allein. Auf einem runden Element liest er sich als Diagramm.

Harte Kanten in conic gradients können entlang der Segmentlinien in manchen Browsern leicht gezackt aussehen. Stört dich das, lasse einen Bruchteil eines Grads zwischen den Stopps, etwa #6366f1 0 39.8%, #22d3ee 40.2% 65%, damit die Kante einen Hauch Übergang bekommt.

Farbkreise mit Farbton-Interpolation

Ein Farbkreis braucht meist sechs oder sieben Stopps. Mit Interpolationsmethoden kannst du den Browser bitten, den Farbtonkreis selbst zu durchlaufen. longer hue nimmt zwischen zwei Farbtönen den langen Weg, und sind beide Stopps dieselbe Farbe, ist der lange Weg der ganze Kreis, sodass zwei Rottöne ein volles Spektrum ergeben.

css
.wheel {
  border-radius: 50%;
  background: conic-gradient(in hsl longer hue, #ff0000, #ff0000);
}
Eine Farbe, zweimal, und dazwischen ein voller Regenbogen. OKLCH-Farbverläufe erklären kürzeren und längeren Farbton.

Metallglanz und Glanzlichter

Echtes gebürstetes Metall und polierte Scheiben fangen Licht in winkligen Bändern ein, genau das, was ein conic gradient zeichnet. Wechsle ein paar helle und dunkle Grautöne in ungleichem Abstand ab, und die Fläche wirkt wie Metall. Mit geringer Deckkraft über eine Farbe gelegt, verleiht derselbe Trick Buttons und Karten Glanz; ein durchgearbeitetes Beispiel siehe Farbverlauf-Buttons.

Ungleiche helle und dunkle Bänder um die Mitte wirken wie polierte Metalle.

Wiederholende conic gradients für Muster

repeating-conic-gradient() wiederholt seine Stoppliste um die Drehung. Kurze, hartkantige Stopps ergeben Strahlenkränze. Zusammen mit background-size lässt sich ein zweifarbiges Viertelmuster zu einem Schachbrett kacheln, ein Muster, das sich sonst mit Farbverläufen mühsam zeichnen lässt. Mehr in CSS-Muster.

Kurze harte Stopps, rundherum wiederholt.
css
.checkerboard {
  background: repeating-conic-gradient(#e2e8f0 0 25%, #ffffff 0 50%) 0 0 / 32px 32px;
}
Ein Schachbrett mit 16 Pixeln: das klassische Transparenzraster hinter Bildeditoren.

Häufige Fragen

Was ist ein conic gradient in CSS?

Es ist ein Farbverlauf, dessen Farben sich mit dem Winkel um einen Mittelpunkt ändern, oben beginnend und im Uhrzeigersinn laufend, geschrieben mit conic-gradient().

Wie mache ich ein Tortendiagramm mit CSS?

Nutze harte Stopps in einem conic gradient, etwa conic-gradient(#6366f1 0 40%, #22d3ee 0 65%, #e2e8f0 0), auf einem Element mit border-radius: 50%. Setze die Werte auch als Text für Screenreader.

Wie drehe ich einen conic gradient?

Füge from und einen Winkel als erstes Argument hinzu, zum Beispiel conic-gradient(from 90deg, ...). Der Verlauf beginnt dann bei drei Uhr statt oben.

Warum sind die Kanten meines conic gradient gezackt?

Harte Stopps haben keinen Übergang, und manche Browser zeichnen die Grenze ohne Glättung. Ein Bruchteil eines Grads zwischen benachbarten Stopps mildert das.

Funktionieren conic gradients in allen Browsern?

Ja, aktuelle Versionen von Chrome, Edge, Safari und Firefox unterstützen conic-gradient() und repeating-conic-gradient() ohne Präfixe.

Diesen Artikel teilen

Geschrieben von GradientlyVerifiziertes Gradiently-Konto

Das Team hinter Gradiently, einem Designtool rund um Marks: lebendige Farbverläufe, durch die alles, was du gestaltest, nach dir aussieht.

Unser Profil ansehen