Une remarque ? Une suggestion ?...

Merci de participer à l'amélioration de ce site. Prenez le temps de rédiger votre remarque le plus précisément possible :

Les couleurs en CSS

Généralités.

Les couleurs CSS sont les mêmes que celles de HTML mais la syntaxe pour désigner une couleur est plus diversifiée : CSS reconnaît en effet les codes hexadécimaux, la décomposition RGB, la décomposition HSL et surtout les couleurs nommées.

Espace de couleurs (ou espace colorimétrique).

CSS utilise par défaut l'espace sRGB qui est le plus facile à restituer, même sur du matériel ancien. Il est cependant possible de choisir un autre espace de couleurs avec la directive @color-profile.
Reportez vous aux pages suivantes pour en savoir plus sur les espaces colorimétriques :

Codification des couleurs.

Notation hexadécimale.

Dans le système RGB les couleurs sont définies par trois paramètres qui sont la quantité de rouge, de vert, et de bleu. Un quatrième paramètre peut être ajouté si on souhaite spécifier une opacité partielle de la couleur. Chacune de ces valeurs peut être traduite par un nombre en hexadécimal compris entre 00 et ff, autrement dit entre 0 et 255 en décimal classique.

  • #rrggbb

    Le code hexadécimal de la couleur est ici écrit sur 6 digits, précédé d'un dièse ( # ). Les deux premiers digits (rr) représentent la valeur de rouge,* les deux suivants le vert (gg) et les deux derniers le bleu (bb).
    Ces trois valeurs peuvent évoluer de 00 à ff. Cette notation hexadécimale est parfaitement reconnue par tous les navigateurs. Malheureusement, les codes ne sont pas très faciles à lire. Pour vous faciliter la tâche, vous pouvez vous reporter au nuancier ci-dessous, ou à notre outil Object.

  • #rgb

    Le code hexadécimal de la couleur peut être écrit sur 3 digits seulement, toujours précédé d'un dièse ( # ). Cette notation est une version simplifiée de la précédente, qui offre cependant moins de nuances de couleurs puisqu'on attribue un seul digit à chacune des couleurs.
    #f00 est équivalent à #ff0000.
    #0a0 est équivalent à #00aa00.

  • #rrggbbαα

    Le code hexadécimal de la couleur est écrit sur 8 digits. Les deux derniers digits (αα) traduisent l'opacité de la couleur, 00 correspondant à une couleur totalement transparente (donc invisible) et ff à une couleur totalement opaque.
    #ff0000ff est du rouge totalement opaque (non transparent).
    #0000ff80 est du bleu semi-transparent.

  • #rgbα

    Variante de la notation précédente mais en n'affectant qu'un seul digit à chacune des composantes.
    0f0f est un vert totalement opaque.
    00f8 est un bleu semi-transparent.

Couleurs nommées.

De très nombreuses couleurs (environ 140) ont reçu un nom, qui est maintenant reconnu par tous les navigateurs. Utiliser ces noms améliore la lisibilité des codes. En effet lavender est plus parlant que #e6e6fa.

  • currentcolor

    currentcolor désigne la couleur courante, celle du texte et es accessoires de décoration comme les bordures, les traits de soulignement, etc.
    Cette valeur peut être utile pour définir la couleur d'autre chose que le texte (par exemple une bordure) lorsque cette dernière a été modifiée au préalable et que l'on souhaite revenir à la même couleur que le texte.

  • transparent

    La couleur totalement transparente, donc invisible. transparent est equivalent à #0000, autrement dit à du noir totalement transparent.

  • lightblue

    Le nom d'une couleur. Il y a 132 noms de couleurs normalisés par le W3C (voir le nuancier ci-dessous). Le nom ne doit pas être entre guillemets, ni entre apostrophes ; il n'est pas sensible à la casse. Ces noms sont maintenant reconnus par tous les navigateurs.

Fonctions de couleur.

