RGB govori ekranu koliko svjetla emitirati; HSL ti govori kako boja zapravo izgleda. Pretvaranje tri kanala u nijansu, zasićenost i svjetlinu čini boju lakom za ručno podešavanje.
Kako radi konverzija iz RGB u HSL
- Podijeli R, G i B sa 255 tako da svaka vrijednost bude između 0 i 1.
- Uzmi maksimum i minimum od tri vrijednosti — njihov prosjek je svjetlina L.
- Ako su maksimum i minimum jednaki, boja je siva: nijansa i zasićenost su oba 0.
- U suprotnom izvedi S iz razmaka između maksimuma i minimuma, i očitaj H iz kanala koji je maksimum.
Primjer koji radi
U principu tačno. Pošto se H, S i L obično prikazuju kao zaokruženi cijeli brojevi, pretvaranje natrag može pomaknuti kanal za jedan ili dva koraka.
RGB i HSL objašnjeni
Š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()
Š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
RGB u HSL referentna tabela
Najčešće CSS boje, konvertovane iz RGB u HSL.
| Boja | 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%) |