Перенос печатной палитры в веб удобнее делать через HSL: как только смесь чернил выражена в hue, saturation и lightness, можно за секунды построить hover-состояния, оттенки и тона.
Как работает конвертация CMYK в HSL
- Преобразуй CMYK-проценты в RGB-каналы от 0 до 255.
- Раздели каналы на 255 и возьми их максимум и минимум.
- Среднее между максимумом и минимумом — это lightness L, а их разница определяет saturation S.
- Канал, содержащий максимум, определяет hue H в градусах на цветовом круге.
Рабочий пример
Шаг CMYK → RGB уже является приближением, а значения HSL округляются до целых. Результат — очень близкое соответствие, но не цветоуправляемая конверсия.
CMYK и HSL объяснено
Что такое CMYK?
CMYK — модель с четырьмя красками для печати: cyan, magenta, yellow и key (чёрный), каждая указана в процентах от 0 до 100. Краски вычитают свет, а не излучают его, поэтому CMYK охватывает меньше цветов, чем экран — поэтому яркие цвета с экрана часто выглядят тусклее в печати.
- Синтаксис:
- cmyk(C%, M%, Y%, K%)
- Диапазон:
- 0–100% на краску
- Лучше всего для:
- печать, упаковка, макеты для печати
Что такое HSL?
HSL разбивает цвет на hue (0–360° на цветовом круге), saturation (насколько цветной, 0–100%) и lightness (яркость, 0–100%). Поскольку каждая часть совпадает с тем, как люди описывают цвет, HSL — самый простой формат для создания оттенков, тональных вариаций и согласованных палитр вручную или в коде.
- Синтаксис:
- hsl(H, S%, L%)
- Диапазон:
- 0–360°, 0–100%, 0–100%
- Лучше всего для:
- палитры, оттенки и тона, темизация
Таблица соответствий CMYK → HSL
Наиболее распространённые цвета CSS, сконвертированные из CMYK в HSL.
| Цвет | CMYK | HSL |
|---|---|---|
| black | cmyk(0%, 0%, 0%, 100%) | hsl(0, 0%, 0%) |
| white | cmyk(0%, 0%, 0%, 0%) | hsl(0, 0%, 100%) |
| red | cmyk(0%, 100%, 100%, 0%) | hsl(0, 100%, 50%) |
| lime | cmyk(100%, 0%, 100%, 0%) | hsl(120, 100%, 50%) |
| blue | cmyk(100%, 100%, 0%, 0%) | hsl(240, 100%, 50%) |
| yellow | cmyk(0%, 0%, 100%, 0%) | hsl(60, 100%, 50%) |
| orange | cmyk(0%, 35%, 100%, 0%) | hsl(39, 100%, 50%) |
| teal | cmyk(100%, 0%, 0%, 50%) | hsl(180, 100%, 25%) |
| purple | cmyk(0%, 100%, 0%, 50%) | hsl(300, 100%, 25%) |
| gray | cmyk(0%, 0%, 0%, 50%) | hsl(0, 0%, 50%) |