Menu

Dégradé CSS : radial-gradient, linear-gradient et conic

Les dégradés CSS sont des images que le navigateur dessine à partir de couleurs. Découvrez radial-gradient (forme, taille, position), linear-gradient (direction et angles), conic-gradient, les arrêts de couleur, les arrêts nets pour les rayures, les dégradés répétés et le texte en dégradé.

Cette page contient des éditeurs exécutables - modifiez, exécutez et voyez la sortie instantanément.

Dégradés radiaux

radial-gradient() fond les couleurs vers l'extérieur à partir d'un point central. Comme tout dégradé CSS, c'est une image, qui va donc dans background-image (ou dans le raccourci background) :

La syntaxe complète est radial-gradient(shape size at position, color stops). Tout ce qui précède les couleurs est facultatif.

PartieValeursPar défaut
Formecircle, ellipseellipse
Tailleclosest-side, closest-corner, farthest-side, farthest-corner, ou des longueursfarthest-corner
Positionat center, at top left, at 30% 70%, at 20px 40pxat center
Arrêts de couleurDeux couleurs ou plus, chacune avec une position facultative

Le mot-clé de taille décide où la dernière couleur est atteinte : au côté le plus proche de la boîte, au coin le plus éloigné, et ainsi de suite. Changez les valeurs ici et regardez le dégradé se redessiner :

Essayez circle farthest-corner at 30% 50%, #f59e0b, #2563eb, ellipse at bottom, white, #16a34a et circle 40px, #f59e0b 99%, transparent (un point aux bords nets).

Dégradés linéaires

linear-gradient() fond les couleurs le long d'une ligne droite. Placez une direction ou un angle en premier, puis les couleurs :

Les angles partent de 0deg vers le haut et tournent dans le sens des aiguilles d'une montre, donc 90deg correspond à to right et 180deg à la valeur par défaut to bottom. to right reste physique sur les pages de droite à gauche ; inversez-le vous-même si le dégradé doit suivre le sens de lecture.

Arrêts de couleur et arrêts nets

Chaque couleur peut avoir une position. Sans positions, les couleurs sont réparties uniformément. Quand deux couleurs partagent une position, le changement est instantané : c'est ainsi que l'on dessine des rayures, des drapeaux et des barres de progression.

Un arrêt peut aussi prendre deux positions, #111827 12px 24px, ce qui dessine une bande unie de 12px à 24px.

Dégradés coniques

conic-gradient() fait tourner les couleurs autour d'un point central, comme les aiguilles d'une horloge. Avec des arrêts nets, il dessine un diagramme circulaire sans image ni JavaScript :

Un graphique dessiné en CSS est invisible pour les lecteurs d'écran, écrivez donc aussi les chiffres en texte.

Texte en dégradé

Découpez un fond en dégradé selon les lettres et rendez le texte lui-même transparent :

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

Pensez à une couleur color de secours : si le découpage échoue, le texte disparaît. Le texte en dégradé a aussi un contraste inégal, réservez-le donc aux grands titres.

Les dégradés s'empilent avec des images et d'autres dégradés dans une même liste background-image ; la page image de fond traite des couches, de la taille et de la position.

Erreurs courantes

  • background-color: linear-gradient(...). Un dégradé est une image : utilisez background-image ou background.
  • Des degrés dans le mauvais sens. 0deg pointe vers le haut, pas vers la droite. 90deg va vers la droite.
  • Un dégradé sur un élément sans hauteur. Rien ne s'affiche ; donnez-lui du contenu ou une taille.
  • Des couleurs intermédiaires ternes. Fondre deux couleurs saturées opposées, comme le rouge et le vert, passe par un gris-brun en sRGB. Ajoutez un arrêt intermédiaire, ou fondez dans un autre espace colorimétrique : linear-gradient(in oklch, red, green).
  • Des effets de paliers sur les grands dégradés subtils. Des couleurs très proches sur une grande surface laissent voir des marches ; un peu plus de contraste entre les arrêts aide.

Questions fréquentes

Comment faire un dégradé radial en CSS ?

Utilisez background-image: radial-gradient(#93c5fd, #1e3a8a);. Ajoutez une forme et une position avant les couleurs, par exemple radial-gradient(circle at top left, #93c5fd, #1e3a8a).

Quelle est la différence entre circle et ellipse dans radial-gradient ?

ellipse (par défaut) s'étire selon les proportions de la boîte, donc elle est large dans une boîte large. circle garde le dégradé rond, quelle que soit la forme de la boîte.

Comment définir la direction d'un dégradé linéaire ?

Placez une direction ou un angle en premier : linear-gradient(to right, red, blue) ou linear-gradient(45deg, red, blue). La valeur par défaut est to bottom (180deg) ; 0deg pointe vers le haut et les angles tournent dans le sens des aiguilles d'une montre.

Comment faire des rayures nettes au lieu d'un fondu ?

Donnez la même position d'arrêt à deux couleurs : linear-gradient(90deg, #2563eb 50%, #f59e0b 50%) change de couleur au milieu sans transition. repeating-linear-gradient répète un motif de ces arrêts.

Peut-on utiliser un dégradé dans background-color ?

Non. Un dégradé est une image, il va donc dans background-image ou dans le raccourci background. background-color: linear-gradient(...) est invalide et ignoré.

Coddy programming languages illustration

Apprendre à coder avec Coddy

COMMENCER