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

hcmtad9rq2_6tz1jnu0o3xjuzwk.png


Возможно, вы использовали 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 получает три значения, каждый из которых обознчает яркость:

  1. Красного
  2. Зелёного
  3. Синего


Эти значения могут находиться в интервале от 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, но имеет дополнительный бонус:

  1. Она позволяет указывать непрозрачность (opacity) цвета.


Это может пригодиться, если вы хотите создать эффект просвечивания элементов, например, когда цвет фона должен быть частично прозрачным.

Функция RGBA получает четыре значения:

  1. Красный
  2. Зелёный
  3. Синий
  4. Альфа


Первые три аналогичны значениям в функции RGB. Значение альфы (alpha) обозначает непрозрачность цвета и находится в интервале от 0 до 1. Значение 0 означает, что цвет полностью прозрачен, а значение 1 — что цвет полностью непрозрачен:

div {
  color: rgba(0, 0, 255, 0.75);
}
/* все элементы 
синие с непрозрачностью 75%. */


▍ HSLA ()


Теперь давайте поговорим о функции HSLA.

Функция HSLA аналогична функции HSL, но с добавлением прозрачности

Функция HSLA получает четыре значения:

  1. Тон
  2. Насыщенность
  3. Светлоту
  4. Альфа


Первые три значения аналогичны значениям функции 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);
}


Приведённый код устанавливает синий цвет фона для всех элементов