Konwerter kolorów — HEX, RGB, HSL i OKLCH
Konwertuj HEX na RGB, HSL, OKLCH, OKLAB i CMYK w przeglądarce — skopiuj dowolny format jednym kliknięciem. Darmowy, bez rejestracji, kolory nigdy nie opuszczają strony.
Symulacja ślepoty barw (8 typów)
Jaśniejsze odcienie / Ciemniejsze odcienie / Tony / Harmonie
Jaśniejsze odcienie
Ciemniejsze odcienie
Tony
Harmonie
Skopiuj jako kod
— — — — — Najczęstsze kolory — słownik
Czym jest konwerter kolorów?
Konwerter kolorów to niewielkie narzędzie, które tłumaczy pojedynczą wartość koloru między formatami rozumianymi przez twój stos technologiczny, system designu i przeglądarkę — HEX, RGB, HSL, HSV, HWB, CMYK, OKLCH, OKLAB oraz 148 nazwanych kolorów CSS. Konwertery online są elementem narzędzi webowych od początku lat 2000., gdy odpowiedzią było niemal zawsze proste pole HEX-na-RGB napisane pod arkusz stylów rodem z ery Geocities. Nowoczesny konwerter różni się od tych starych narzędzi trzema rzeczami: zunifikowanym interfejsem pól, w którym każdy format jest jednocześnie edytowalny zamiast jednokierunkowego dropdownu; źródłem prawdy w OKLCH, które trzyma kanoniczną wartość wewnętrznie, dzięki czemu konwersja w obie strony pozostaje bit-stabilna; oraz percepcyjną matematyką osadzoną w specyfikacji W3C CSS Color 4 zamiast w pogmatwanej gamma-arytmetyce HSL z generacji 2003.
Różne przestrzenie barw istnieją, ponieważ różne problemy wymagają różnych reprezentacji, a żadna pojedyncza przestrzeń nie jest dobra do wszystkiego. RGB jest natywne sprzętowo — odwzorowuje się bezpośrednio na czerwone, zielone i niebieskie subpiksele LCD lub luminofory CRT, każdy kanał kodowany jako 8-bitowa liczba całkowita od 0 do 255. HEX to po prostu RGB w systemie szesnastkowym, upakowany w sześcioznakowy ciąg do zwięzłego CSS i przenoszenia między Figmą a kodem. HSL, HSV i HWB to przestrzenie kognitywno-projektowe — cylindryczne przekształcenia RGB, które pozwalają obracać barwę, rozjaśniać i przyciemniać intuicyjnymi suwakami. HSL został opublikowany w 1978 razem z HSV przez Alvy'ego Raya Smitha; HWB dodano w 1996 jako czystszy model mentalny (barwa + ilość bieli + ilość czerni). CMYK to abstrakcja procesu druku — subtraktywny stos farb (Cyan, Magenta, Yellow, Key=czarny), który modeluje, jak farba pochłania światło na papierze, a nie jak ekran je emituje. OKLCH i OKLAB to przestrzenie percepcyjne — zaprojektowane tak, aby równe odległości liczbowe odpowiadały równym odległościom percepcyjnym, co czyni je niezastąpionymi przy rampach w systemach designu i matematyce dostępności. Nazwane kolory to spadek po CSS: 148 nazw SVG/CSS3, takich jak `tomato`, `rebeccapurple` czy `slategray`, które dostarcza każda przeglądarka.
Przez ponad dwadzieścia lat sRGB było „wystarczająco dobre” — to standard IEC z 1996 zbudowany wokół podstawowych luminoforów monitorów CRT z tamtych czasów. Po cichu wyznaczał górną granicę tego, co kolor w webie mógł oznaczać. A potem szerokogamutowe wyświetlacze rozbiły to założenie. Display P3 od Apple obejmuje około 50% więcej widma widzialnego niż sRGB i dziś trafia do każdego iPhone'a, iPada i MacBooka od 2017. Rec2020 obejmuje jeszcze więcej i jest standardem nadawania HDR w telewizji. HSL miał wbudowane dziwactwa gamma sRGB głęboko w swojej definicji — dlatego rampa HSL wygląda wizualnie nierówno na szerokogamutowym ekranie: zieleń przy L=50% wygląda jaśniej niż niebieski przy L=50%, ponieważ L w HSL jest geometryczne, nie percepcyjne. W 2020 Björn Ottosson opublikował OKLAB — percepcyjnie jednorodną przestrzeń barw wyprowadzoną z CIE-LAB z poprawioną odpowiedzią jasności i czystszym zachowaniem przy wysokim nasyceniu. OKLCH to jej forma biegunowa (jasność / chroma / barwa), o tym samym kształcie co HSL, ale z naprawioną matematyką percepcyjną. CSS Color 4 dodał składnię `oklch()` i `oklab()` w 2022; Chrome 111 dostarczył wsparcie w marcu 2023, Safari 15.4 miało je już od marca 2022, a Firefox 113 wszedł w maju 2023. Tailwind v4, wydany w 2025, uczynił OKLCH swoim domyślnym formatem tokenu koloru; shadcn/ui poszedł tą samą drogą krótko potem. To narzędzie odzwierciedla ten zwrot, czyniąc OKLCH wewnętrznym źródłem prawdy — każda konwersja przechodzi przez OKLCH, więc droga HEX → RGB → OKLAB → HEX w obie strony nigdy nie akumuluje dryfu float, a edycja kanału L w OKLCH bezpośrednio aktualizuje każde inne pole dokładnie.
Wybór przestrzeni zależy całkowicie od tego, co robisz. **HEX** to właściwe rozwiązanie do osadzania w webie, przenoszenia między narzędziami projektowymi a kodem, oraz wszędzie tam, gdzie zwięzłe identyfikatory mają znaczenie — `#3b82f6` wygodnie mieści się w zmiennej CSS, a większość frontendowców czyta go od razu. Dedykowany konwerter HEX na RGB obsługuje pojedynczy najczęstszy kierunek w jednym kroku; odwrotny konwerter RGB na HEX pokrywa przypadek, gdy masz oddzielne liczby całkowite kanałów od projektanta lub z potoku przetwarzania pikseli obrazu. **RGB** służy do bezpośredniego adresowania sprzętu — wszędzie tam, gdzie potrzebne są liczby całkowite 0–255 (Canvas API, manipulacja obrazem, paski LED, atrybuty kolorów OpenGL). **HSL** to starsza, kognitywno-projektowa przestrzeń — obracanie barwy, rozjaśnianie, przyciemnianie — wciąż przydatna, gdy trzeba szybko zmodyfikować kolor CSS w projekcie, który nie został zmigrowany do OKLCH. Jednokierunkowy konwerter HEX na HSL to właściwy skrót, gdy tylko tego potrzebujesz. **HSV i HWB** to przestrzenie pickerów dla projektantów. HSV (Hue, Saturation, Value) odpowiada kwadratowi saturation–value, który rysuje większość pickerów, dlatego to właśnie te wartości raportują Photoshop, Figma i Sketch po kliknięciu kroplomierza. HWB jest czystszym modelem mentalnym — wybierz czystą barwę, potem dodaj biel, aby rozjaśnić, lub czerń, aby przyciemnić — a CSS Color 4 dodał natywne wsparcie `hwb()` we wszystkich aktualnie aktualizowanych przeglądarkach. **CMYK** służy do przygotowania druku. Wprost: nasze wyjście CMYK to naiwne przybliżenie oparte na sRGB ze standardowym wzorem `K = 1 - max(R,G,B); C = (1-R-K)/(1-K)`. Prawdziwa dokładność druku wymaga konwersji przez profil ICC pod konkretną maszynę, farbę i papier — zwykle US Web Coated SWOP v2 albo Fogra39 — co potrafi przesunąć kanały o 5–15%. Traktuj nasz CMYK jako oszacowanie startowe, nie jako materiał produkcyjny. Jednokierunkowy konwerter HEX na CMYK stosuje ten sam wzór z tym samym zastrzeżeniem. **OKLCH** jest domyślnym wyborem dla nowego kodu w 2025 i dalej — nowoczesne systemy designu, generowanie palet świadome dostępności, wszędzie tam, gdzie liczy się jednorodność percepcyjna. Jednokierunkowy konwerter HEX na OKLCH istnieje na szybką migrację starszych palet. **OKLAB** to prostokątny krewny używany do matematyki palet: punkty środkowe między dwoma kolorami, obliczenia odległości, macierze symulacji ślepoty barw i inne operacje, które wymagają arytmetyki na osiach liniowych. **Nazwane kolory** są do dokumentacji, komentarzy w kodzie, makiet i tekstów — 148 nazwanych kolorów CSS to słownik o stałym składzie, a narzędzie znajduje najbliższy nazwany kolor dla dowolnego wejścia po odległości ΔE w OKLAB.
Graf konwersji w sercu tego wszystkiego jest dobrze zdefiniowany i zaskakująco czysty. sRGB i linear-sRGB są powiązane fragmentaryczną krzywą gamma określoną w W3C CSS Color 4 §11.2 (z grubsza wykładnik 2.4 z małym odcinkiem liniowym blisko zera). Linear-sRGB i CIE XYZ D65 są powiązane stałą macierzą 3×3 z CSS Color 4 §15.1. XYZ D65 i OKLAB są powiązane dwiema macierzami i krokiem pierwiastkowania sześciennego (etap odpowiedzi czopków LMS, wg Ottossona 2020). OKLAB i OKLCH są powiązane przekształceniem kartezjańsko-biegunowym — `C = sqrt(a² + b²); H = atan2(b, a)`. HEX to po prostu sRGB serializowany jako `#RRGGBB` w systemie szesnastkowym. RGB ↔ HSL, RGB ↔ HSV, RGB ↔ HWB to bezpośrednie geometryczne przekształcenia w obrębie sRGB, zdefiniowane w CSS Color 4 §5-7. CMYK używa naiwnego wzoru sRGB powyżej. Cały potok to graf skierowany zakorzeniony wewnętrznie w OKLCH; każdy inny format jest z niego obliczany przy każdym naciśnięciu klawisza.
Poza podstawową konwersją narzędzie dostarcza funkcje, których starsza generacja nie miała. **Wykrywanie gamutu Display P3 i Rec2020** — trzy plakietki sygnalizują, czy bieżący kolor mieści się w odtwarzalnym zakresie każdej przestrzeni, a przycisk **Dopasuj do sRGB** używa redukcji chroma metodą bisekcji (zgodnie z informacyjnym algorytmem CSS Color 4), aby zmniejszyć kolor, aż się zmieści. **Podwójne plakietki kontrastu WCAG 2 + APCA Lc** — obie miary w jednym wierszu, dzięki czemu można dziś spełnić standard regulacyjny i jednocześnie zrobić sanity check perspektywiczną miarą percepcyjną. **8 symulacji ślepoty barw** — protanopia, deuteranopia i tritanopia przez macierze dichromacji Brettela-Viénota-Mollona 1997; protanomalia, deuteranomalia i tritanomalia przez macierze anomalnej trichromacji Machado-Oliveiry-Fernandesa 2009 z natężeniem 0,66; achromatopsja i częściowa achromatomalia przez wagi luminancji rec601. **Generowanie palet percepcyjnie równych w OKLCH** — jaśniejsze odcienie, ciemniejsze odcienie, tony i harmonie zbudowane przez krokowanie kanału L o równe wielkości przy utrzymaniu stałych C i H (ta sama konstrukcja co domyślny generator palet w Tailwind v4). **Fragmenty kodu CSS / Tailwind v4 / SwiftUI / Compose / Flutter** — gotowe do wklejenia dla pięciu platform, do których celuje większość zespołów cross-team. **Integracja API EyeDropper** w przeglądarkach opartych na Chromium (Chrome, Edge, Brave, Opera) do pobierania kolorów z dowolnego miejsca na ekranie, także spoza przeglądarki. **Stan w hashu URL** — bieżący kolor koduje się w adresie URL jako `#hex=...` lub `#oklch=...`, więc można udostępnić aktywny link do dokładnego koloru jednym skopiowaniem.
Wszystko w tym narzędziu działa lokalnie w przeglądarce. Wartości kolorów nigdy nie są wysyłane na serwer, logowane, analizowane ani trwale przechowywane po stronie usługi. Zero zapytań sieciowych w trakcie pisania — otwórz zakładkę Network w DevTools i obserwuj: pisanie w dowolnym polu nie wywołuje żadnego ruchu sieciowego. To czyni narzędzie bezpiecznym dla niezapowiedzianych palet marki, wewnętrznych systemów tokenów designu, szkiców makiet, kompozycji pod prezentację klienta oraz każdej innej poufnej pracy z kolorem. Żadne cookies nie zapisują tego, co wklejasz; żadna analityka nie wystrzeliwuje przy zmianach koloru; żaden plik konfiguracyjny po stronie serwera nie wie, jakie wartości widziało narzędzie. Ta sama postawa prywatności rozciąga się na hash URL: fragment `#hex=...` żyje wyłącznie w pasku adresu i nigdy nie jest przesyłany na serwer (przeglądarki nie dołączają fragmentu do zapytań HTTP), więc nawet udostępniony link nie wycieka koloru do żadnej strony trzeciej poza odbiorcą, do którego go wysłałeś. Dla zespołów obsługujących prace przedpremierowe, kampanie objęte embargiem, palety klientów pod NDA albo systemy designu jeszcze nieopublikowane ma to większe znaczenie, niż sugeruje wygodny nagłówek o szybkości. Lokalne wykonanie konwersji oznacza także, że narzędzie działa bez połączenia z internetem po pierwszym załadowaniu strony — tablice macierzy, funkcje gamma i logika gamutu są w bundle'u JavaScript, więc paleta nie zniknie tylko dlatego, że wifi w kawiarni padło w połowie sesji projektowej. Aby zgłębić, dlaczego OKLCH stał się standardem systemów designu w latach 2024–2026, sięgnij po nasz przewodnik towarzyszący: Przestrzeń barw OKLCH wyjaśniona — dlaczego Tailwind v4 ją przyjął.
// sRGB → linear → XYZ D65 → OKLAB → OKLCH
// References: W3C CSS Color 4 §11-15, Ottosson 2020 (https://bottosson.github.io/posts/oklab/)
// Worked example: #3b82f6 (Tailwind blue-500)
const srgb = [0x3b, 0x82, 0xf6].map(v => v / 255); // [0.231, 0.510, 0.965]
const toLinear = (v) => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);
const lin = srgb.map(toLinear); // gamma-decoded linear-sRGB
// linear-sRGB → XYZ D65 (CSS Color 4 §15.1 matrix)
const [lr, lg, lb] = lin;
const x = 0.4124564 * lr + 0.3575761 * lg + 0.1804375 * lb;
const y = 0.2126729 * lr + 0.7151522 * lg + 0.0721750 * lb;
const z = 0.0193339 * lr + 0.1191920 * lg + 0.9503041 * lb;
// XYZ D65 → LMS (Ottosson 2020 matrix), cube-root, → OKLAB
const l_ = Math.cbrt(0.8189330101 * x + 0.3618667424 * y - 0.1288597137 * z);
const m_ = Math.cbrt(0.0329845436 * x + 0.9293118715 * y + 0.0361456387 * z);
const s_ = Math.cbrt(0.0482003018 * x + 0.2643662691 * y + 0.6338517070 * z);
const L = 0.2104542553 * l_ + 0.7936177850 * m_ - 0.0040720468 * s_;
const a = 1.9779984951 * l_ - 2.4285922050 * m_ + 0.4505937099 * s_;
const b = 0.0259040371 * l_ + 0.7827717662 * m_ - 0.8086757660 * s_;
// OKLAB → OKLCH (Cartesian to polar)
const C = Math.sqrt(a * a + b * b);
const H = (Math.atan2(b, a) * 180 / Math.PI + 360) % 360;
console.log(`oklch(${L.toFixed(3)} ${C.toFixed(3)} ${H.toFixed(1)})`);
// → oklch(0.629 0.193 263.4) Kluczowe funkcje
9 jednocześnie edytowalnych przestrzeni barw
Każdy format — HEX, RGB, HSL, HSV, HWB, CMYK, OKLCH, OKLAB i nazwany kolor CSS — to bezpośrednio edytowalne pole, a nie jednokierunkowy dropdown. Wpisz wartość `oklch()`, a HEX, RGB i HSL się zaktualizują; wklej HEX z Figmy, a OKLCH zaktualizuje się z odpowiadającymi współrzędnymi percepcyjnymi. Kursor w polu, które edytujesz, pozostaje na miejscu — tylko pozostałe osiem pól przebudowuje się przy każdym naciśnięciu klawisza, więc edycja przebiega naturalnie.
OKLCH jako źródło prawdy — bit-perfect konwersja w obie strony
Wewnętrzna kanoniczna reprezentacja to OKLCH — percepcyjnie jednorodna biegunowa forma OKLAB (Ottosson 2020). Każdy inny format jest z niej wyprowadzany przy każdym naciśnięciu klawisza. Dzięki temu droga HEX → RGB → HSL → OKLAB → HEX w obie strony nie kumuluje dryfu float — oryginalny HEX wraca niezmieniony. Starsze konwertery, które trasują przez HSL lub sRGB, akumulują błąd zaokrąglenia na każdym kroku; to narzędzie tego nie robi.
Ostrzeżenia o gamutach Display P3 + Rec2020
Trzy aktywne plakietki (sRGB, Display P3, Rec2020) pokazują, czy bieżący kolor mieści się w odtwarzalnym zakresie każdej przestrzeni. Przydatne, gdy pracujesz w OKLCH i chcesz wiedzieć, które wyświetlacze poprawnie zrenderują wartość — wiele kolorów OKLCH z Tailwind v4 przekracza sRGB, ale mieści się w P3, który większość urządzeń Apple od 2017 potrafi renderować. Przycisk Dopasuj do sRGB używa algorytmu redukcji chroma metodą bisekcji z CSS Color 4, aby zmniejszyć kolor, aż się zmieści.
WCAG 2 + APCA w jednym wierszu kontrastu
Kontrast względem bieli i czerni pokazywany jest dwiema miarami obok siebie: współczynnikiem WCAG 2.1 (4,5:1 = tekst treści AA, 7:1 = AAA) do dzisiejszej zgodności regulacyjnej oraz wynikiem APCA Lc (perspektywiczny percepcyjny algorytm kontrastu WCAG 3). APCA jest wrażliwa na polaryzację (tekst jasny na ciemnym waży inaczej niż ciemny na jasnym), co symetryczny wzór WCAG 2 myli. Korzystaj z obu: WCAG do audytów, APCA do realnej czytelności.
Symulacja ślepoty barw dla 8 typów deficytów
Aktywne podglądy dla trzech dichromacji (protanopia, deuteranopia, tritanopia) przez macierze Brettela-Viénota-Mollona 1997, trzech anomalnych trichromacji (protanomalia, deuteranomalia, tritanomalia) przez macierze Machado-Oliveiry-Fernandesa 2009 z natężeniem 0,66, plus achromatopsja i achromatomalia przez wagi luminancji rec601. Obejmuje około 8% mężczyzn i 0,5% kobiet — populacje, dla których design musi pozostać dostępny.
Jaśniejsze odcienie, ciemniejsze odcienie, tony i harmonie równe w OKLCH
Rampy palet generowane są przez krokowanie kanału L o równe wielkości w OKLCH, przy utrzymaniu stałych chromy i barwy — ta sama konstrukcja, której używa Tailwind v4. Wynik jest percepcyjnie równy: wizualny odstęp między przystankami 400 a 500 wygląda identycznie jak odstęp między 500 a 600, czego rampa HSL nie potrafi zagwarantować. Harmonie (dopełnienie, triada, tetrada, dopełnienie podzielone) obracają barwę o dokładne kąty i zachowują L+C.
Skopiuj jako CSS / Tailwind v4 / SwiftUI / Compose / Flutter
Jednym kliknięciem generujesz kod dla pięciu platform, do których celuje większość zespołów cross-team: właściwość niestandardowa CSS (`--color-brand: oklch(0.629 0.193 263.4)`), token `@theme` Tailwind v4, literał `Color(red:green:blue:)` w SwiftUI, stała `Color(0xFF3B82F6)` w Jetpack Compose, `Color(0xFF3B82F6)` we Flutterze. Dokładna składnia, której każda platforma oczekuje, gotowa do wklejenia w arkusz marki, katalog assetów iOS lub motyw Androida.
Ręcznie zaimplementowany selektor OKLCH (zero zależności)
Kwadrat SL + suwak barwy + suwak alfa są napisane w czystym Canvas API + JavaScript bez zewnętrznej biblioteki picker. Gradient OKLCH na suwaku barwy jest obliczany z prawdziwej matematyki OKLCH, a nie przybliżany przez HSL, więc przeciąganie suwaka daje percepcyjnie jednorodny obrót barwy. Waga bundle'a pozostaje poniżej 10 KB dla całej warstwy interaktywnej; pierwszy render jest szybki nawet przy zimnych ładowaniach.
100% w przeglądarce — bez wysyłki i bez śledzenia
Cała matematyka konwersji, generowanie palet, ocena kontrastu i wykrywanie gamutu działa lokalnie w przeglądarce. Wartości kolorów nigdy nie są przesyłane, przechowywane na serwerze, logowane ani analizowane. Zero zapytań sieciowych w trakcie pisania — sprawdź w DevTools. Bezpieczne dla niezapowiedzianych palet marki, wewnętrznych tokenów designu, szkiców makiet i każdej innej poufnej pracy z kolorem.
Porównanie alternatyw dla konwertera kolorów
ColorHexa
narzędzie weboweWieloletni konkurent z głębokimi stronami informacyjnymi per kolor — generuje pełną stronę SEO na każdy HEX z konwersjami, paletami, harmoniami i gradientami. UI jest przestarzały (estetyka wczesnych lat 2010.), brak wsparcia OKLCH, brak kontrastu APCA, brak obsługi szerokiego gamutu. Mocny w SEO discovery konkretnego koloru („#FF5733” jako zapytanie); słabszy w aktywnej pracy projektowej, gdzie liczy się zunifikowany interfejs pól.
RapidTables
narzędzie weboweSzeroki wybór jednokierunkowych konwerterów (HEX na RGB, RGB na HEX, HEX na HSL itd.) plus inne narzędzia jednostkowe. Każda konwersja to oddzielna strona z jednokierunkowym formularzem — brak aktywnego doświadczenia zunifikowanych pól. Brak wsparcia OKLCH, brak ostrzeżeń gamutu, brak sprawdzania kontrastu. Przydatne do jednorazowej szybkiej konwersji, gdy trafiasz tam z wyszukiwania Google; to narzędzie jest szybsze dla każdego przepływu pracy z więcej niż jedną konwersją.
HTMLColorCodes
narzędzie weboweMocny picker i generator palet z czystym UI. UX pickera dobrze nadaje się do eksploracji wizualnej. Strona konwertera jest podstawowa — tylko HEX, RGB, HSL, HSV, CMYK; brak OKLCH, brak OKLAB, brak wykrywania gamutu. Najlepsze, gdy chcesz wizualnie eksplorować warianty koloru; to narzędzie wygrywa, gdy potrzebujesz nowoczesnych przestrzeni barw lub precyzyjnej matematyki konwersji.
OKLCH.com
narzędzie webowePięknie zrobione narzędzie skupione na OKLCH autorstwa Andreya Sitnika (autora polyfilla postcss-oklab-function). Najlepsze w klasie do eksploracji specyficznie OKLCH ze świadomym szerokiego gamutu pickerem i generowaniem palet. Nie pokrywa konwersji HEX/RGB/HSL/CMYK jako głównych wyjść — skupia się wyłącznie na OKLCH. Sięgaj po OKLCH.com przy czystej pracy projektowej w OKLCH; sięgaj po to narzędzie, gdy potrzebujesz konwersji między przestrzeniami.
ConvertingColors
narzędzie webowePokrywa wiele przestrzeni barw (HEX, RGB, HSL, HSV, CMYK, XYZ, CIELAB i więcej) z modelem stron SEO per kolor podobnie jak ColorHexa. Brakuje nowoczesnego wsparcia OKLCH, brak kontrastu APCA, brak obsługi szerokiego gamutu, a strony generowane automatycznie sprawiają wrażenie content-farm. Dobre do grzebania w metadanych pojedynczych kolorów; to narzędzie jest szybsze w aktywnej pracy projektowej i nad dostępnością.
IT-Tools
open-source'owe narzędzie weboweCzysty kolektor narzędzi developerskich w Vue 3 do self-hostowania, z konwerterem kolorów wśród wielu innych. UX spójny w całym pakiecie. Konwerter kolorów obsługuje HEX, RGB, HSL, HSV, CMYK; brak OKLCH, brak ostrzeżeń gamutu, brak sprawdzania kontrastu, brak symulacji ślepoty barw. Warte uruchomienia lokalnie, jeśli chcesz multi-narzędzie self-hostowane; to narzędzie jest dedykowaną, głębszą opcją skupioną wyłącznie na kolorach.
W3Schools Color Converter
narzędzie webowePodstawowy przełącznik HEX/RGB/HSL na przyjaznej dla początkujących stronie, wszechobecnej w wynikach wyszukiwania dla zapytań o konwerter kolorów. Brak OKLCH, brak zaawansowanych funkcji. Przydatne jako materiał dydaktyczny obok wyjaśnień W3Schools. To narzędzie wygrywa we wszystkich pozostałych aspektach: więcej przestrzeni, percepcyjna matematyka, gamut + kontrast + funkcje CVD, nowoczesny eksport kodu Tailwind v4 / SwiftUI / Compose / Flutter.
Przykłady konwersji kolorów
Kolor marki Tailwind v4 → OKLCH
#3b82f6
Wynik OKLCH: `oklch(0.629 0.193 263.4)`. Wstaw to bezpośrednio do bloku `@theme` w Tailwind v4 jako `--color-brand-500: oklch(0.629 0.193 263.4);`, a reszta rampy ułoży się percepcyjnie spójnie. Tailwind v4 ustandaryzował OKLCH dla swojej domyślnej palety w 2024 roku właśnie dlatego, że kanał L utrzymuje jasność percepcyjną stałą między barwami — green-500 i blue-500 wyglądają na równie jasne, czego rampy HSL/RGB nie potrafią zagwarantować. HEX zostaje zachowany dosłownie, gdyby potrzebny był też fallback dla starszych przeglądarek.
Webowy HEX → literał Color w SwiftUI
#FF5733
Wynik SwiftUI (z sekcji „Skopiuj jako kod” → SwiftUI): `Color(red: 255/255, green: 87/255, blue: 51/255)`. Klasyczny przepływ pracy iOS / macOS: projektant wrzuca HEX do panelu marki w Figmie, wklejasz go tutaj i kopiujesz literał SwiftUI do `View`. Forma wyrażeniowa (z jawnymi dzieleniami `/255`) jest celowa — łatwiej przechodzi code review niż nieprzejrzysty `Color(red: 1.0, green: 0.341, blue: 0.2)`, ponieważ oryginalny HEX marki nadal jest widoczny w źródle.
Próbka koloru z palety projektowej → przybliżenie CMYK do druku
#FF6347
Wynik CMYK: w przybliżeniu `cmyk(0%, 61%, 72%, 0%)`. To naiwna konwersja sRGB → CMYK ze standardowym wzorem `K = 1 − max(R,G,B); C = (1−R−K)/(1−K)` — przydatne jako szybkie oszacowanie startowe pod wycenę drukarni, ale nie jest to substytut prawdziwej konwersji. Drukarnia przepuści plik przez profil ICC (zwykle US Web Coated SWOP v2 lub Fogra39) dostrojony do konkretnej maszyny, farby i papieru, co potrafi przesunąć kanały o 5–15%. Traktuj tę liczbę jako sanity check, nie jako materiał produkcyjny.
Kolor OKLCH o szerokim gamucie → fallback do sRGB
oklch(0.7 0.25 30)
Pasek gamutu od razu zgłasza ten kolor jako **poza sRGB** (Display P3 go obejmuje, Rec2020 też). Na standardowym monitorze renderuje się jako odbarwione przybliżenie; na ekranie obsługującym P3 (większość laptopów wyprodukowanych po 2017) renderuje się z pełnym nasyceniem. Kliknij **Dopasuj do sRGB**, aby zmniejszyć chroma, aż kolor zmieści się w sześcianie sRGB, a następnie skopiuj wynikowy HEX (około `#ef6b50`) jako fallback. Źródło prawdy w OKLCH pozwala zachować wartość o szerokim gamucie w tokenach designu i wysłać dopasowany HEX jako fallback w `@supports not (color: oklch(...))`.
Weryfikacja kontrastu WCAG dla tekstu treści
#767676
Na białym tle (`#ffffff`) współczynnik kontrastu WCAG 2.1 wynosi około **4,54:1** — tuż powyżej progu AA 4,5:1 dla zwykłego tekstu. Zmniejsz jedną cyfrę do `#777777` i współczynnik spada do 4,48:1, co już nie spełnia AA. Wartość APCA Lc pojawia się obok jako miara perspektywiczna (szkic WCAG 3) — APCA ocenia tę parę na około `Lc 60`, nieco poniżej rekomendowanego przez APCA `Lc 75` dla tekstu treści. Korzystaj z obu: WCAG do dzisiejszych audytów, APCA, aby upewnić się, że wynik faktycznie czyta się dobrze.
Znajdź nazwany kolor CSS najbliższy HEX-owi marki
#FF6347
Pole **Nazwany** zwraca `tomato (dokładnie)`, ponieważ specyfikacja CSS definiuje `tomato` dosłownie jako `#FF6347` — to jeden ze 148 nazwanych kolorów, które dostarcza każda przeglądarka. Wypróbuj bliską nietrafioną wartość, np. `#FF6348`, a pole zwróci `tomato (najbliższy, ΔE 0,02)`, informując o najbliższym nazwanym kolorze i odległości w przestrzeni OKLAB (CIE ΔE). Przydatne, gdy piszesz tekst lub komentarze i chcesz nazwy koloru zrozumiałej dla człowieka zamiast kodu HEX.
Konwersja starej wartości HSL do nowoczesnego OKLCH
hsl(220 70% 50%)
Wynik OKLCH: w przybliżeniu `oklch(0.5 0.187 263)`. L=50% w HSL **nie** odpowiada percepcyjnym 50% — niebieski przy L=50% wygląda znacznie ciemniej niż żółty przy L=50%, ponieważ HSL to cylindryczne przekształcenie sRGB, a nie przestrzeń jednorodna. L=0.5 w OKLCH faktycznie odpowiada luminancji średniej szarości, którą postrzega oko. Migrując system designu z HSL do OKLCH, spodziewaj się dryfu wartości L (niebieskie idą w górę, żółte w dół) — to system sam się koryguje, a nie błąd.
Zbuduj paletę 5 jaśniejszych i 5 ciemniejszych odcieni z koloru marki
#3b82f6
Sekcja **Jaśniejsze odcienie / Ciemniejsze odcienie / Tony / Harmonie** generuje 5 jaśniejszych i 5 ciemniejszych wariantów, krokując kanał L w OKLCH o równe wielkości przy utrzymaniu stałych C i H. Wynikiem jest percepcyjnie równa rampa — odstęp między `500` a `600` wygląda tak samo jak odstęp między `600` a `700`, czego potrzebuje każdy system designu. Kliknij dowolną próbkę koloru, aby załadować ją jako kolor aktywny, a potem skopiuj jej HEX/OKLCH. Konstrukcja identyczna jak generator domyślnej palety w Tailwind v4.
Jak korzystać z konwertera kolorów
- 1
Wklej lub wpisz dowolny kolor w dowolnym formacie
Każde z 9 pól formatu (HEX, RGB, HSL, HSV, HWB, CMYK, OKLCH, OKLAB, Nazwany) jest bezpośrednio edytowalne — nie ma przycisku „Konwertuj”, który trzeba klikać. Wklej HEX z Figmy, wpisz wartość `oklch()` z konfiguracji Tailwinda, wrzuć `hsl()` ze starego arkusza stylów lub po prostu wpisz nazwę CSS, np. `tomato`. Narzędzie parsuje przyrostowo w trakcie pisania, więc na wpół wpisana wartość nie nadpisze pozostałych, dopóki nie zatwierdzi się prawidłowego formatu. Nieprawidłowe wejście wywołuje cichy błąd inline; prawidłowe odświeża całą siatkę.
- 2
Wszystkie 9 formatów aktualizuje się natychmiast
Wewnętrznym źródłem prawdy jest OKLCH (percepcyjnie jednorodne, nieograniczone co do gamutu), a każdy inny format jest z niego wyprowadzany przy każdym naciśnięciu klawisza. Pole, w którym aktualnie piszesz, zachowuje pozycję kursora nietkniętą — przebudowują się tylko *pozostałe* osiem pól. Dzięki temu można edytować kanał L w OKLCH bezpośrednio i obserwować, jak HEX, RGB, HSL i CMYK przesuwają się w czasie rzeczywistym, bez utraty kursora. Matematyka konwersji działa w całości w JavaScript, używając tych samych prymitywów OKLAB, które są w nowoczesnych przeglądarkach.
- 3
Użyj selektora do eksploracji wizualnej
Pod siatką formatów znajduje się kwadrat saturation–lightness (przeciągnij w dowolne miejsce, aby ustawić S+L dla bieżącej barwy), suwak barwy (przeciągnij, aby obrócić wokół koła kolorów) i suwak alfa (przeciągnij, aby ustawić przezroczystość). W przeglądarkach opartych na Chromium (Chrome, Edge, Brave) przycisk **EyeDropper** aktywuje natywne API `EyeDropper` — kliknij dowolne miejsce na ekranie, także poza oknem przeglądarki, aby pobrać kolor tego piksela. Safari i Firefox jeszcze nie udostępniają tego API, więc w tych przeglądarkach przycisk jest ukryty, a kwadrat SL + suwak barwy pozostają głównym selektorem.
- 4
Sprawdź gamut i kontrast jednym spojrzeniem
Trzy plakietki gamutu (**sRGB**, **Display P3**, **Rec2020**) pokazują, czy bieżący kolor mieści się w odtwarzalnym zakresie każdej przestrzeni — przydatne, gdy pracujesz w OKLCH i chcesz wiedzieć, które wyświetlacze poprawnie zrenderują wartość. Wiersz kontrastu pokazuje współczynnik WCAG 2.1 zarówno względem bieli, jak i czerni, oraz wynik APCA Lc (perspektywiczna miara WCAG 3). Plakietki pass/fail (AA, AAA) pojawiają się inline. Jeśli kolor jest poza gamutem sRGB, przycisk **Dopasuj do sRGB** zmniejsza chroma, aż się zmieści.
- 5
Kopiuj w natywnej składni swojej platformy
Każde z 9 pól formatu ma własny przycisk **Kopiuj** — jedno kliknięcie i wartość ląduje w schowku, a etykieta na chwilę zmienia się na „Skopiowano!”, aby było wiadomo. Pod selektorem sekcja **Skopiuj jako kod** generuje gotowe do wklejenia fragmenty dla pięciu platform: niestandardowa właściwość CSS, token `@theme` w Tailwind v4, literał `Color(red:green:blue:)` w SwiftUI, stała `Color(0xFF...)` w Jetpack Compose oraz `Color(0xFF...)` we Flutterze. Hash adresu URL (`#hex=...` lub `#oklch=...`) także się aktualizuje, więc możesz udostępnić aktywny link do dokładnego koloru.
Częste błędy w konwersji kolorów
Mylenie HSL z OKLCH
Obie przestrzenie dzielą ten sam cylindryczny kształt barwa / jasność / (saturation lub chroma), co sprawia, że na papierze wyglądają wymiennie. Nie są. L w HSL jest geometryczne — wyprowadzane z RGB przez uśrednianie maksymalnej i minimalnej wartości kanału — i osadza krzywą gamma sRGB. L w OKLCH jest percepcyjne, zakotwiczone w modelu OKLAB. Rampa HSL przy jednolitym L wygląda widocznie nierówno między barwami; rampa OKLCH przy jednolitym L pozostaje równa. Nie podstawiaj jednej za drugą w migracji systemu designu bez ponownego dostrojenia.
Zakładać, że paleta HSL jest percepcyjnie jednorodna: hsl(220 50% 30%) → hsl(220 50% 60%) → hsl(220 50% 90%) Na ekranie wyglądają na nierówno rozstawione.
Użyj OKLCH dla percepcyjnie równych ramp: oklch(0.30 0.10 220) → oklch(0.60 0.10 220) → oklch(0.90 0.10 220) Na ekranie wyglądają na równo rozstawione.
Zaufanie naiwnemu CMYK przy druku
Wyjście CMYK tutaj pochodzi ze standardowego podręcznikowego wzoru `K = 1 - max(R,G,B)` stosowanego do sRGB. To przydatna orientacyjna wartość, ale nie zamiennik prawdziwej konwersji. Drukarnie przepuszczają pliki przez profil ICC (US Web Coated SWOP v2, Fogra39, Japan Color 2011 itd.) dostrojony pod konkretną maszynę, farbę i papier. CMYK po konwersji ICC potrafi różnić się od naiwnego wzoru o 5–15% na kanał. Wyślij oryginalny HEX sRGB do drukarni i niech zrobi właściwą konwersję.
Wysłać nasze wyjście CMYK wprost na maszynę: hex #FF6347 → cmyk(0%, 61%, 72%, 0%) Wydrukowany wynik może wyjść błotnisty lub przesycony.
Wyślij oryginalny HEX do drukarni: hex #FF6347 → drukarnia robi konwersję ICC pod swoją maszynę Wydrukowany wynik dużo lepiej pasuje do koloru z ekranu.
Czytanie APCA Lc jako liczby zgodnej z WCAG 2
APCA Lc i współczynniki WCAG 2 to różne skale mierzące różne rzeczy. WCAG 2 daje współczynnik od 1:1 (brak kontrastu) do 21:1 (maksymalny kontrast), gdzie 4,5:1 to prawny próg AA dla tekstu treści. APCA daje Lc od 0 do ±108, gdzie znak wskazuje polaryzację (dodatni dla ciemnego tekstu na jasnym tle, ujemny dla jasnego na ciemnym). Lc 60 nie odwzorowuje się na WCAG 4,5:1; relacja jest nieliniowa i zależy od kierunku. Używaj obu miar obok siebie, nie jednej jako tłumaczenia drugiej.
Udawać, że Lc 60 = WCAG 4,5:1: APCA Lc 60 → „to zalicza AA” Współczynnik WCAG 2 dla tej samej pary może wynosić 3,8:1 (nie spełnia AA).
Sprawdź obie miary niezależnie: Współczynnik WCAG 2 ≥ 4,5:1 dla zgodności AA tekstu treści, ORAZ APCA |Lc| ≥ 75 dla realnej czytelności. Obie muszą się zaliczać, nie jedna zastępować drugą.
Używanie HSL do ciemniejszych odcieni w systemie designu
Generowanie rampy 50/100/200/.../900 przez krokowanie kanału L w HSL daje wizualnie nierówną rampę, bo L w HSL nie jest percepcyjne. Ciemne przystanki wyglądają zbyt ciemno, jasne zbyt jasno, a środkowe się kompresują. Projektanci naprawiają to ręcznym strojeniem każdego przystanku — wielogodzinne zadanie per kolor marki. OKLCH rozwiązuje problem konstrukcyjnie — równe kroki L wyglądają równo — więc rampa jest równa od razu.
Krokować L w HSL dla odcieni: hsl(220 50% 30%) / hsl(220 50% 60%) / hsl(220 50% 90%) 90% wygląda wymyte; 30% wygląda znacznie ciemniej niż odstęp do 60%.
Krokować L w OKLCH dla odcieni: oklch(0.30 0.10 220) / oklch(0.60 0.10 220) / oklch(0.90 0.10 220) Każdy krok wygląda jak ten sam wizualny odstęp.
Pomijanie kanału alfa przy kopiowaniu HEX
8-cyfrowy HEX (`#RRGGBBAA`) i 4-cyfrowy skrót (`#RGBA`) kodują przezroczystość w ostatniej parze. CSS obsługuje oba; starsze parsery (w tym niektóre starsze preprocesory CSS i narzędzia projektowe sprzed 2018) rozumieją tylko 6-cyfrowy HEX i po cichu ucinają alfa. Wynik: kolor, który miał być w 50% przezroczysty, renderuje się jako w pełni nieprzezroczysty. Zawsze sprawdź, czy docelowa składnia akceptuje 8-cyfrowy HEX, zanim skopiujesz wartość z kanałem alfa; dla starszych celów wróć do `rgba()`.
Skopiować 8-cyfrowy HEX do starszego parsera: #FF573380 → parser ucina → #FF5733 (bez alfa) 50% przezroczystość ginie po cichu.
Sprawdź, czy cel obsługuje 8-cyfrowy HEX, lub użyj rgba(): dla nowoczesnego CSS: #FF573380 (8-cyfrowy HEX) dla wsparcia legacy: rgba(255, 87, 51, 0.5) (zawsze obsługiwane) Jawna składnia alfa unika cichego ucinania.
Dopasowywanie do sRGB bez uwzględnienia Display P3
Dopasuj do sRGB to przydatna siatka bezpieczeństwa dla starszych kontekstów, ale stosowanie go bez wyboru niweczy szerokogamutowy wyświetlacz, pod który możliwe że projektujesz. Większość urządzeń Apple od 2017 renderuje Display P3 natywnie; wiele nowoczesnych urządzeń z Androidem i ekranów laptopów również. Szerokogamutowy kolor OKLCH, który przekracza sRGB, ale mieści się w P3, wygląda dramatycznie bardziej nasycony na sprzęcie P3 niż dopasowane przybliżenie sRGB. Najpierw sprawdź plakietkę gamutu P3; dopasowuj tylko wtedy, gdy celujesz w starsze konteksty tylko-sRGB.
Dopasowywać domyślnie każdy kolor OKLCH do sRGB: oklch(0.7 0.25 30) → dopasuj → oklch(0.7 0.18 30) Wyświetlacze P3 tracą 30%+ nasycenia bez powodu.
Sprawdź najpierw plakietkę Display P3: jeśli mieści się w P3: zachowaj szerokogamutową wartość, dodaj fallback sRGB przez @supports jeśli przekracza P3: wtedy dopasuj do sRGB Niech szerokogamutowy sprzęt robi swoje.
Kto korzysta z tego narzędzia
- Frontendowcy migrujący do tokenów OKLCH w Tailwind v4
- Tailwind v4 ustandaryzował OKLCH dla domyślnej palety w 2024 roku. Migracja starszego systemu designu opartego na HSL lub HEX oznacza konwersję setek kolorów marki do OKLCH. Wklej każdy HEX, skopiuj wyjście OKLCH, wrzuć do bloku `@theme`. Aktywne plakietki gamutu sygnalizują kolory, które przekraczają sRGB, więc można zdecydować, czy zachować szersza wartość gamutu dla wyświetlaczy Display P3.
- Projektanci przekładający kolory z Figmy na iOS / Android
- Figma eksportuje HEX domyślnie, ale iOS oczekuje literałów `Color(red:green:blue:)` w SwiftUI, a Android stałych `Color(0xFF...)` w Jetpack Compose. Wklej HEX z Figmy raz, skopiuj fragment SwiftUI dla inżyniera iOS i fragment Compose dla inżyniera Androida — oba już w dokładnej składni, jakiej oczekuje każda platforma, z oryginalnym HEX-em zachowanym w komentarzu dla śladu.
- Projektanci przygotowujący proofy druku (przybliżenie CMYK)
- Gdy kolor marki ma pojawić się na drukowanej wizytówce, przybliżenie CMYK daje szybkie oszacowanie do przekazania drukarni przed właściwą konwersją ICC. Wklej HEX marki, skopiuj wartości procentowe CMYK, wyślij do drukarni po szybką wycenę — a potem zaufaj konwersji ICC drukarni dla finalnego dopasowania koloru pod konkretną maszynę.
- Inżynierowie dostępności weryfikujący WCAG i APCA
- WCAG 2.1 jest dziś standardem regulacyjnym (ADA, EAA, Section 508); APCA Lc to proponowany następca w WCAG 3. Obie miary obok siebie pozwalają projektantowi sprawdzić, czy kolor tekstu treści osiąga 4,5:1 wg WCAG na białym tle, a potem zrobić sanity check, czy zalicza też APCA Lc 75, w jednym widoku — bez skakania między dwoma osobnymi kalkulatorami.
- Wykładowcy uczący koncepcji przestrzeni barw
- Jednoczesny widok dziewięciu pól sprawia, że relacje między przestrzeniami barw stają się widoczne. Wpisz wartość OKLCH, obserwuj, jak HSL dryfuje, ponieważ L oznacza co innego w każdej przestrzeni. Przeciągnij suwak barwy i patrz, jak HEX, RGB i CMYK się aktualizują. Pokaż plakietki gamutu robiące się czerwone, gdy chroma przekracza sRGB. Narzędzie samo w sobie jest demem do sali wykładowej dla kursu grafiki komputerowej lub HCI.
- Brand managerowie szukający najbliższego nazwanego koloru CSS
- Gdy materiał marketingowy mówi „akcent w kolorze pomidora”, a faktyczny HEX marki to `#FF6347`, pole Nazwany zwraca `tomato (dokładnie)`, ponieważ dokładnie tym jest `tomato` w specyfikacji CSS. Dla bliskich nietrafień pole zwraca najbliższy nazwany kolor z odległością ΔE w OKLAB — przydatne do dokumentacji, prozy i swobodnego nazywania kolorów.
- Webdeveloperzy konwertujący starsze palety HEX do OKLCH
- Starsza strona może mieć paletę marki 50 kolorów zdefiniowaną we właściwościach niestandardowych CSS jako kody HEX. Modernizacja do OKLCH pozwala zespołowi marki wyrazić te same rampy w przestrzeni percepcyjnie jednorodnej. Wklej każdy HEX, skopiuj wyjście OKLCH, podmień w definicjach zmiennych. Panel poniżej z jaśniejszymi/ciemniejszymi odcieniami weryfikuje, że wynikowa rampa jest wizualnie równa, jeszcze przed wdrożeniem.
- Maintainerzy open source dokumentujący tokeny designu
- Dokumentacja tokenów designu zwykle musi pokazać ten sam kolor w wielu składniach — HEX dla bloku kodu CSS, OKLCH dla tabeli specyfikacji, nazwany kolor dla wzmianek w prozie. Widok wielu pól jednocześnie pozwala maintainerowi skopiować każdy w jednym przejściu zamiast uruchamiać trzy oddzielne konwersje. Udostępnialny hash URL pozwala też kontrybutorom linkować do dokładnego koloru omawianego w zgłoszeniu GitHub.
Matematyka i algorytmy konwersji kolorów
- OKLCH jako wewnętrzne źródło prawdy
- Narzędzie trzyma kanoniczną wartość koloru wewnętrznie jako trójkę OKLCH. Każde edytowalne pole wyprowadza swoją wartość wyświetlaną z tej trójki przy każdym naciśnięciu klawisza; każda edycja użytkownika aktualizuje trójkę najpierw, a potem wyzwala ponowny render pozostałych ośmiu pól. To eliminuje dryf float na każdym kroku, który nęka konwertery używające HSL lub sRGB jako osi obrotu. Wybór OKLCH zamiast OKLAB jest celowy — forma biegunowa zachowuje barwę jako stabilną oś, więc przeciąganie suwaka barwy nie przechodzi przypadkiem przez szarość. Zgodnie z pracą Björna Ottossona z 2020, jednorodność percepcyjna OKLAB to najsilniejszy argument za traktowaniem go jako lingua franca nowoczesnej matematyki kolorów.
- Źródła macierzy (W3C CSS Color 4 + Ottosson 2020)
- Każda macierz konwersji w kodzie ma cytowanie pierwotnego źródła. Fragmentaryczna funkcja gamma sRGB ↔ linear-sRGB pochodzi z W3C CSS Color 4 §11.2 (`v <= 0.04045 ? v/12.92 : ((v+0.055)/1.055)^2.4`). Macierz 3×3 linear-sRGB ↔ CIE XYZ D65 to CSS Color 4 §15.1. Macierz XYZ D65 ↔ LMS oraz krok pierwiastkowania sześciennego OKLAB pochodzą z referencyjnej implementacji Ottossona z `https://bottosson.github.io/posts/oklab/`, dokładnie tak jak opublikowane. Żadne macierze nie są ponownie liczone ani wyprowadzane — kopiowanie ich wprost utrzymuje wyjście identyczne z wektorami referencyjnymi specyfikacji.
- Naiwny wzór CMYK i zastrzeżenie ICC
- Nasze wyjście CMYK używa standardowego wzoru z podręczników: `K = 1 - max(R, G, B); C = (1-R-K)/(1-K); M = (1-G-K)/(1-K); Y = (1-B-K)/(1-K)`, operującego na znormalizowanych wartościach sRGB. To celowe przybliżenie. Prawdziwa dokładność druku wymaga konwersji przez profil ICC pod konkretną maszynę, farbę (np. US Web Coated SWOP v2, Fogra39, Japan Color 2011) i papier, co potrafi przesunąć kanały o 5–15%. Pole CMYK opatrzono widocznym zastrzeżeniem, aby użytkownicy nie wysyłali naszych wartości wprost na maszynę. Traktuj wyjście jak sanity check do wycen, a nie materiał produkcyjny.
- Wykrywanie gamutu przez sprawdzenie zakresu kanałów
- Kolor jest uważany za mieszczący się w gamucie docelowej przestrzeni (sRGB, Display P3, Rec2020), jeśli każdy kanał po konwersji do podstawowych tej przestrzeni mieści się w `[-ε, 1 + ε]`, gdzie `ε = 1e-7` pochłania szum precyzji float wokół granic. Plakietka gamutu każdej przestrzeni robi się czerwona, gdy dowolny kanał wychodzi poza zakres. To wyłapuje typowy przypadek — szerokogamutowy kolor OKLCH typu `oklch(0.7 0.4 30)` raportuje wyjście poza sRGB, ale wewnątrz P3, mówiąc ci, które wyświetlacze poprawnie go zrenderują. Sprawdzenie działa przy każdym naciśnięciu klawisza.
- Algorytm dopasowania przez redukcję chromy
- Dopasuj do sRGB używa wyszukiwania binarnego po osi chromy: utrzymuje L i H stałe przy bieżących wartościach, szuka C ∈ [0, currentC] dla największego C, którego konwersja sRGB pozostaje w gamucie. Wyszukiwanie wykonuje maksymalnie 30 iteracji (precyzja ~10⁻⁹), co z naddatkiem wystarcza do wizualnej dokładności. To pasuje do informacyjnego algorytmu mapowania gamutu opisanego w CSS Color 4 §13 — zachowanie jasności i barwy przy redukcji tylko chromy utrzymuje dopasowany kolor w rozpoznawalnie tej samej rodzinie barw. Nie przycinamy kanałów RGB bezpośrednio, ponieważ to wyraźnie zniekształca barwę (szczególnie w niebieskich).
- Macierze CVD Brettela + Machado
- Symulacja ślepoty barw używa dwóch opublikowanych rodzin macierzy. Trzy dichromacje — protanopia, deuteranopia, tritanopia — używają macierzy Brettela-Viénota-Mollona 1997 działających w linear-RGB (najpierw gamma-decode, potem macierz, potem ponowne gamma-encode). Trzy anomalne trichromacje — protanomalia, deuteranomalia, tritanomalia — używają macierzy Machado-Oliveiry-Fernandesa 2009 z natężeniem 0,66, co odpowiada typowemu pacjentowi z anomalną trichromacją. Achromatopsja i częściowa achromatomalia używają wag luminancji rec601 (`0.299R + 0.587G + 0.114B`) do projekcji w skali szarości. Wszystkie osiem symulacji renderuje się przy każdej zmianie koloru.
- WCAG 2 a APCA: której używać i kiedy
- WCAG 2.x (aktualny standard) liczy symetryczny współczynnik kontrastu z luminancji względnej: `(L1 + 0.05) / (L2 + 0.05)`, cel 4,5:1 dla zwykłego tekstu treści i 7:1 dla AAA. To prawny próg zgodności dla audytów dostępności w 2026. APCA (Accessible Perceptual Contrast Algorithm) to proponowany następca w WCAG 3 — wrażliwy na polaryzację (jasny-na-ciemnym ocenia inaczej niż ciemny-na-jasnym), lepiej skorelowany z postrzeganą czytelnością, cel `|Lc| ≥ 75` dla tekstu treści. Obie miary w jednym wierszu pozwalają projektantowi spełnić WCAG 2 dla zgodności i APCA dla realnej czytelności bez skakania między dwoma osobnymi kalkulatorami.
Najlepsze praktyki konwersji kolorów
- Preferuj OKLCH dla tokenów systemu designu; HEX dla legacy
- Dla każdego nowego systemu designu wydawanego w 2025 i później definiuj kolory marki oraz rampy palet w OKLCH. Oś L daje percepcyjnie równe rampy automatycznie; oś chromy potrafi adresować szerokogamutowe kolory, których HEX zakodować nie potrafi. Zachowaj fallback HEX dla starszych przeglądarek przez `@supports not (color: oklch(0 0 0))` albo PostCSS w build-time, ale niech OKLCH będzie wartością kanoniczną w magazynie tokenów. Starsze systemy z tysiącami istniejących zmiennych HEX mogą zostać przy HEX-ie do planowanej migracji — nie rusz dla samego ruszenia.
- Traktuj wyjście CMYK jako przybliżenie i potwierdź z drukarnią
- Liczby CMYK, które narzędzie pokazuje, to naiwny wzór oparty na sRGB, nie konwersja przez profil ICC. Używaj ich do orientacyjnych wycen i wewnętrznych kompozycji. Przed prawdziwym drukiem wyślij oryginalny HEX (nie przybliżenie CMYK) do drukarni i niech wykona własną konwersję ICC pod konkretną maszynę, farbę i papier. Przesunięcie kanałów o 5–15% z właściwej konwersji potrafi łatwo zmienić ostrą czerwień w błotnistą pomarańcz, jeśli przybliżenie zostanie wysłane wprost.
- Używaj APCA Lc do dostępności perspektywicznej
- WCAG 2.x pozostanie regulacyjnym progiem przez kilka kolejnych lat, ale APCA to kierunek, w którym idzie standard. Dla nowych designów osiągaj `|Lc| ≥ 75` dla tekstu treści i `|Lc| ≥ 60` dla dużego tekstu obok progów WCAG 2.1. APCA wyłapuje problemy z czytelnością, których symetryczny współczynnik WCAG 2 nie widzi — szczególnie cienki tekst na jasnym tle, gdzie współczynnik WCAG wygląda dobrze, ale tekst faktycznie znika w normalnej odległości czytania.
- Przepuszczaj szerokogamutowe kolory przez sprawdzenie gamutu Display P3
- Jeśli celujesz w nowoczesny sprzęt Apple (iPhone, iPad, MacBook od 2017+) albo wysyłasz treść świadomą HDR, definiuj kolory marki w OKLCH i używaj plakietki Display P3, aby zweryfikować, że mieszczą się w P3, nawet jeśli przekraczają sRGB. Szersze gamutowo kolory wyglądają zauważalnie bardziej nasycone na wyświetlaczach P3 i degradują się łagodnie przez kompresję chromy stosowaną przez przeglądarkę na ekranach tylko-sRGB. Nie dopasowuj zawczasu do sRGB, jeśli nie wiesz, że cała twoja publiczność jest na starszych wyświetlaczach.
- Wybieraj percepcyjnie równe odcienie przez tony OKLCH
- Gdy generujesz rampę 50/100/200/.../900 dla koloru marki, użyj panelu Tony: krokuje L o równe wielkości przy utrzymaniu stałych C i H. Wynik to percepcyjnie równa rampa, gdzie wizualny odstęp między 400 a 500 wygląda identycznie jak odstęp między 500 a 600. Ręczne dostrajanie rampy HSL pod tę samą równość to wielogodzinne zadanie na każdy kolor; OKLCH daje to za darmo.
- Używaj kroplomierza oszczędnie do dopasowywania kolorów między kartami
- API EyeDropper (tylko w Chromium od 2026) pozwala kliknąć dowolne miejsce na ekranie — także poza przeglądarką — aby pobrać kolor tego piksela. Przydatne do dopasowania koloru ze zrzutu ekranu, klatki filmu albo UI innej aplikacji. Traktuj wynik jako punkt wyjścia, nie wartość finalną — renderowanie ekranu stosuje zarządzanie kolorem, które może różnić się od pliku źródłowego. Dla kanonicznych kolorów marki zawsze pobieraj HEX ze źródła designu (Figma, Sketch, PDF z księgą znaku), a nie ze zrzutu ekranu.
- Zakładkuj URL-e z `#hex=...` dla udostępnialnych decyzji o palecie
- Bieżący kolor koduje się w hashu URL jako `#hex=...` albo `#oklch=...` automatycznie. Skopiuj URL, wklej w wątek Slacka albo zgłoszenie GitHub, a każdy, kto go otworzy, ląduje na dokładnie tym samym kolorze. Przydatne w wątkach design review, gdzie „niebieski marki” musi oznaczać jedną konkretną trójkę OKLCH. Hash aktualizuje się przy każdej zmianie, więc URL w pasku adresu to zawsze aktywny bieżący kolor — dodaj zakładkę, aby wrócić do konkretnej palety później.
Najczęściej zadawane pytania
Jak skonwertować kod HEX na RGB?
Czy HEX to to samo co RGB?
Jak czytać kod koloru HEX?
Jaki jest wzór konwersji HEX na RGB?
Dlaczego używać HEX zamiast RGB?
Czy kody HEX mogą zawierać kanał alfa / przezroczystość?
Ile kolorów może reprezentować HEX?
Czym jest kolor OKLCH?
Czy OKLCH jest lepszy od HSL?
Które przeglądarki obsługują oklch()?
Dlaczego używać OKLCH w Tailwind v4?
Czy OKLCH jest percepcyjnie jednorodny?
Jak czytać wartość OKLCH?
Jaka jest różnica między gamutem a przestrzenią barw?
Dlaczego mój kolor OKLCH jest poza gamutem sRGB?
Używać WCAG 2 czy APCA do kontrastu?
Jaka jest różnica między HSV a HWB?
Powiązane narzędzia
Zobacz wszystkie narzędzia →Konwerter systemów liczbowych — binary, hex, decimal i octal
Narzędzia konwersji
Konwertuj między systemami binarnym, szesnastkowym, dziesiętnym i ósemkowym (2–36) w czasie rzeczywistym. Bezpłatnie i prywatnie — w przeglądarce.
Konwerter HEX na CMYK
Narzędzia konwersji
Konwertuj kolory HEX na CMYK w przeglądarce. Naiwne przybliżenie oparte na sRGB do podglądu druku. Bezpłatny, bez rejestracji, kolory zostają lokalnie.
Konwerter HEX na HSL
Narzędzia konwersji
Konwertuj dowolny kolor HEX na HSL w przeglądarce — obsługa 3-, 6- i 8-cyfrowego HEX z kanałem alfa. Bezpłatny, natychmiastowy, bez rejestracji, kolory nigdy nie opuszczają strony.
Konwerter HEX na OKLCH
Narzędzia konwersji
Konwertuj HEX na OKLCH pod tokeny projektowe Tailwind v4. Na żywo, percepcyjnie jednorodne wyjście z ostrzeżeniami o gamucie Display P3. Darmowy, tylko w przeglądarce.
Konwerter HEX na RGB
Narzędzia konwersji
Konwertuj dowolny kod HEX na RGB w przeglądarce — obsługa 3-, 6- i 8-cyfrowego HEX z kanałem alfa. Bezpłatny, natychmiastowy, bez rejestracji, kolory nigdy nie opuszczają strony.
Kompresor obrazów online — JPEG, PNG i WebP
Narzędzia konwersji
Kompresja JPEG, PNG i WebP nawet o 80% — w przeglądarce, bez przesyłania na serwer. Wsadowo do 20 obrazów, porównanie przed i po. Prywatnie.