Тип CSS `<hue>`
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она доступна во всех браузерах с января 2020 года.
<hue> — это CSS-тип данных, представляющий угол оттенка цвета. Он используется в цветовых функциях, которые принимают оттенок в виде единственного значения, а именно в функциональных нотациях hsl(), hwb(), lch() и oklch().
Синтаксис
Значение <hue> может быть либо <angle>, либо <number>.
Значения
-
<angle> - Угол, выраженный в градусах, градах, радианах или оборотах с помощью
deg,grad,radилиturnсоответственно. -
<number> - Действительное число, представляющее угол оттенка в градусах.
Поскольку <angle> является периодической величиной, <hue> нормализуется в диапазон [0deg, 360deg). Значение циклически повторяется: 480deg соответствует 120deg, -120deg соответствует 240deg, -1turn соответствует 1turn и так далее.
Описание
Цветовой круг выше показывает оттенки при всех углах в цветовом пространстве sRGB. В частности, красный находится на 0deg, жёлтый — на 60deg, лаймовый — на 120deg, голубой — на 180deg, синий — на 240deg, а пурпурный — на 300deg.
Углы, соответствующие определённым оттенкам, различаются в зависимости от цветового пространства. Например, угол оттенка зелёного цвета sRGB составляет 120deg в цветовом пространстве sRGB, но 134.39deg в цветовом пространстве CIELAB.
В следующей таблице перечислены типичные цвета при различных углах в цветовых пространствах sRGB (используется в hsl() и hwb()), CIELAB (используется в lch()) и Oklab (используется в oklch()):
| 0° | 60° | 120° | 180° | 240° | 300° | |
|---|---|---|---|---|---|---|
| sRGB | ||||||
| CIELAB | ||||||
| Oklab |
Интерполяция значений <hue>
Значения <hue> интерполируются как значения <angle>, а алгоритмом интерполяции по умолчанию является shorter. В некоторых связанных с цветом функциях CSS это можно переопределить с помощью компонента <hue-interpolation-method>.
Формальный синтаксис
<hue> =
<number> |
<angle>
Примеры
Изменение оттенка цвета с помощью ползунка
В следующем примере показан эффект изменения значения hue в функциональной нотации hsl() на цвет.
HTML
<input type="range" min="0" max="360" value="0" id="hue-slider" /> <p>Hue: <span id="hue-value">0deg</span></p> <div id="box"></div>
CSS
div {
width: 100px;
height: 100px;
margin: 10px;
border: 1px solid black;
}
p {
font-family: sans-serif;
}
span {
font-family: monospace;
background: rgb(0 0 0 / 10%);
padding: 3px;
}
#hue-slider {
width: 90%;
}
#box {
background-color: hsl(0 100% 50%);
}
JavaScript
const hue = document.querySelector("#hue-slider");
const box = document.querySelector("#box");
hue.addEventListener("input", () => {
box.style.backgroundColor = `hsl(${hue.value} 100% 50%)`;
document.querySelector("#hue-value").textContent = `${hue.value}deg`;
});
Результат
Приблизительное представление красных оттенков в разных цветовых пространствах
В следующем примере показан похожий красный цвет в разных цветовых пространствах. Значения в функциях lch() и oklch() округлены для удобства чтения.
HTML
<div data-color="hsl-red">hsl()</div> <div data-color="hwb-red">hwb()</div> <div data-color="lch-red">lch()</div> <div data-color="oklch-red">oklch()</div>
CSS
[data-color="hsl-red"] {
/* hsl(<hue> <saturation> <lightness>) */
background-color: hsl(0 100% 50%);
}
[data-color="hwb-red"] {
/* hwb(<hue> <whiteness> <blackness>) */
background-color: hwb(0 0% 0%);
}
[data-color="lch-red"] {
/* lch(<lightness> <chroma> <hue>) */
background-color: lch(50 150 40);
}
[data-color="oklch-red"] {
/* oklch(<lightness> <chroma> <hue>) */
background-color: oklch(0.6 0.4 20);
}
div {
font-family: monospace;
width: 100px;
height: 100px;
margin: 10px;
border: 1px solid black;
display: inline-block;
}
Результат
Спецификации
| Спецификация |
|---|
| Модуль CSS Color, уровень 4 # typedef-hue |
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari в iOS | Samsung Internet | WebView для Android | WebView в iOS | |
hsl |
1 |
12 |
1 |
9.5 |
3.1 |
18 |
4 |
10.1 |
2 |
1.0 |
4.4 |
2 |
alpha_parameter |
65 |
79 |
52 |
52 |
12.1 |
65 |
52 |
47 |
12.2 |
9.0 |
65 |
12.2 |
mixed_type_parameters |
121 |
121 |
122 |
107 |
18 |
121 |
122 |
81 |
18 |
25.0 |
121 |
18 |
relative_syntax |
125
119–125Значения каналовs и l ошибочно преобразуются в числа от 0 до 1, а не от 0 до 100. В результате для вычисления значений каналов необходимо указывать значения s и l в виде десятичных эквивалентов процентов (например, 0.2 вместо 20%). См. ошибку 330096624. |
125
119–125Значения каналовs и l ошибочно преобразуются в числа от 0 до 1, а не от 0 до 100. В результате для вычисления значений каналов необходимо указывать значения s и l в виде десятичных эквивалентов процентов (например, 0.2 вместо 20%). См. ошибку 330096624. |
128 |
111
105–111Значения каналовs и l ошибочно преобразуются в числа от 0 до 1, а не от 0 до 100. В результате для вычисления значений каналов необходимо указывать значения s и l в виде десятичных эквивалентов процентов (например, 0.2 вместо 20%). См. ошибку 330096624. |
18
16.4–18Реализация основана на более старой версии спецификации. В результате вычисления со значениями каналов работают некорректно: необходимо указывать значения с единицами измерения (deg для h, % для s и l). |
125
119–125Значения каналовs и l ошибочно преобразуются в числа от 0 до 1, а не от 0 до 100. В результате для вычисления значений каналов необходимо указывать значения s и l в виде десятичных эквивалентов процентов (например, 0.2 вместо 20%). См. ошибку 330096624. |
128 |
83
79–83Значения каналовs и l ошибочно преобразуются в числа от 0 до 1, а не от 0 до 100. В результате для вычисления значений каналов необходимо указывать значения s и l в виде десятичных эквивалентов процентов (например, 0.2 вместо 20%). См. ошибку 330096624. |
18
16.4–18Реализация основана на более старой версии спецификации. В результате вычисления со значениями каналов работают некорректно: необходимо указывать значения с единицами измерения (deg для h, % для s и l). |
27.0
25.0–27.0Значения каналовs и l ошибочно преобразуются в числа от 0 до 1, а не от 0 до 100. В результате для вычисления значений каналов необходимо указывать значения s и l в виде десятичных эквивалентов процентов (например, 0.2 вместо 20%). См. ошибку 330096624. |
125
119–125Значения каналовs и l ошибочно преобразуются в числа от 0 до 1, а не от 0 до 100. В результате для вычисления значений каналов необходимо указывать значения s и l в виде десятичных эквивалентов процентов (например, 0.2 вместо 20%). См. ошибку 330096624. |
18
16.4–18Реализация основана на более старой версии спецификации. В результате вычисления со значениями каналов работают некорректно: необходимо указывать значения с единицами измерения (deg для h, % для s и l). |
space_separated_parameters |
65 |
79 |
52 |
52 |
12.1 |
65 |
52 |
47 |
12.2 |
9.0 |
65 |
12.2 |
hwb |
101 |
101 |
96 |
87 |
15 |
101 |
96 |
70 |
15 |
19.0 |
101 |
15 |
mixed_type_parameters |
121 |
121 |
122 |
107 |
18 |
121 |
122 |
81 |
18 |
25.0 |
121 |
18 |
relative_syntax |
125
119–125Значения каналовw и b ошибочно преобразуются в числа от 0 до 1, а не от 0 до 100. В результате для вычисления значений каналов необходимо указывать значения w и b в виде десятичных эквивалентов процентов (например, 0.2 вместо 20%). См. ошибку 330096624. |
125
119–125Значения каналовw и b ошибочно преобразуются в числа от 0 до 1, а не от 0 до 100. В результате для вычисления значений каналов необходимо указывать значения w и b в виде десятичных эквивалентов процентов (например, 0.2 вместо 20%). См. ошибку 330096624. |
128 |
111
105–111Значения каналовw и b ошибочно преобразуются в числа от 0 до 1, а не от 0 до 100. В результате для вычисления значений каналов необходимо указывать значения w и b в виде десятичных эквивалентов процентов (например, 0.2 вместо 20%). См. ошибку 330096624. |
18
16.4–18Реализация основана на более старой версии спецификации. В результате вычисления со значениями каналов работают некорректно: необходимо указывать значения с единицами измерения (deg для h, % для w и b). |
125
119–125Значения каналовw и b ошибочно преобразуются в числа от 0 до 1, а не от 0 до 100. В результате для вычисления значений каналов необходимо указывать значения w и b в виде десятичных эквивалентов процентов (например, 0.2 вместо 20%). См. ошибку 330096624. |
128 |
83
79–83Значения каналовw и b ошибочно преобразуются в числа от 0 до 1, а не от 0 до 100. В результате для вычисления значений каналов необходимо указывать значения w и b в виде десятичных эквивалентов процентов (например, 0.2 вместо 20%). См. ошибку 330096624. |
18
16.4–18Реализация основана на более старой версии спецификации. В результате вычисления со значениями каналов работают некорректно: необходимо указывать значения с единицами измерения (deg для h, % для w и b). |
27.0
25.0–27.0Значения каналовw и b ошибочно преобразуются в числа от 0 до 1, а не от 0 до 100. В результате для вычисления значений каналов необходимо указывать значения w и b в виде десятичных эквивалентов процентов (например, 0.2 вместо 20%). См. ошибку 330096624. |
125
119–125Значения каналовw и b ошибочно преобразуются в числа от 0 до 1, а не от 0 до 100. В результате для вычисления значений каналов необходимо указывать значения w и b в виде десятичных эквивалентов процентов (например, 0.2 вместо 20%). См. ошибку 330096624. |
18
16.4–18Реализация основана на более старой версии спецификации. В результате вычисления со значениями каналов работают некорректно: необходимо указывать значения с единицами измерения (deg для h, % для w и b). |
lch |
111 |
111 |
113 |
97 |
15 |
111 |
113 |
75 |
15 |
22.0 |
111 |
15 |
mixed_type_parameters |
116 |
116 |
113 |
102 |
16.2 |
116 |
113 |
78 |
16.2 |
24.0 |
116 |
16.2 |
relative_syntax |
119 |
119 |
128 |
105 |
18
16.4–18Реализация основана на более старой версии спецификации. В результате вычисления со значениями каналовh работают некорректно: необходимо указывать значения с единицами измерения (deg). |
119 |
128 |
79 |
18
16.4–18Реализация основана на более старой версии спецификации. В результате вычисления со значениями каналовh работают некорректно: необходимо указывать значения с единицами измерения (deg). |
25.0 |
119 |
18
16.4–18Реализация основана на более старой версии спецификации. В результате вычисления со значениями каналовh работают некорректно: необходимо указывать значения с единицами измерения (deg). |
oklch |
111 |
111 |
113 |
97 |
15.4 |
111 |
113 |
75 |
15.4 |
22.0 |
111 |
15.4 |
mixed_type_parameters |
116 |
116 |
113 |
102 |
16.2 |
116 |
113 |
78 |
16.2 |
24.0 |
116 |
16.2 |
relative_syntax |
122
119–122Значения каналаl ошибочно преобразуются в числа от 0 до 100, а не от 0 до 1. В результате для вычисления значений каналов необходимо указывать значения l в виде чисел-процентов без единиц измерения (например, 20 вместо 0.2). См. ошибку 40940488. |
122
119–122Значения каналаl ошибочно преобразуются в числа от 0 до 100, а не от 0 до 1. В результате для вычисления значений каналов необходимо указывать значения l в виде чисел-процентов без единиц измерения (например, 20 вместо 0.2). См. ошибку 40940488. |
128 |
108
105–108Значения каналаl ошибочно преобразуются в числа от 0 до 100, а не от 0 до 1. В результате для вычисления значений каналов необходимо указывать значения l в виде чисел-процентов без единиц измерения (например, 20 вместо 0.2). См. ошибку 40940488. |
18
16.4–18Реализация основана на более старой версии спецификации. В результате вычисления со значениями каналовh работают некорректно: необходимо указывать значения с единицами измерения (deg). |
122
119–122Значения каналаl ошибочно преобразуются в числа от 0 до 100, а не от 0 до 1. В результате для вычисления значений каналов необходимо указывать значения l в виде чисел-процентов без единиц измерения (например, 20 вместо 0.2). См. ошибку 40940488. |
128 |
81
79–81Значения каналаl ошибочно преобразуются в числа от 0 до 100, а не от 0 до 1. В результате для вычисления значений каналов необходимо указывать значения l в виде чисел-процентов без единиц измерения (например, 20 вместо 0.2). См. ошибку 40940488. |
18
16.4–18Реализация основана на более старой версии спецификации. В результате вычисления со значениями каналовh работают некорректно: необходимо указывать значения с единицами измерения (deg). |
26.0
25.0–26.0Значения каналаl ошибочно преобразуются в числа от 0 до 100, а не от 0 до 1. В результате для вычисления значений каналов необходимо указывать значения l в виде чисел-процентов без единиц измерения (например, 20 вместо 0.2). См. ошибку 40940488. |
122
119–122Значения каналаl ошибочно преобразуются в числа от 0 до 100, а не от 0 до 1. В результате для вычисления значений каналов необходимо указывать значения l в виде чисел-процентов без единиц измерения (например, 20 вместо 0.2). См. ошибку 40940488. |
18
16.4–18Реализация основана на более старой версии спецификации. В результате вычисления со значениями каналовh работают некорректно: необходимо указывать значения с единицами измерения (deg). |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/hue