hue-rotate()
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis 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
angleFacultatif-
Le changement relatif de la teinte de l'échantillon d'entrée, exprimé avec un
<angle>. Une valeur de0deglaisse 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 à360degest, pourhue-rotate(Ndeg), équivalent àNmodulo 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
Chargement…
Voir aussi
- Le module des effets de filtre CSS
- Les autres fonctions
<filter-function>pouvant être utilisées dans les valeurs des propriétésfilteretbackdrop-filtersont :