CSS reconnaît de très nombreuses fonctions permettant de spécifier une couleur dans un système colorimétrique donnée.

  • rgb(r,g,b) rgba(r,g,b,a) hsl(h,s,l) hsla(h,s,l,a) hwb(h,w,b) hwba(h,w,b,a) lab(l,a,b) lch(l,c,h) oklab(l,a,b) oklch(l,c,h) color()

    Toutes ces fonctions définissent une couleur à partir de 3 composantes, et éventuellement, d'un quatrième qui est l'opacité, mais chacune dans un référentiel différent. N'hésitez pas à cliquer sur les liens pour avoir plus de précisions sur la syntaxe de ces fonctions.

    • rgb() et rgba() utilisent le référentiel bien connu en informatique : rouge, vert, bleu. Les trois paramètres correspondent aux dosages des couleurs de base rouge, vert et bleu.
    • hsl() et hsla() permettent de spécifier une couleur dans le référentiel HSL : teinte (Hue), Luminosité, Saturation.
    • hwb() et hwba(), encore peu connues, construisent une couleur à partir d'une teinte, et en ajoutant une dose de blanc (w) et de noir (b).
    • lab(), lch(), oklab() et oklch() travaillent dans les systèmes L*a*b* et L*C*H* .
    • color() permet de définir une couleur dans un espace de couleurs différent du sRGB. Pour davantage de précisions, reportez-vous au tutoriel sur les espaces de couleurs.
  • ...from...

    La plupart des fonctions citées ci-dessus acceptent de calculer une couleur par rapport à une couleur de référence. Tout au moins, cette possibilité est prévue dans la spécification, il n'en est pas toujours de même sur les navigateurs actuels.

    Par exemple, la syntaxe ci-dessous demande une couleur identique à mediumBlue mais avec 10% de luminosité en plus.

    hsl(from mediumBlue h s calc(l * 1.1))

Nuancier : toutes les couleurs nommées.

Ces noms de couleur sont maintenant standardisés : tous les navigateurs devraient les reconnaître.

Trier les couleurs par :

 

Remarques et anecdotes.

  • La couleur rebeccaPurple a été nommée ainsi en hommage à la fille de Eric Meyer, décédée à 6 ans d'une tumeur au cerveau. Eric Meyer, peu connu du grand public, est un consultant américain qui a beaucoup fait pour la mise en place de normes sur Internet, et particulièrement pour le CSS.
  • Remarque : plusieurs appellations existent parfois pour une même couleur :

    Fuchsia / Magenta
    Gray / Grey
    Et tous les dérivés
    Aqua / Cyan
  • Le nom de couleur transparent correspond au code hexadécimal 00000000, autrement dit il s'agit d'un noir transparent. Pourquoi du noir ? Cela n'a que peu d'importance car, dans le cas d'une couleur totalement transparente, les 6 premiers digits du code n'ont pas d'effet.

Noms obsolètes ou mal reconnus.

#D19275
Feldspar
#8470FF
LightSlateBlue

Couleurs système.

Ces noms de couleurs étaient initialement disponibles pour faciliter l'intégration d'une page dans la charte du système d'exploitation. Cette fonctionnalité est maintenant déclarée obsolète : évitez de l'utiliser.

ActiveBorder
ActiveCaption
AppWorkspace
Background
ButtonFace
ButtonHighlight
ButtonShadow
ButtonText
CaptionText
GrayText
Highlight
HighlightText
InactiveBorder
InactiveCaption
InactiveCaptionText
InfoBackground
InfoText
Menu
MenuText
Scrollbar
ThreeDDarkShadow
ThreeDFace
ThreeDHighlight
ThreeDLightShadow
ThreedShadow
Window
WindowFrame
WindowText

Voir aussi, dans le même module de standardisation que color.

Les spécifications CSS éditées par le W3C sont organisées en modules. color fait partie du Module CSS - Couleurs (CSS Color Module). Les définitions suivantes sont également décrites dans ce même module.

Propriétés.

Opacité (ou transparence).

Fonctions.

Définit une couleur dans un espace de couleurs autre que sRGB.
Détermine une couleur à partir des paramètres Teinte (Hue), Saturation et Luminosité.
Détermine une couleur et sa transparence à partir des paramètres Teinte (Hue), Saturation, Luminosité et Alpha.
Définit une couleur à partir de sa teinte et d'une dose de noir et de blanc.
Définit une couleur dans le système L*a*b*.
Définit une couleur dans le système L*C*H*.
Définit une couleur dans le système L*a*b* avec une correction perceptive.
Définit une couleur dans le système L*C*H* avec une correction perceptive.
Détermine une couleur à partir des valeurs de Rouge, de Vert et de Bleu.
Détermine une couleur et sa transparence à partir des valeurs de Rouge, de Vert, de Bleu et de la valeur Alpha.

Directives.

Spécifie un profil colorimétrique qui pourra ensuite être utilisé par la fonction color().