Konwerter HEX na HSL to małe narzędzie, które zamienia kod koloru HEX (`#3b82f6`) na cylindryczną trójkę barwa / nasycenie / jasność kodującą ten sam kolor sRGB (`hsl(217 91% 60%)`). Kody HEX to zwięzły, sześciocyfrowy ciąg w systemie szesnastkowym, który projektanci i deweloperzy wklejają między Figmą, Sketchem, Photoshopem, brand-guideline PDF-ami i arkuszami stylów CSS — trzy 8-bitowe kanały spakowane w 6-znakową formę `#RRGGBB`, zakotwiczone w przestrzeni barw sRGB zdefiniowanej w IEC 61966-2-1 w 1996. HSL to cylindryczne przekształcenie tej samej przestrzeni barw na trzy bardziej przyjazne projektantom osie: kąt barwy na kole kolorów, chromatyczny procent nasycenia oraz procent jasności. Deweloperzy konwertują HEX → HSL nieustannie: aby zdefiniować kolor marki jako zmienną CSS i potem komponować jaśniejsze lub ciemniejsze odcienie, korygując tylko L; aby zasilić interfejs selektora kolorów, który wyświetla Hue i SL jako osobne kontrolki; aby wygenerować rampy jaśniejszych i ciemniejszych odcieni dla systemu designu; albo aby wykonać matematykę zmiennych CSS w czasie wykonania przez `hsl(from var(--primary) h s calc(l + 10%))` dla wyprowadzonych tokenów motywu. To narzędzie uruchamia konwersję na żywo w trakcie pisania, bez przycisku „Konwertuj”, który trzeba klikać, i pokazuje każdy inny popularny format koloru (RGB, OKLCH, OKLAB, HSV, HWB, CMYK plus 148 nazwanych kolorów CSS) obok wyjścia HSL i bezpłatnie.
**Sam format HSL zasługuje na bliższe spojrzenie.** HSL = Hue (0–360°), Saturation (0–100%), Lightness (0–100%). Hue to kątowa pozycja na kole kolorów — 0° to czerwony, 60° to żółty, 120° to zielony, 180° to cyjan, 240° to niebieski, 300° to magenta, a 360° zawija się z powrotem do czerwonego. Saturation to intensywność chromatyczna od 0% (achromatyczna szarość) do 100% (w pełni chromatyczna, bez domieszki szarości). Lightness to jasność od 0% (czysta czerń, niezależnie od barwy lub nasycenia) przez 50% (czysta barwa przy pełnej chromie) do 100% (czysta biel, niezależnie od barwy lub nasycenia). Alvy Ray Smith opublikował pierwotne wyprowadzenie w 1978 jako część wczesnego rozwoju grafiki komputerowej, aby dać projektantom układy współrzędnych bliższe ich kognitywnemu modelowi koloru niż surowe adresowanie kanałów RGB. Model jest w CSS od CSS3 (2010) i działa w każdej przeglądarce wstecz do IE 9. Pierwotna składnia CSS używała przecinków: `hsl(217, 91%, 60%)` dla nieprzezroczystego, `hsla(217, 91%, 60%, 0.5)` dla wersji z kanałem alfa. CSS Color 4 (W3C Candidate Recommendation od 2022) dodał nowoczesną formę z rozdziałem spacjami: `hsl(217 91% 60%)` i `hsl(217 91% 60% / 0.5)` z kanałem alfa po ukośniku — ten sam kształt składni co inne funkcyjne notacje z CSS Color 4 (`rgb()`, `lab()`, `oklch()`, `color()`). Barwę można też wyrażać w obrotach (`hsl(0.6turn 91% 60%)`) lub radianach (`hsl(3.787rad 91% 60%)`), wszystkie równoważne kanonicznej formie w stopniach. Każda aktualnie aktualizowana przeglądarka parsuje każdy syntaktyczny wariant; narzędzie domyślnie emituje nowoczesną formę z rozdziałem spacjami.
Matematyka konwersji działa czysto w obu kierunkach. **HEX → HSL** to dwuetapowy potok. Najpierw sparsuj 6-cyfrowy HEX `#RRGGBB` jako trzy 2-cyfrowe liczby w systemie szesnastkowym przez `parseInt(hex.slice(1, 3), 16)` itd., aby uzyskać liczby całkowite kanałów RGB w 0–255. Następnie znormalizuj każdy kanał do 0–1, dzieląc przez 255, potem wylicz `max = Math.max(r, g, b)`, `min = Math.min(r, g, b)`, `delta = max - min`. Jasność to średnia max i min: `L = (max + min) / 2`. Nasycenie zależy od jasności: gdy L ≤ 0.5, `S = delta / (max + min)`; gdy L > 0.5, `S = delta / (2 - max - min)`. Równoważnie w formie z CSS Color 4 §6.4, `S = delta / (1 - |2L - 1|)` (z S = 0, gdy delta = 0). Barwa jest fragmentaryczna w zależności od tego, który kanał jest maksymalny: gdy R jest maksymalne, `H = ((G - B) / delta) % 6`; gdy G jest maksymalne, `H = (B - R) / delta + 2`; gdy B jest maksymalne, `H = (R - G) / delta + 4`; pomnóż przez 60, aby przeskalować do stopni, dodaj 360, jeśli ujemne. Odwrotność (HSL → HEX, przez RGB) używa pomocnika `f(n) = L - a * max(-1, min(k-3, 9-k, 1))`, gdzie `a = S * min(L, 1-L)` i `k = (n + H/30) mod 12`, zastosowanego z n = 0, 8, 4, aby wyprodukować R, G, B, a następnie przeskalowanego do 0–255 i zakodowanego w HEX.
**Dlaczego HSL nadal jest użyteczne.** Intuicyjne suwaki — korygowanie L przewidywalnie rozjaśnia lub przyciemnia bez naruszania tożsamości barwy, podczas gdy korygowanie kanału RGB daje mniej przewidywalne przesunięcie koloru. Matematyka CSS w czasie wykonania — nowoczesne przeglądarki wspierają `hsl(from var(--primary) h s calc(l + 10%))`, aby wyprowadzać tokeny motywu w czasie renderowania. Kognicja projektanta — projektanci wychowani na selektorach kolorów HSV myślą o kolorze w kategoriach barwy + chromy, nawet gdy plik wypisuje HEX. **Problem HSL** polega na tym, że jego oś Lightness nie jest percepcyjnie jednorodna — zielony przy L=50% wygląda widocznie jaśniej niż niebieski przy L=50%, ponieważ HSL dziedziczy dziwactwa gamma sRGB i traktuje każdą barwę jako równoważną na skali L. Gdy potrzebujesz percepcyjnej jednorodności (generowanie palet, w którym każdy krok powinien wyglądać równie jasno; obliczenia tokenów trybu ciemnego, które nie sprawiają przypadkiem, że niebieski tekst jest trudniejszy do czytania niż zielony), sięgnij po OKLCH — to samo narzędzie pokazuje oba, więc wybór jest jednym spojrzeniem oddalony.
Przepływ HEX → HSL tego narzędzia to jeden kierunek z pięciu w rodzinie odgałęzień, które wszystkie współdzielą ten sam podstawowy zunifikowany konwerter kolorów. Dedykowany zunifikowany konwerter kolorów to hub — pokazuje wszystkie 9 formatów jednocześnie edytowalnych i jest właściwym narzędziem, gdy twój przepływ wymaga więcej niż tylko HEX i HSL. Jednokierunkowe odgałęzienia celują w konkretne intencje wyszukiwania w Google: konwerter HEX na RGB dla kierunku pod canvas i sprzęt, konwerter RGB na HEX dla kierunku odwrotnego, konwerter HEX na OKLCH dla nowoczesnych percepcyjnie jednorodnych systemów designu (Tailwind v4 i shadcn obecnie domyślnie używają OKLCH) oraz konwerter HEX na CMYK dla przybliżeń pod przygotowanie druku. Wszystkie pięć odgałęzień i hub współdzielą ten sam silnik parsowania i tę samą matematykę konwersji, więc wyniki są gwarantowane identyczne w całej rodzinie. Każda konwersja działa lokalnie w przeglądarce — twoje kody HEX nigdy nie są wysyłane, nigdy logowane, a w trakcie pisania nie wysyłane są żadne zapytania sieciowe. Sprawdź w DevTools.