HSL — дружелюбный способ выбрать цвет, а RGB — то, что реально «жует» экран, canvas API и код изображений. Этот конвертер превращает любую тройку hue, saturation и lightness в точные каналы 0–255.
Как работает конвертация HSL в RGB
- Преобразуй S и L в дроби и вычисли хрому C = (1 − |2L − 1|) × S.
- Раздели hue на 60, чтобы найти сегмент на цветовом круге, и вычисли промежуточное значение X = C × (1 − |(H/60 mod 2) − 1|).
- Назначь C, X и 0 в слоты R, G и B в соответствии с найденным сегментом.
- Добавь смещение светлоты L − C/2 ко всем трём каналам и умножь на 255.
Рабочий пример
Результат точен вплоть до финального округления до целых каналов. Дробные значения hue или saturation поддерживаются и просто округляются до ближайшего RGB-триплета.
HSL и RGB объяснено
Что такое HSL?
HSL разбивает цвет на hue (0–360° на цветовом круге), saturation (насколько цветной, 0–100%) и lightness (яркость, 0–100%). Поскольку каждая часть совпадает с тем, как люди описывают цвет, HSL — самый простой формат для создания оттенков, тональных вариаций и согласованных палитр вручную или в коде.
- Синтаксис:
- hsl(H, S%, L%)
- Диапазон:
- 0–360°, 0–100%, 0–100%
- Лучше всего для:
- палитры, оттенки и тона, темизация
Что такое RGB?
RGB описывает цвет как три световых канала — red, green и blue — каждый от 0 до 255. Это отражает работу экранов: все три на 255 дают белый, все на 0 — чёрный. RGB подходит, когда нужно вычислять с цветом, а rgba() добавляет прозрачность.
- Синтаксис:
- rgb(R, G, B)
- Диапазон:
- 0–255 на канал
- Лучше всего для:
- код, canvas, прозрачность через rgba()
Таблица соответствий HSL → RGB
Наиболее распространённые цвета CSS, сконвертированные из HSL в RGB.
| Цвет | HSL | RGB |
|---|---|---|
| black | hsl(0, 0%, 0%) | rgb(0, 0, 0) |
| white | hsl(0, 0%, 100%) | rgb(255, 255, 255) |
| red | hsl(0, 100%, 50%) | rgb(255, 0, 0) |
| lime | hsl(120, 100%, 50%) | rgb(0, 255, 0) |
| blue | hsl(240, 100%, 50%) | rgb(0, 0, 255) |
| yellow | hsl(60, 100%, 50%) | rgb(255, 255, 0) |
| orange | hsl(39, 100%, 50%) | rgb(255, 166, 0) |
| teal | hsl(180, 100%, 25%) | rgb(0, 127, 128) |
| purple | hsl(300, 100%, 25%) | rgb(128, 0, 127) |
| gray | hsl(0, 0%, 50%) | rgb(128, 128, 128) |