CSS et web

Dégradé conique CSS : cercles, camemberts et reflets

conic-gradient() balaie la couleur autour d’un point comme l’aiguille d’une horloge. Cette seule idée dessine cercles chromatiques, camemberts, anneaux, reflets métalliques et éclats.

GradientlyCompte Gradiently vérifié··5 min de lecture
Couverture : Found Dynamo · GR·787F·7V

L’essentiel en bref

  • Un dégradé conique CSS place les couleurs autour d’un point central, en balayant dans le sens horaire depuis le haut, au lieu de suivre une ligne ou de s’étendre en anneaux.
  • Les arrêts de couleur d’un dégradé conique utilisent des angles ou des pourcentages d’un tour complet : 25 % et 90deg désignent la même position.
  • Les arrêts nets transforment un dégradé conique en parts, ce qui est la façon la plus rapide de dessiner un camembert en CSS.
  • Le mot-clé from fait tourner le départ du balayage, et at déplace le point central.
  • repeating-conic-gradient() répète ses arrêts autour du cercle et, combiné à background-size, dessine des damiers et des éclats.
Sur cette page

Un dégradé conique CSS balaie la couleur autour d’un point central, comme l’aiguille d’une horloge parcourt son cadran. Là où un dégradé linéaire change le long d’une ligne et un dégradé radial en s’éloignant du centre, conic-gradient() change avec l’angle. Il part du haut, tourne dans le sens horaire et s’utilise partout où le CSS accepte une image. C’est l’outil naturel des cercles chromatiques, des camemberts, des anneaux de chargement et des reflets angulaires du métal brossé.

Un cercle chromatique simpleconic-gradient(#ef4444, #eab308, #22c55e, #06b6d4, #3b82f6, #a855f7, #ef4444)
Sept arrêts répartis régulièrement sur un tour complet. Répéter la première couleur à la fin ferme la couture en haut.

Si vous choisissez un type de dégradé pour un design plutôt que d’apprendre la syntaxe, les types de dégradés et le guide de design des dégradés coniques sont de meilleurs points de départ.

La syntaxe de 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%)
Tout ce qui précède la première virgule est facultatif. Les deux listes d’arrêts des deux dernières lignes dessinent la même part d’un quart.
ÉlémentExemplePar défaut
Angle de départfrom 45degfrom 0deg, tout droit vers le haut
Centreat 30% 50%, at top leftat center
Interpolationin oklch, in hsl longer huesRGB pour les couleurs hex
Position d’un arrêt90deg, 0.25turn, 25%répartis régulièrement sur le tour
Les éléments de conic-gradient(). Les positions des arrêts se mesurent autour du cercle, pas le long d’une ligne.

Les angles tournent dans le sens horaire depuis le haut : 90deg est trois heures, 180deg six heures. La définition complète est sur la page MDN de conic-gradient(). La prise en charge est universelle dans les versions actuelles de Chrome, Edge, Safari et Firefox depuis des années : aucun préfixe n’est nécessaire.

Faire tourner et déplacer le balayage

from fait tourner tout le dégradé, pratique quand la couture entre la première et la dernière couleur tomberait sinon en haut. at déplace le centre. Le placer dans un coin transforme le cercle en éventail de rayons, et le sortir tout à fait de la boîte donne un léger lavis incliné qui ne ressemble plus du tout à un cercle.

La même famille indigo, violet et rose, tournée et déplacée. Dans la version en coin, un quart de tour remplit la boîte.

Camemberts et anneaux en CSS

