RGB říká obrazovce, kolik světla má vyzařovat; HSL říká, jak barva ve skutečnosti vypadá. Převod tří kanálů na odstín, sytost a světlost dělá barvu snadno upravitelnou ručně.
Jak funguje převod z RGB na HSL
- Vyděl R, G a B 255, aby každá hodnota byla mezi 0 a 1.
- Vezmi maximum a minimum z trojice — jejich průměr je světlost L.
- Pokud jsou maximum a minimum stejné, barva je šedá: odstín i sytost jsou 0.
- Jinak odvoď S ze rozdílu mezi maximem a minimem a H přečti z toho kanálu, který je maximum.
Ukázkový příklad
V zásadě přesné. Protože H, S a L se obvykle zobrazují zaokrouhlené na celá čísla, může zpětný převod posunout některý kanál o jeden či dva kroky.
RGB a HSL vysvětleno
Co je RGB?
RGB popisuje barvu třemi kanály světla — červená, zelená a modrá — každý v rozsahu 0 až 255. Odráží skutečné fungování obrazovek: všechny tři na 255 dají bílou, všechny na 0 dají černou. RGB je správná volba vždy, když s barvou potřebuješ počítat; rgba() navíc přidává průhlednost.
- Syntaxe:
- rgb(R, G, B)
- Rozsah:
- 0–255 na kanál
- Nejlepší pro:
- kód, canvas, průhlednost s rgba()
Co je HSL?
HSL rozděluje barvu na odstín (hue, 0–360° na barevném kruhu), sytost (saturation, jak barevná, 0–100%) a jas (lightness, jak světlá, 0–100%). Protože každá část odpovídá způsobu, jak lidé barvy popisují, je HSL nejjednodušší formát pro vytváření odstínů, tónů a konzistentních palet — ručně i v kódu.
- Syntaxe:
- hsl(H, S%, L%)
- Rozsah:
- 0–360°, 0–100%, 0–100%
- Nejlepší pro:
- palety, odstíny a tóny, theming
Referenční tabulka RGB na HSL
Nejběžnější CSS barvy převedené z RGB na HSL.
| Barva | 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%) |