Spec-Zone.ru › CSS

Тип 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 и так далее.

Описание

An sRGB color wheel

Цветовой круг выше показывает оттенки при всех углах в цветовом пространстве 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).

См. также

  • color
  • <hue-interpolation-method>

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API