Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Fonction CSS alpha()

La fonction CSS alpha() prend une couleur (color) d'origine et retourne cette même couleur avec un canal alpha (transparence) modifié. Les composants de couleur de la couleur d'origine sont conservés inchangés. Le résultat est dans le même espace colorimétrique que la couleur d'origine.

Syntaxe

css
/* Remplace alpha par une valeur fixe */
alpha(from red / 50%)
alpha(from var(--my-color) / 80%)

/* Dérive alpha par rapport à l'alpha de la couleur d'origine */
alpha(from var(--my-color) / calc(alpha * 0.5))

Paramètres

from <color>

La syntaxe de la couleur relative consiste en le mot-clé from suivi de n'importe quelle valeur <color> valide, définissant la couleur d'origine. Les composants de couleur de la couleur d'origine sont conservés inchangés dans le résultat ; seul le canal alpha est affecté.

/ <alpha-value> Facultatif

Une valeur <alpha-value> définissant le niveau alpha de la couleur de sortie. Il peut s'agir d'un nombre (<number>) compris entre 0 et 1, d'un <percentage> compris entre 0% et 100%, ou d'une expression calc(). Dans cette valeur, le mot-clé alpha peut être utilisé pour faire référence au canal alpha de la couleur d'origine en tant que <number> (où 1.0 équivaut à 100%). Si cet argument est omis, l'alpha de la couleur d'origine est utilisé tel quel.

Valeur de retour

Une valeur de couleur dans le même espace colorimétrique que la couleur d'origine, avec des composants de couleur identiques et une valeur de canal alpha modifiée comme défini.

Description

La fonction alpha() est une fonction de couleur relative qui permet d'ajuster la transparence de n'importe quelle couleur sans réécrire ses autres composants. Cela est particulièrement utile lorsque vous avez besoin d'une variante semi-transparente d'un jeton de conception ou d'une couleur de propriété personnalisée, et que vous souhaitez la dériver automatiquement de l'original plutôt que de maintenir une valeur distincte.

Dans l'argument de la valeur alpha, le mot-clé de composant alpha correspond au canal alpha de la couleur d'origine en tant que nombre (<number>) dans la plage [0, 1]. Cela vous permet d'exprimer l'alpha de sortie par rapport à l'entrée, par exemple en le divisant par deux avec calc(alpha * 0.5), ou en le limitant avec clamp(0.2, alpha, 0.8).

Contrairement à la syntaxe générale des couleurs relatives (par ex., oklch(from ...)), la fonction alpha() n'expose pas les mots-clés des canaux de couleur individuels de l'espace colorimétrique de la couleur d'origine. Elle ne s'occupe que du canal alpha, en conservant le reste de la couleur intact.

La valeur de retour est toujours dans le même espace colorimétrique que la couleur d'origine. Par exemple, si la couleur d'origine est une couleur oklch(), le résultat est également résolu en OKLCh, avec la même luminosité, chroma et teinte.

Exemples

Remplacer l'alpha d'une couleur

Dans cet exemple, nous définissons deux couleurs. La deuxième couleur est définie en passant la première couleur dans la fonction alpha(), en réglant son canal alpha à une valeur fixe de 80% dans le processus. Les deux couleurs sont définies comme la background-color de deux éléments HTML <div> pour montrer la différence.

html
<div class="boite1">Origine</div>
<div class="boite2">Alpha fixe à 80%</div>
css
:root {
  --ma-couleur: oklch(60% 0.25 315 / 0.3);

  /* Même couleur, mais avec alpha réglé à 80% */
  --ma-couleur-80: alpha(from var(--ma-couleur) / 80%);
}

.boite1 {
  background-color: var(--ma-couleur);
}

.boite2 {
  background-color: var(--ma-couleur-80);
}

Dériver une variante semi-transparente

Cet exemple est très similaire au précédent, sauf que cette fois, l'alpha de la deuxième couleur est calculé comme la moitié de l'alpha de la première couleur, en utilisant le mot-clé de composant alpha à l'intérieur d'une expression calc().

html
<div class="boite1">Origine</div>
<div class="boite2">Alpha dérivée à 50%</div>
css
:root {
  --ma-couleur: oklch(60% 0.25 315 / 0.8);

  /* Réduire de moitié l'opacité de --ma-couleur */
  --ma-couleur-moitié-opacité: alpha(
    from var(--ma-couleur) / calc(alpha * 0.5)
  );
}

.boite1 {
  background-color: var(--ma-couleur);
}

.boite2 {
  background-color: var(--ma-couleur-moitié-opacité);
}

Faire disparaître une couleur au survol

Dans cet exemple, l'arrière-plan d'un élément disparaît à 40% d'opacité au survol de :hover, tandis que la couleur elle-même reste la même.

html
<button class="carte">Survolez-moi</button>
css
:root {
  --marque: oklch(55% 0.22 270);
}

.carte {
  background-color: var(--marque);
  color: white;
  padding: 1rem 2rem;
  border: none;
  border-radius: 0.5rem;
  font-size: 1.1rem;
  cursor: pointer;
  transition: background-color 0.3s;
}

.carte:hover {
  background-color: alpha(from var(--marque) / 40%);
}

Spécifications

Spécification
CSS Color Module Level 5
# relative-alpha

Compatibilité des navigateurs

Voir aussi