hue-rotate()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since septembre 2016.
La fonction CSS hue-rotate()
permet d'appliquer une rotation de teinte sur une image. Le résultat de cette fonction est une valeur <filter-function>
.
Exemple interactif
filter: hue-rotate(0);
filter: hue-rotate(90deg);
filter: hue-rotate(-0.25turn);
filter: hue-rotate(3.142rad);
<section id="default-example">
<img
class="transition-all"
id="example-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
</section>
Syntaxe
hue-rotate(angle)
Paramètres
angle
Facultatif-
Le changement relatif de la teinte de l'échantillon d'entrée, exprimé avec un
<angle>
. Une valeur de0deg
laisse l'entrée inchangée. Une rotation positive augmente la valeur de la teinte, tandis qu'une rotation négative la diminue. La valeur initiale pour l'interpolation est0
. Il n'y a pas de valeur minimale ou maximale. L'effet des valeurs supérieures à360deg
est, pourhue-rotate(Ndeg)
, équivalent àN
modulo 360. La valeur par défaut est0deg
.
Le type de données CSS <angle>
représente une valeur d'angle exprimée en degrés, en grades, en radians ou en tours. Les éléments suivants sont équivalents :
hue-rotate(-180deg)
hue-rotate(540deg)
hue-rotate(200grad)
hue-rotate(3.14159rad)
hue-rotate(0.5turn)
Syntaxe formelle
<hue-rotate()> =
hue-rotate( [ <angle> | <zero> ]? )
Exemples
>Avec la propriété backdrop-filter
Cet exemple applique un filtre hue-rotate()
via la propriété CSS backdrop-filter
au paragraphe, ce qui modifie la teinte de la zone située derrière le <p>
.
.container {
background: url("/shared-assets/images/examples/listen_to_black_women.jpg")
no-repeat left / contain #011296;
}
p {
backdrop-filter: hue-rotate(240deg);
text-shadow: 2px 2px #011296;
}
Avec la propriété filter
Cet exemple applique un filtre hue-rotate()
via la propriété CSS filter
, ce qui modifie la teinte de l'ensemble de l'élément, y compris le contenu, la bordure et l'image d'arrière-plan.
p {
filter: hue-rotate(-60deg);
text-shadow: 2px 2px blue;
background-color: magenta;
color: goldenrod;
border: 1em solid rebeccapurple;
box-shadow:
inset -5px -5px red,
5px 5px yellow;
}
Avec url()
et le filtre SVG hue-rotate
L'élément SVG <filter>
est utilisé pour définir des effets de filtre personnalisés qui peuvent ensuite être référencés par id
. Le type hueRotate
de la primitive <feColorMatrix>
du <filter>
fournit le même effet. Étant donné ce qui suit :
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 220 220"
color-interpolation-filters="sRGB"
height="220"
width="220">
<filter id="hue-rotate">
<feColorMatrix type="hueRotate" values="90" />
</filter>
</svg>
Ces valeurs produisent le même résultat :
filter: hue-rotate(90deg); /* rotation de 90deg */
filter: url("#hue-rotate"); /* avec SVG intégré */
filter: url("folder/fileName.svg#hue-rotate"); /* définition de filtre svg externe */
Cet exemple montre trois images : l'image avec la fonction de filtre hue-rotate()
appliquée, l'image avec un filtre url()
équivalent, et l'image d'origine pour comparaison :
hue-rotate()
ne préserve pas la saturation ni la luminosité
Le diagramme ci-dessous compare deux dégradés de couleurs à partir du rouge : le premier est généré avec hue-rotate()
, le second utilise de vraies valeurs HSL. Remarquez que le dégradé obtenu avec hue-rotate()
présente des différences notables de saturation et de luminosité au centre.
<div>
<p>Avec <code>hue-rotate()</code></p>
<div id="hue-rotate"></div>
</div>
<div>
<p>Avec <code>hsl()</code></p>
<div id="hsl"></div>
</div>
const hueRotate = document.getElementById("hue-rotate");
const hsl = document.getElementById("hsl");
for (let i = 0; i < 360; i++) {
const div1 = document.createElement("div");
div1.style.backgroundColor = `hsl(${i}, 100%, 50%)`;
hsl.appendChild(div1);
const div2 = document.createElement("div");
div2.style.backgroundColor = "red";
div2.style.filter = `hue-rotate(${i}deg)`;
hueRotate.appendChild(div2);
}
Spécifications
Specification |
---|
Filter Effects Module Level 1> # funcdef-filter-hue-rotate> |
Compatibilité des navigateurs
Loading…
Voir aussi
- Le module des effets de filtre CSS
- Les autres fonctions
<filter-function>
pouvant être utilisées dans les valeurs des propriétésfilter
etbackdrop-filter
sont :