[Перевод] Руководство по цветовым функциям CSS

Возможно, вы использовали CSS для изменения цвета элемента на веб-странице, но слышали ли вы что-нибудь о цветовых функциях CSS? Если нет, то из этой статьи узнаете нечто новое и крайне полезное!
Что такое цветовые функции CSS?
Цветовые функции CSS (CSS color functions) — это способ задания цвета в CSS при помощи математических функций, а не простого кода цвета. Функции обеспечивают больше контроля и гибкости при работе с цветами, используемыми в таблице стилей.
При помощи цветовых функций можно настраивать тон (hue), насыщенность (saturation), светлоту (lightness) и непрозрачность (opacity) цвета и даже смешивать вместе несколько цветов.
Существует множество функций CSS, давайте рассмотрим некоторые из них:
rgb()
: получает три значения, обозначающие красный, зелёный и синий компонент, и возвращает цвет. Значения могут находиться в интервале от 0 до 255. Пример:color: rgb(255, 0, 0)
возвращает красный цвет.rgba()
: схожа сrgb()
, но позволяет ещё и задавать непрозрачность цвета. Четвёртое значение (альфа) может находиться в интервале от 0 до 1. Пример:color: rgba(255, 0, 0, 0.5)
возвращает полупрозрачный красный цвет.hsl()
: получает три значения, обозначающие тон, насыщенность и светлоту, возвращает цвет. Пример:color: hsl(0, 100%, 50%)
возвращает красный цвет.hsla()
: схожа сhsl()
, но также позволяет задавать непрозрачность цвета. Пример:color: hsla(0, 100%, 50%, 0.5)
возвращает полупрозрачный красный цвет.mix()
: позволяет смешивать два цвета с опциональным параметром веса. Пример:color: mix(red, blue)
возвращает оттенок фиолетового.
Давайте изучим их подробнее.
▍ RGB ()
Функция RGB — одна из самых часто используемых цветовых функций в CSS, и на то есть веские причины. Её легко понять и она даёт большую степень контроля над цветами веб-сайта.
Функция RGB получает три значения, каждый из которых обознчает яркость:
- Красного
- Зелёного
- Синего
Эти значения могут находиться в интервале от 0 до 255. Смешивая разные яркости красного, зелёного и синего, можно создавать любые цвета.
Пример:
- Красный:
rgb(255, 0, 0)
- Зелёный:
rgb(0, 255, 0)
- Синий:
rgb(0, 0, 255)
div {
background-color: rgb(0, 255, 0);
}
/*всем элементам div задаётся зелёный цвет*/
▍ HSL ()
Функция HSL схожа с функцией RGB, но вместо значений красного, зелёного и синего она использует значения:
- Тона
- Насыщенности
- Светлоты
Это немного упрощает понимание и использование, особенно для новичков в теории цвета.
Значение тона (hue) в функции HSL означает сам цвет, его значения находятся в интервале от 0 до 360:
- Значение 0 для hue обозначает красный цвет, значение 120 — зелёный, а значение 240 — синий.
- Значение saturation в функции HSL обозначает интенсивность цвета, которая находится в интервале от 0% до 100%. Значение 100% saturation означает, что цвет полностью насыщенный, а значение 0% означает, что цвет серый.
- Значение lightness в функции HSL обозначает яркость цвета, которая находится в интервале от 0% до 100%. Значение 50% lightness означает, что цвет нейтрально серый, значение 100% означает, что цвет полностью светлый, а значение 0% означает, что цвет полностью тёмный.
div { background-color: hsl(120, 100%, 50%); } /* Все элементы
зелёные, полностью насыщенные и с нейтральной светлотой. */
▍ RGBA ()
Функция RGBA похожа на функцию RGB, но имеет дополнительный бонус:
- Она позволяет указывать непрозрачность (opacity) цвета.
Это может пригодиться, если вы хотите создать эффект просвечивания элементов, например, когда цвет фона должен быть частично прозрачным.
Функция RGBA получает четыре значения:
- Красный
- Зелёный
- Синий
- Альфа
Первые три аналогичны значениям в функции RGB. Значение альфы (alpha) обозначает непрозрачность цвета и находится в интервале от 0 до 1. Значение 0 означает, что цвет полностью прозрачен, а значение 1 — что цвет полностью непрозрачен:
div { color: rgba(0, 0, 255, 0.75); } /* все элементы
синие с непрозрачностью 75%. */
▍ HSLA ()
Теперь давайте поговорим о функции HSLA.
Функция HSLA аналогична функции HSL, но с добавлением прозрачности
Функция HSLA получает четыре значения:
- Тон
- Насыщенность
- Светлоту
- Альфа
Первые три значения аналогичны значениям функции HSL. Значение альфы обозначает непрозрачность цвета и находится в интервале от 0 до 1. Значение 0 означает полную прозрачность цвета, а значение 1 — полную непрозрачность.
div { color: hsla(240, 100%, 50%, 0.75); } /* все элементы
синие с непрозрачностью 75%. */
Собственные свойства или переменные CSS
Теперь давайте поговорим о произвольных свойствах в CSS, также называемых переменными CSS. Собственные свойства позволяют хранить значения, которые многократно применяются в таблице стилей, что упрощает поддержку стилей и делает код более модульным и гибким.
Для создания собственного свойства достаточно использовать синтаксис --
, за которым следует имя свойства и его значение:
:root {
--primary-color: blue;
}
Мы создали собственное свойство с именем --primary-color
и значением blue
.
Теперь для использования этого свойства можно использовать в селекторах CSS функцию var()
:
button {
background-color: var(--primary-color);
}
Приведённый код устанавливает синий цвет фона для всех элементов