Donnez à chaque part un début et une fin, et faites démarrer chacune là où la précédente s’est arrêtée. Écrire 0 comme seconde position d’arrêt est un raccourci : une position inférieure à la précédente est ramenée à elle, donc la nouvelle couleur commence exactement là où la dernière finit. Arrondissez l’élément avec border-radius: 50% et percez un trou avec un masque radial pour transformer le camembert en anneau.

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%);
}
Un camembert à quatre parts, et la ligne qui le transforme en anneau. Utilisez des propriétés personnalisées pour les pourcentages si les données changent.
Parts du camembert : 40, 25, 20 et 15 %conic-gradient(#6366f1 0 40%, #22d3ee 0 65%, #f59e0b 0 85%, #e2e8f0 0)
L’arrière-plan du camembert seul. Sur un élément rond, il se lit comme un graphique.

Les bords nets d’un dégradé conique peuvent paraître légèrement dentelés le long des lignes de parts dans certains navigateurs. Si cela vous gêne, laissez une fraction de degré entre les arrêts, comme #6366f1 0 39.8%, #22d3ee 40.2% 65%, pour que le bord ait un soupçon de fondu.

Cercles chromatiques avec interpolation de teinte

Un cercle chromatique demande en général six ou sept arrêts. Avec les méthodes d’interpolation, vous pouvez demander au navigateur de parcourir lui-même le cercle des teintes. longer hue prend le long chemin entre deux teintes, et quand les deux arrêts ont la même couleur, le long chemin est le cercle entier : deux rouges donnent donc un spectre complet.

css
.wheel {
  border-radius: 50%;
  background: conic-gradient(in hsl longer hue, #ff0000, #ff0000);
}
Une couleur, deux fois, et un arc-en-ciel complet entre les deux. Les dégradés OKLCH expliquent shorter et longer hue.

Reflets métalliques et éclats

Le vrai métal brossé et les disques polis captent la lumière en bandes angulaires, exactement ce que dessine un dégradé conique. Alternez quelques gris clairs et sombres, à l’espacement irrégulier, et la surface se lit comme du métal. Superposée à faible opacité sur une couleur, la même astuce ajoute un reflet aux boutons et aux cartes ; voyez les boutons dégradés pour un exemple travaillé.

Des bandes claires et sombres irrégulières balayées autour du centre se lisent comme du métal poli.

Dégradés coniques répétés pour les motifs

repeating-conic-gradient() répète sa liste d’arrêts autour du tour. De courts arrêts nets donnent des éclats. Associé à background-size, un motif de quarts bicolores se répète en damier, un motif autrement pénible à dessiner avec des dégradés. Plus de détails dans les motifs CSS.

De courts arrêts nets répétés tout autour.
css
.checkerboard {
  background: repeating-conic-gradient(#e2e8f0 0 25%, #ffffff 0 50%) 0 0 / 32px 32px;
}
Un damier de 16 pixels : la grille de transparence classique derrière les éditeurs d’images.

Les questions qu’on nous pose

Qu’est-ce qu’un dégradé conique en CSS ?

C’est un dégradé dont les couleurs changent avec l’angle autour d’un point central, en partant du haut et en tournant dans le sens horaire, écrit avec conic-gradient().

Comment faire un camembert en CSS ?

Utilisez des arrêts nets dans un dégradé conique, comme conic-gradient(#6366f1 0 40%, #22d3ee 0 65%, #e2e8f0 0), sur un élément avec border-radius: 50%. Mettez aussi les valeurs en texte pour les lecteurs d’écran.

Comment faire pivoter un dégradé conique ?

Ajoutez from et un angle comme premier argument, par exemple conic-gradient(from 90deg, ...). Le balayage part alors de trois heures au lieu du haut.

Pourquoi les bords de mon dégradé conique sont-ils dentelés ?

Les arrêts nets n’ont aucun fondu, et certains navigateurs tracent la frontière sans lissage. Laisser une fraction de degré entre arrêts voisins l’adoucit.

Les dégradés coniques fonctionnent-ils dans tous les navigateurs ?

Oui, les versions actuelles de Chrome, Edge, Safari et Firefox prennent en charge conic-gradient() et repeating-conic-gradient() sans préfixe.

Partager ce guide

Écrit par GradientlyCompte Gradiently vérifié

L’équipe derrière Gradiently, un outil de création construit autour des Marks : des dégradés vivants qui donnent à tout ce que vous créez votre propre signature.

Voir notre profil
Tous les guides : CSS et web