Миксуй палитру как настоящий художник
Анна Ширяева
Миксуй палитру как настоящий художник!
Анна Ширяева, СИБУР Цифровой
Анна Ширяева
- В IT с 2011.
- Frontend разработчик Цифрового СИБУРа.
- Организатор MocsowJS.
- Прошедшая художку любительница
ярких красок.
Поговорим про цвет
- Когда о нем приходится думать?
- Возможности современного CSS.
- Что за цветовые пространства?
- Как они помогают контролировать цвет?
- Теория VS практика.
Когда о цвете приходится думать?
Палитры
- Диапазон оттенков.
- Работа с разными темами.
- Подбор комплиментарных цветов.
Гипотеза 1
- Без дизайнера тоже можно сделать красиво.
Гипотеза 2
- CSS тоже код, который нужно поддерживать.
- Важно как запрограммируете цвет.
Возможности современного CSS
Давно использовали
color picker в DevTools?
Цветовые пространства
1. Хотим более сочную картинку
Больше доступных цветов видимого спектра
2. Разные пространства —
разные системы координат
Внутри цветовых функций:
- rgb(red, green, blue)
- hsl(hue, saturation, lightness)
- hwb(hue, whiteness, blackness)
- color(colorspace c1 c2 c3)
- lab(lightness, a(red/green), b(blue/yellow))
- lch(lightness, chroma, hue)
- oklab(lightness, a(red/green), b(blue/yellow))
- oklch(lightness, chroma, hue)
Как это помогает контролировать цвет?
Сравнение
|
HEX |
HSL |
OKLCH |
| Гибкость |
— |
+ |
+ |
| Контроль светлого/темного |
— |
+ |
+— |
| Диапазон цветов |
sRGB |
sRGB |
+ OKLCH |
CSS Color Module Level 5
color-mix()
CSS Color Module Level 5
color-mix(method, color1[ p1], color2[ p2])
CSS Color Module Level 5
- color-mix(in srgb, black, white);
- color-mix(in srgb-linear, black, white);
- color-mix(in lch, black, white);
- color-mix(in oklch, black, white);
- color-mix(in lab, black, white);
- color-mix(in oklab, black, white);
- color-mix(in xyz, black, white);
Палитра
- Нейтральные оттенки.
- Бренд цвет.
- Поддерживающие цвета (success, warning, danger).
2 проблемы:
- не те оттенки
- неравномерность
Проблема оттенков
color-mix(???, black, white);
color-mix(???, blue, white);
Решение
color-mix(in oklab, black, white);
color-mix(in oklab, blue, white);
БЫЛО
- не те оттенки
- неравномерность
СТАЛО
- не те оттенки
- неравномерность
Восприятие
Цвет - ЧБ - корректировка - цвет
html { filter: grayscale(); }
Итого
- Узнайте дисплеи пользователей.
- Определитесь с цветовым пространством.
- Мешайте цвета с color-mix().
- Пользуйстесь ЧБ режимом для проверки.
@it_wildlife