HSL je přátelský způsob výběru barvy, RGB je to, co obrazovky, canvas API a obrazový kód skutečně spotřebovávají. Tento převodník změní libovolnou trojici odstínu, sytosti a světlosti na přesné kanály 0–255.
Jak funguje převod z HSL na RGB
- Převeď S a L na zlomky a spočti chromu C = (1 − |2L − 1|) × S.
- Děl H60, aby ses dostal do segmentu barevného kruhu, a spočti mezihodnotu X = C × (1 − |(H/60 mod 2) − 1|).
- Přiřaď C, X a 0 do slotů R, G a B podle toho segmentu.
- Přidej k všem třem kanálům offset světlosti L − C/2 a vynásob 255.
Ukázkový příklad
Výsledek je přesný až do konečného zaokrouhlení na celá čísla kanálů. Podporovány jsou i desetinné hodnoty odstínu nebo sytosti — prostě se zaokrouhlí na nejbližší RGB trojici.
HSL a RGB vysvětleno
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
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()
Referenční tabulka HSL na RGB
Nejběžnější CSS barvy převedené z HSL na RGB.
| Barva | 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) |