Color-mix() - Fonction CSS

color-mix()

Résumé des caractéristiques de la fonction color-mix()

Description rapide
Effectue le mélange de deux couleurs dans un espace de couleurs donné.
Statut
Standard
Pourcentages
Servent à doser les couleurs.
Type d'animation
[true]
Module W3C
Module CSS - Couleurs
Références (W3C)
Statut du document: WD (document de travail)

Schéma syntaxique de color-mix().

color-mix() - Syntax DiagramSyntax diagram of the color-mix() CSS function. in in srgb srgb srgb-linear srgb-linear display-p3 display-p3 a98-rgb a98-rgb prophoto-rgb prophoto-rgb rec2020 rec2020 lab lab hsl hsl hwb hwb lch lch oklch oklch cs cs longer hue longer hue shorter hue shorter hue increasing hue increasing hue decreasing hue decreasing hue , , c c , {2} , {2} p pcolor-mix()color-mix()
Schéma syntaxique de la fonction color-mix().
Description des valeurs.

Sur ce schéma, les termes en gras sont les termes prédéfinis en CSS. Voici la signification des autres mots :

  • c est le code d'une couleur.
  • p est un pourcentage.
  • cs est un espace de couleurs personnalisé.

Description de la fonction color-mix().

La fonction color-mix() mixe deux couleurs et renvoie le résultat dans un espace de couleurs donné. Elle facilite le travail des Web designers qui ont souvent besoin d'une palette de couleur cohérente.

Voici par exemple ce que donne le mélange de rouge et de bleu dans l'espace sRGB : du violet.

Bleu
Rouge
Mélange

 

Voici le travail de color-mix() dans un espace de couleurs polaire. color-mix() agit sur la teinte et sur la luminosité.

Color-mix() dans un espace de couleurs polaire

La valeur color-mix() peut être utilisée avec les propriétés suivantes :

  • accent-color : Définit la couleur des élément actifs, cochés.
  • background-color : Définit la couleur en arrière-plan.
  • border-color : Définit la couleur des bordures.
  • caret-color : Choisit la couleur du marqueur de texte (curseur clignotant).
  • color : Définit la couleur de l'avant plan (texte essentiellement).
  • column-rule-color : Définit la couleur des lignes de séparation de colonnes.
  • fill-color : Définit la couleur des remplissages en SVG.
  • flood-color : Définit la couleur des remplissages et des ombrages dans le contexte de filtres SVG.
  • lighting-color : Définit la couleur de l'éclairage dans le contexte d'un filtre SVG.
  • outline-color : Définit la couleur du contour (outline).
  • scrollbar-color : Définit deux couleurs qui seront utilisées pour les barres de défilement.
  • text-decoration-color : Définit la couleur du trait de décoration (souligné, rayure...).
  • text-emphasis-color : Définit la couleur des caractères de mise en exergue.

Syntaxes de la fonction color-mix().

  • [propriété]: color-mix(in srgb, blue, yellow); cs c1 c2

    Le mot in introduit le paramètre cs, qui est un espace de couleurs rectangulaire, à choisir parmi ceux que connaît CSS :

    • srgb
    • srgb-linear
    • display-p3
    • a98-rgb
    • prophoto-rgb
    • rec2020
    • lab

    c1 et c2 sont des couleurs, exprimées dans n'importe laquelle des syntaxes reconnues par CSS (voir les Les couleurs).

    Tous ces paramètres sont obligatoires.

  • [propriété]: color-mix(in hsl longer hue, blue, yellow); cs m c1 c2

    Ici, le mot in introduit un espace de couleurs polaire, à choisir parmi les suivants :

    • hsl
    • hwb
    • lch
    • oklch

    m est la méthode d'interpolation, à choisir parmi les suivants. Si ce paramètre est omis, il est pris égal à shorter hue.

    • shorter hue : la teinte du résultat est au milieu de la différence de teinte la plus courte entre c1 et c2.
    • longer hue : la teinte du résultat est au milieu de la différence de teinte la plus longue entre c1 et c2.
    • increasing hue : l'interpolation est faite dans le sens des teintes croissantes à partir de c1.
    • decreasing hue : l'interpolation est faite dans le sens des teintes décroissantes à partir de c1.
    Interpolation suivant shorter hue
    shorter hue
    Interpolation suivant longer hue
    longer hue
    Interpolation suivant increasing hue
    increasing hue
    Interpolation suivant decreasing hue
    decreasing hue
  • [propriété]: color-mix(in cs, blue, yellow); cs c1 c2

    cs est un espace de couleurs personnalisé. Reportez-vous à la page sur @color-profile pour définir un espace de couleurs personnalisé.

  • [propriété]: color-mix(in srgb, blue 40%, yellow 60%); cs c1 p1 c2 p2

    p1 et p2 sont des pourcentages optionnels. Les pourcentages peuvent être ajoutés avec n'importe laquelle des syntaxes vues plus haut. S'ils sont omis (comme dans les syntaxes précédentes), ils sont fixés chacun à 50%.

    • Si un des pourcentages est négatif il invalide l'expression complète.
    • Si p1 est omis, il vaut 100% - p2, et vice versa.
    • Si les deux pourcentages sont omis, ils prennent la valeur 50% : mélange des couleurs à part égales.
    • Si p1 + p2 est supérieur à 100%, ils sont réduits jusqu'à ce que leur somme donne 100%.
    • Si la somme de p1 et de p2 est inférieur à 100%, cette somme est considéré comme le paramètre alpha de la couleur résultante (son opacité). Les deux pourcentages sont ensuite augmenté jusqu'à ce leur somme fasse 100%.

