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.
| Partie | Valeurs | Par défaut |
|---|---|---|
| Forme | circle, ellipse | ellipse |
| Taille | closest-side, closest-corner, farthest-side, farthest-corner, ou des longueurs | farthest-corner |
| Position | at center, at top left, at 30% 70%, at 20px 40px | at center |
| Arrêts de couleur | Deux 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 : utilisezbackground-imageoubackground.- Des degrés dans le mauvais sens. 0deg pointe vers le haut, pas vers la droite.
90degva 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é.