RGB кажа манітору, колькі святла выпраменьваць; HSL паказвае, як колер выглядае. Пераўтварэнне трох каналаў у адценне, насычанасць і светласць робіць колер лёгкім для ручнай рэгулявання.
Як працуе пераўтварэнне з RGB у HSL
- Падзялі R, G і B на 255, каб кожнае значэнне было паміж 0 і 1.
- Вазьмі максімум і мінімум з трох — іх сярэдняе гэта светласць L.
- Калі максімум і мінімум роўныя, колер шэры: і адценне, і насычанасць роўныя 0.
- У адваротным выпадку вылічы S з розніцы паміж максімумам і мінімумам, а H вызначы па тым канале, які мае максімум.
Прыклад
У прынцыпе дакладна. Але паколькі H, S і L звычайна паказваюць як акругленыя цэлыя значэнні, зваротная канвертацыя можа зрушыць канал на пару крокаў.
RGB і HSL тлумачэнне
Што такое RGB?
RGB апісвае колер як тры каналы святла — чырвоны, зялёны і сіні — кожны ад 0 да 255. Гэта адлюстроўвае тое, як на самай справе працуюць экраны: усе тры на 255 даюць белы, усе на 0 даюць чорны. RGB — правільны выбар, калі трэба лічыць з колерам, а rgba() дадае празрыстасць.
- Сінтаксіс:
- rgb(R, G, B)
- Дыяпазон:
- 0–255 на канал
- Найлепш падыходзіць для:
- код, canvas, празрыстасць з rgba()
Што такое HSL?
HSL дзеліць колер на адценне (0–360° на каляровым крузе), насычанасць (наколькі каляровы, 0–100%) і святломасць (наколькі светлы, 0–100%). Паколькі кожная частка адпавядае таму, як людзі апісваюць колер, HSL — самы просты фармат для пабудовы адценняў, тонаў і паслядоўных палітраў — уручную або ў кодзе.
- Сінтаксіс:
- hsl(H, S%, L%)
- Дыяпазон:
- 0–360°, 0–100%, 0–100%
- Найлепш падыходзіць для:
- палітры, адценні і тоны, тэмы
Табліца спасылак RGB → HSL
Найбольш распаўсюджаныя CSS‑колеры, пераўтвораныя з RGB у HSL.
| Колер | RGB | HSL |
|---|---|---|
| black | rgb(0, 0, 0) | hsl(0, 0%, 0%) |
| white | rgb(255, 255, 255) | hsl(0, 0%, 100%) |
| red | rgb(255, 0, 0) | hsl(0, 100%, 50%) |
| lime | rgb(0, 255, 0) | hsl(120, 100%, 50%) |
| blue | rgb(0, 0, 255) | hsl(240, 100%, 50%) |
| yellow | rgb(255, 255, 0) | hsl(60, 100%, 50%) |
| orange | rgb(255, 165, 0) | hsl(39, 100%, 50%) |
| teal | rgb(0, 128, 128) | hsl(180, 100%, 25%) |
| purple | rgb(128, 0, 128) | hsl(300, 100%, 25%) |
| gray | rgb(128, 128, 128) | hsl(0, 0%, 50%) |