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

<hue-interpolation-method>

Baseline 2024
Newly available

Since ⁨June 2024⁩, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Le type de donnée CSS <hue-interpolation-method> représente l'algorithme utilisé pour l'interpolation entre des valeurs de type <hue>. La méthode d'interpolation spécifie comment trouver un point médian entre deux valeurs de teinte en se basant sur une roue chromatique. Elle est utilisée comme composant du type de donnée <color-interpolation-method>.

Lors de l'interpolation de valeurs <hue>, l'algorithme d'interpolation de teinte utilise par défaut shorter.

Syntaxe

Une valeur <hue-interpolation-method> consiste en le nom d'un algorithme d'interpolation de teinte suivi du mot-clé littéral hue :

shorter hue
longer hue
increasing hue
decreasing hue

Valeurs

Toute paire d'angles de teinte correspond à deux rayons sur la roue chromatique, qui découpent la circonférence en deux arcs possibles pour l'interpolation. Les deux arcs commencent au premier rayon et se terminent au second, mais l'un va dans le sens horaire et l'autre dans le sens antihoraire.

Note : Les descriptions et illustrations suivantes sont basées sur des roues chromatiques dans lesquelles les angles de teinte augmentent dans le sens horaire. Sachez qu'il existe des roues chromatiques où l'augmentation des angles se fait dans le sens antihoraire.

Pour une paire d'angles de teinte θ1 et θ2 normalisés dans l'intervalle [0deg, 360deg), il existe quatre algorithmes pour déterminer quel arc est utilisé lors de l'interpolation de θ1 à θ2 :

shorter

Utilise l'arc le plus court. Lorsque les deux rayons coïncident, l'arc dégénère en un seul point. Lorsque les deux arcs ont la même longueur :

  • Si θ1 < θ2, utiliser l'arc dans le sens horaire ;
  • Si θ1 > θ2, utiliser l'arc dans le sens antihoraire.
θ1 = 45deg, θ2 = 135deg θ1 = 135deg, θ2 = 45deg
shorter with θ1 = 45deg and θ2 = 135deg shorter with θ1 = 135deg and θ2 = 45deg
longer

Utilise l'arc le plus long. Lorsque les deux rayons coïncident :

  • Si θ1 ≤ θ2, l'arc devient la circonférence complète dans le sens horaire.
  • Si θ1 > θ2, l'arc devient la circonférence complète dans le sens antihoraire.

Lorsque les deux arcs ont la même longueur :

  • Si θ1 < θ2, utiliser l'arc dans le sens horaire ;
  • Si θ1 > θ2, utiliser l'arc dans le sens antihoraire.
θ1 = 45deg, θ2 = 135deg θ1 = 135deg, θ2 = 45deg
longer with θ1 = 45deg and θ2 = 135deg longer with θ1 = 135deg and θ2 = 45deg
increasing

Utilise l'arc dans le sens horaire. Lorsque les deux rayons coïncident, l'arc dégénère en un seul point.

θ1 = 45deg, θ2 = 135deg θ1 = 135deg, θ2 = 45deg
increasing with θ1 = 45deg and θ2 = 135deg increasing with θ1 = 135deg and θ2 = 45deg
decreasing

Utilise l'arc dans le sens antihoraire. Lorsque les deux rayons coïncident, l'arc dégénère en un seul point.

θ1 = 45deg, θ2 = 135deg θ1 = 135deg, θ2 = 45deg
decreasing with θ1 = 45deg and θ2 = 135deg decreasing with θ1 = 135deg and θ2 = 45deg

Comme il n'y a que deux arcs possibles, ces algorithmes sont équivalents deux à deux dans certaines circonstances. Plus précisément :

  • Si 0deg < θ2 - θ1 < 180deg ou θ2 - θ1 < -180deg, shorter et increasing sont équivalents, tandis que longer et decreasing sont équivalents.
  • Si -180deg < θ2 - θ1 < 0deg ou θ2 - θ1 > 180deg, shorter et decreasing sont équivalents, tandis que longer et increasing sont équivalents.

Une particularité de increasing et decreasing est que lorsque la différence d'angle de teinte passe par 180deg lors d'une transition ou d'une animation, l'arc ne basculera pas de l'autre côté comme le font shorter et longer.

Syntaxe formelle

<hue-interpolation-method> = 
[ shorter | longer | increasing | decreasing ] hue

Exemples

Comparaison des algorithmes d'interpolation de teinte

L'exemple suivant montre l'effet de l'utilisation de différents algorithmes d'interpolation de teinte dans une fonction linear-gradient().

HTML

html
<div class="hsl">
  <p>HSL</p>
</div>
<div class="hsl-increasing">
  <p>HSL croissant</p>
</div>
<div class="hsl-decreasing">
  <p>HSL décroissant</p>
</div>
<div class="hsl-shorter">
  <p>HSL plus courte</p>
</div>
<div class="hsl-longer">
  <p>HSL plus longue</p>
</div>
<div class="hsl-named">
  <p>HSL nommé</p>
</div>
<div class="hsl-named-longer">
  <p>HSL nommé (plus longue)</p>
</div>

CSS

css
.hsl {
  background: linear-gradient(
    to right in hsl,
    hsl(39deg 100% 50%),
    hsl(60deg 100% 50%)
  );
}
.hsl-increasing {
  background: linear-gradient(
    to right in hsl increasing hue,
    hsl(190deg 100% 50%),
    hsl(180deg 100% 50%)
  );
}
.hsl-decreasing {
  background: linear-gradient(
    to right in hsl decreasing hue,
    hsl(39deg 100% 50%),
    hsl(60deg 100% 50%)
  );
}
.hsl-shorter {
  background: linear-gradient(
    to right in hsl shorter hue,
    hsl(39deg 100% 50%),
    hsl(60deg 100% 50%)
  );
}
.hsl-longer {
  background: linear-gradient(
    to right in hsl longer hue,
    hsl(39deg 100% 50%),
    hsl(60deg 100% 50%)
  );
}
.hsl-named {
  background: linear-gradient(to right in hsl, orange, yellow);
}
.hsl-named-longer {
  background: linear-gradient(to right in hsl longer hue, orange, yellow);
}

Résultat

Spécifications

Specification
CSS Color Module Level 4
# hue-interpolation

Compatibilité des navigateurs

Voir aussi