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 :

Color - Propriété CSS

color

Résumé des caractéristiques de la propriété color

Description rapide
Définit la couleur de l'avant plan (texte essentiellement).
Statut
Standard
Utilisable sur
HTML, SVG (1)
Valeurs prédéfinies
currentcolor | transparent
Pourcentages
Ne s'appliquent pas.
Valeur initiale
currentcolor
Héritée par défaut
Oui.
Type d'animation
Computed value : lors d'une animation, la propriété color passe progressivement d'une valeur à une autre.
Module W3C
Module CSS - Couleurs
Références (W3C)
 🡇  
 🡅  
Statut du document: WD (document de travail)

Statut du document: WD (document de travail)

Statut du document: REC (recommandation)

Statut du document: REC (recommandation)

Statut du document: DEPR (Ancienne spécification, déclarée obsolète)

(1) En SVG la propriété color définit la valeur de currentColor, mais la couleur est appliquée par les propriétés ou les attributs stroke, fill, stroke-color ou fill-color.

Schéma syntaxique de color.

Color property - Syntax diagramSyntax diagram of the color CSS property. See stylescss.free.fr for details. currentcolor currentcolor transparent transparent #xxxxxx #xxxxxx name name color colorcolor:;color:;
Schéma syntaxique de la propriété color
Les liens du schéma donnent accès à plus de détails

Sur le schéma, les termes en gras sont les mots prédéfinis de CSS, les autres termes sont décrits ci-dessous :

  • #xxxxxx est le code hexadécimal d'une couleur (3, 6 ou 8 digits).
  • name est le nom standardisé d'une couleur. Voir les couleurs nomées.
  • color est une couleur décrite avec l'une des fonctions : Object.

Description de la propriété color.

color définit la couleur du texte et des décorations éventuelles (souligné, bordures, etc.). Elle définit aussi la valeur currentColor qui pourra servir pour initialiser d'autres propriétés. Notez que les décorations peuvent avoir reçu une couleur différente par leur propriété respective.

Les couleurs définies par la propriété color sont par défaut opaques, mais il est tout à fait possible de préciser un degré de transparence en utilisant un code hexadécimal à 8 digits ou l'une des fonction rgba(), hsla(), hwba(), etc.

CSS utilise par défaut l'espace de couleurs sRGB, qui est peu étendu mais présente l'avantage d'être reconnu par tous les périphériques (écrans, imprimantes...). Il est possible cependant de travailler dans un autre espace de couleurs grâce à la directive @color-profile.