Exemples d'utilisation de la fonction color-mix().

Il est facile de faire un mélangeur de couleurs avec la fonction color-mix(). Celui-ci vous permet de choisir les deux couleurs à mélanger, et de doser le pourcentage attribué à chacune des couleurs. La somme des deux pourcentages fait toujours 100 : vous ne pourrez pas obtenir de couleur semi-transparente.

Animation avec la fonction color-mix().

La fonction color-mix() peut bien sûr être animée. Voici par exemple un passage du rouge au bleu dans l'espace de couleur lab.

Simulateur avec la fonction color-mix()

background-color :

Support de la fonction color-mix().

Bien que définie récemment, la fonction color-mix() est bien reconnue par tous les grands navigateurs actuels.

Colonne 1
Support de la fonction color-mix() pour mélanger deux couleurs dans un espace de couleurs donné.
1
Fonction
color-mix()
Estimation de la prise en charge globale.
91%

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Internet Explorer

UC Browser pour Androïd

Opéra Mobile

QQ Browser

Baidu Browser

Samsung Internet

Safari

Opéra

Safari sur IOS

Firefox pour Androïd

Chrome

Firefox

Edge

Chrome pour Androïd

Androïd Brower

KaiOS Browser

Opéra mini

Historique de la fonction color-mix().

Voir aussi, au sujet des couleurs.

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

Propriétés :

color
Définit la couleur de l'avant plan (texte essentiellement).
opacity
Définit l'opacité (inverse de la transparence) d'un élément et de ses descendants.

Fonctions :

color()
Définit une couleur dans un espace de couleurs autre que sRGB.
device-cmyk()
Définit une couleur en fonction d'un périphérique, en spécifiant les valeurs cyan, magenta, jaune et noir.
hsl()
Détermine une couleur à partir des paramètres Teinte (Hue), Saturation et Luminosité, une alternative plus proche de notre mode de raisonnement.
hsla()
Détermine une couleur et sa transparence à partir des paramètres Teinte (Hue), Saturation, Luminosité et Alpha.
hwb()
Définit une couleur à partir de sa teinte et d'une dose de noir et de blanc.
lab()
Définit une couleur dans le système L*a*b*.
lch()
Définit une couleur dans le système L*C*H*.
oklab()
Définit une couleur dans le système L*a*b* avec une correction perceptive.
oklch()
Définit une couleur dans le système L*C*H* avec une correction perceptive.
rgb()
Détermine une couleur à partir des valeurs de Rouge, de Vert et de Bleu.
rgba()
Détermine une couleur et sa transparence à partir des valeurs de Rouge, de Vert, de Bleu et de la valeur Alpha.

Directives :

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

Descripteurs :

components
Utilisable avec la directive @color-profile.
rendering-intent
Descripteur utilisable avec la directive @color-profile. Définit la méthode de conversion d'un profil colorimétrique à un autre.