HSL je prijateljski način odabira boje, RGB je ono što ekrani, canvas API-i i kod za slike zapravo koriste. Ovaj pretvarač svaku trojku hue, saturation i lightness pretvara u tačne kanale 0–255.
Kako radi konverzija iz HSL u RGB
- Pretvori S i L u razlomke i izračunaj kromu C = (1 − |2L − 1|) × S.
- Podijeli hue s 60 da pronađeš njegov segment na kolu boja i izračunaj međuvrijednost X = C × (1 − |(H/60 mod 2) − 1|).
- Dodijeli C, X i 0 u R, G i B utore prema tom segmentu.
- Dodaj offset svjetline L − C/2 svim trima kanalima i pomnoži s 255.
Primjer koji radi
Rezultat je točan do konačnog zaokruživanja na cijele kanale. Frakcionirani hue ili saturation vrijednosti su podržane i jednostavno padaju na najbližu RGB trojku.
HSL i RGB objašnjeni
Šta je HSL?
HSL dijeli boju na nijansu (0–360° na kolor točku), zasićenost (koliko je boja intenzivna, 0–100%) i svjetlinu (koliko je svijetla, 0–100%). Pošto svaki dio odgovara načinu na koji ljudi opisuju boju, HSL je najjednostavniji format za izradu nijansi, tonova i konzistentnih paleta — ručno ili u kodu.
- Sintaksa:
- hsl(H, S%, L%)
- Opseg:
- 0–360°, 0–100%, 0–100%
- Najbolje za:
- palete, nijanse i tonovi, teming
Šta je RGB?
RGB opisuje boju kao tri kanala svjetlosti — crvenu, zelenu i plavu — svaki od 0 do 255. To odražava kako ekrani zapravo rade: svi na 255 daju bijelu, svi na 0 daju crnu. RGB je pravi izbor kad trebaš računati s bojom, a rgba() dodaje prozirnost preko toga.
- Sintaksa:
- rgb(R, G, B)
- Opseg:
- 0–255 po kanalu
- Najbolje za:
- kod, canvas, prozirnost s rgba()
HSL u RGB referentna tabela
Najčešće CSS boje, konvertovane iz HSL u RGB.
| Boja | 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) |