Syntaxes pour color.

  • color: currentcolor;

    currentcolor est la valeur par défaut, celle qui, sans indication contraire, est utilisée pour afficher le texte, les bordures, etc. Utiliser cette valeur avec color n'est utile que pour annuler un précédent changement de couleur.

  • color: #807418;

    Le caractère dièse ( # ) permet de spécifier une couleur par son code hexadécimal. Celui-ci peut être sur 3 ou 6 digits, ou même 8 s'il est nécessaire d'indiquer une opacité différente de 1.

  • color: lavender;

    De très nombreuses couleurs ont reçu un nom standardisé. Celui-ci doit être inscrit sans guillemets ni apostrophes.
    Pour avoir la liste des noms de couleurs, consultez les couleurs nomées de ce site

  • color: hsl(223deg 52% 30%);

    La couleur peut également être spécifiée avec l'une des nombreuses fonctions reconnues par CSS : rgb(), hsl(), hwb(), lab(), lch(), color().

  • color: color(mon-profil 0.3104 0.7421 0.2814);

    Cette notation, utilisant la fonction color(), permet de spécifier une couleur dans un autre espace de couleurs que celui par défaut, qui est sRGB.

    Le profil, ici dénommé mon-profil, peut être un profil colorimétrique prédéfini, ou un profil personnalisé, défini avec la directive @color-profile.

    Attention ! la fonction color() présente encore des problèmes de compatibilité avec certains navigateurs (2023).

Valeurs communes :

color: initial (currentcolor) color: inherit color: revert color: revertLayer color: unset

Ces valeurs sont décrites plus en détail sur leur page respective : initial, inherit, revert, revert-layer, unset.

Exemples.

Voici plusieurs syntaxes définissant toutes la couleur du texte à bleue. Dans les deux derniers exemples, on a précisé une semi-transparence.

color:blue;
La couleur est désignée par son nom. Près de 150 couleurs ont reçu un nom standardisé. Ces noms sont maintenant reconnus par tous les navigateurs
color:#0000ff.
La couleur est ici désignée par son code hexadécimal sur 6 digits (2 pour le rouge, 2 pour le vert et 2 pour le bleu. Cette notation donne accès aux 16 millions de couleurs disponibles.
color:rgb(0,0,255);
Pour ceux qui ont l'hexadécimal en horreur, la fonction rgb() désigne une couleur à partir de 3 valeurs décimales (de 0 à 255).
color:#0000ff80;
Un code hexadécimal sur 8 digits permets d'introduire la notion de transparence partielle de la couleur. Les deux derniers digits indique cette transparence :
00 pour une couleur entièrement transparente (les autres digits sont donc sans importance).
FF pour une couleur totalement opaque.
Toute valeur entre ces deux extrêmes indique une couleur partiellement transparente.
color:rgba(0,0,255,0.5);
La transparence de la couleur peut être spécifiée avec la fonction rgba(), le dernier paramètre étant un nombre compris entre 0 (transparence totale) et 1 (opacité totale).

Animation sur les couleurs.

Dans la mesure ou chaque couleur est associée à un code numérique, l'animation des couleurs est possible. Dans le cas où une couleur est définie par son nom, l'animation se fait d'après le code numérique correspondant.

Animation d'une couleur nommée à une autre

Animation sur la luminosité de la couleur

Animation de la teinte

 

Il y a une petite subtilité dans le troisième exemple. On souhaite que l'animation parcourt toutes les couleurs de 0deg à 360deg (notation HSL), c'est à dire que toute la roue des couleurs soit parcourue dans le sens horaire. Cependant si on ne précise que la valeur de départ et la valeur finale, le système va au plus court en tourant dans le sens anti-horaire.
La solution est de décomposer l'animation en étapes pour forcer le navigateur à employer le chemin souhaité.

Animation d'une teinte
Ce que l'on veut faire
Animation d'une teinte
Ce que risque de faire le navigateur
Animation d'une teinte
Ce qu'il faut faire

Manipulation de la propriété color par programme.

Modifier la valeur de la propriété color avec Javascript.

Voici comment modifier avec Javascript la valeur de color pour un élément identifié par son id.
Deux syntaxes sont possibles.

Javascript
let el = document.getElementById('id'); el.style['color'] = '#ff485080'; let el = document.getElementById('id'); el.style.color = '#ff485080';

Lire avec Javascript la valeur de la propriété color.

Pour que ce code fonctionne, la propriété doit être affectée directement à l'élément lui-même et pas à une classe. La couleur est renvoyée sous son nom s'il s'agit d'une couleur nommée, ou sous la forme rgb(r,g,b) ou rgba(r,g,b,a) si elle a été définie autrement que par son nom (code hexadécimal, notation HSL, etc...).

Javascript
let el = document.getElementById('id'); let value = el.style['color']; let el = document.getElementById('id'); let value = el.style.color;

Lire la valeur calculée de color.

Voici comment lire avec Javascript la valeur calculée de color. Quelque soit la syntaxe utilisée pour la définir, la couleur est retournée sous la forme rgb(r,g,b), ou rgba(r,g,b,a) si l'opacité n'est pas totale.

Javascript
let el = document.getElementById('id'); let value = window.getComputedStyle(el).getPropertyValue('color');

Utiliser JQuery pour interagir avec la propriété color.

Voici les codes JQuery pour modifier la valeur de la propriété color ou relire la valeur calculée de cette propriété. Comme en Javascript, la couleur est retournée sous la forme rgb(r,g,b) si la couleur est totalement opaque, ou rgba(r,g,b,a) si la couleur a un peu de transparence.

JQuery
$('#id').css('color', '#ff485080');
JQuery
let value = $('#id').css('color');

Testez vous-même.

Le bouton Test ci-dessous applique la couleur que vous avez saisie, et relit la valeur calculée qui en résulte.

Simulateur.

color :
Résultat

Compatibilité des navigateurs.

La propriété color ne pose aucun problème de compatibilité avec les navigateurs actuels.

1
Propriété
color
Estimation de la prise en charge globale.
99%

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Androïd Brower

Baidu Browser

Chrome

Chrome pour Androïd

Edge

Firefox

Firefox pour Androïd

Internet Explorer

KaiOS Browser

Opéra

Opéra Mobile

QQ Browser

Safari

Safari sur IOS

Samsung Internet

UC Browser pour Androïd

Opéra mini

Historique de color et de la gestion des couleurs en général.

  • CSS 1 - Spécification concernant les feuilles de styles en cascade - Version 1

    Définition initiale de la propriété color, acceptant la notation rgb(), les codes hexadécimaux et 16 couleurs nommées : aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white, yellow.
    WD
    17 Novembre 1995
    Document de travail.
    PR
    12 Novembre 1996
    Proposé à la recommandation.
    REC
    17 Décembre 1996
    Recommandation.
    DEPR
    13 Septembre 2018
    Ancienne spécification, déclarée obsolète.
  • CSS 2.1 - Spécification concernant les feuilles de styles en cascade - Révision 1

    Ajout de la couleur nommée orange.
    La propriété color accepte la valeur inherit.
    WD
    04 Novembre 1997
    Document de travail.
    PR
    24 Mars 1998
    Proposé à la recommandation.
    REC
    11 Mai 1998
    Recommandation.
  • Module CSS - Couleurs - Niveau 3

    Ajout des couleurs transparent et currentcolor.
    Prise en charge de la notation HSL.
    Ajout de nouvelles couleurs nommées.
    WD
    23 Juin 1999
    Document de travail.
    CR
    14 Mai 2003
    Candidat à la recommandation.
    PR
    28 Octobre 2010
    Proposé à la recommandation.
    REC
    07 Juin 2011
    Recommandation.
  • Module CSS - Couleurs - Niveau 4

    Ajout de nouvelles notations pour spécifier une couleur : hwb(), hwba(), lab(), lch(), oklab(), oklch(), color().
    WD
    05 Juillet 2016
    Document de travail.
    CR
    05 Juillet 2022
    Candidat à la recommandation.
    PR
    REC
  • Module CSS - Couleurs - Niveau 5

    Pas de modifications concernant directement la propriété color, mais des modifications concernant la gestion des couleurs, comme les espaces colorimétriques en particulier.
    WD
    03 Mars 2020
    Document de travail.
    CR
    PR
    REC

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éfinit une couleur en fonction d'un périphérique, en spécifiant les valeurs cyan, magenta, jaune et noir.
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().