HSL je priateľský spôsob výberu farby, RGB je to, čo obrazovky, canvas API a obrazový kód naozaj používajú. Tento prevodník premení ľubovoľnú trojicu odtieň–sýtosť–svetlosť na presné kanály 0–255.
Ako funguje konverzia z HSL na RGB
- Preveď S a L na zlomky a vypočítaj chromu C = (1 − |2L − 1|) × S.
- Delením odtieňa H 60 zistíš segment na farebnom kolese a vypočítaš medzihodnotu X = C × (1 − |(H/60 mod 2) − 1|).
- Podľa toho segmentu priraď hodnoty C, X a 0 do slotov R, G a B.
- Pridaj k všetkým trom kanálom posun svetlosti L − C/2 a vynásob 255.
Príklad
Výsledok je presný až po konečné zaokrúhlenie na celé kanály. Podporné sú zlomkové hodnoty odtieňa alebo sýtiosti — skončia jednoducho pri najbližšom RGB triplete.
HSL a RGB vysvetlené
Čo je HSL?
HSL rozdeľuje farbu na odtieň (hue, 0–360° na farebnom kruhu), sýtosť (saturation, ako farebná, 0–100%) a svetlosť (lightness, ako jasná, 0–100%). Keďže každá časť zodpovedá tomu, ako ľudia opisujú farby, HSL je najjednoduchší formát na tvorbu odtieňov, tmavších alebo svetlejších variácií a konzistentných paliet — ručne alebo v kóde.
- Syntax:
- hsl(H, S%, L%)
- Rozsah:
- 0–360°, 0–100%, 0–100%
- Najvhodnejšie pre:
- palety, odtiene a tiene, theming
Čo je RGB?
RGB popisuje farbu troma kanálmi svetla — červená, zelená a modrá — každý v rozsahu 0 až 255. Odráža to, ako obrazovky skutočne fungujú: všetky tri na 255 dávajú bielu, všetky na 0 dávajú čiernu. RGB je správna voľba vždy, keď potrebuješ s farbou počítať, a rgba() pridáva priehľadnosť navrch.
- Syntax:
- rgb(R, G, B)
- Rozsah:
- 0–255 na kanál
- Najvhodnejšie pre:
- kód, canvas, priehľadnosť s rgba()
Referenčná tabuľka HSL → RGB
Najbežnejšie CSS farby prevedené z HSL na RGB.
| Farba | 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) |