Skip to content

Konwerter RGB na HEX

Konwertuj RGB na HEX w przeglądarce — obsługa liczb całkowitych, procentów oraz kanału alfa w rgba. Bezpłatny, natychmiastowy, bez rejestracji, kolory nigdy nie opuszczają strony.

Bez śledzenia Działa w przeglądarce Bezpłatne
Cała konwersja kolorów odbywa się lokalnie w przeglądarce. Żadne dane nie są wysyłane na serwer.
Gamut: sRGB Display P3 Rec2020
Kontrast względem:
AA AA-Lg AAA AAA-Lg · APCA Lc
Symulacja ślepoty barw (8 typów)
Protanopia (ślepota na czerwień)
Deuteranopia (ślepota na zieleń)
Tritanopia (ślepota na niebieski)
Achromatopsja (całkowita)
Protanomalia (osłabiona czerwień)
Deuteranomalia (osłabiona zieleń)
Tritanomalia (osłabiony niebieski)
Achromatomalia (częściowa)
Jaśniejsze odcienie / Ciemniejsze odcienie / Tony / Harmonie

Jaśniejsze odcienie

Ciemniejsze odcienie

Tony

Harmonie

Skopiuj jako kod
Najczęstsze kolory — słownik
Zrecenzowane pod kątem zgodności z CSS Color 4, wsparcia wejścia RGB w postaci liczb całkowitych + procentów + alfy, poprawności emisji 8-cyfrowego HEX z kanałem alfa oraz dokładności bitowej konwersji w obie strony między RGB a HEX w zakresie 0–255. — Zespół inżynierów Go Tools · May 27, 2026

Czym jest konwerter RGB na HEX?

Konwerter RGB na HEX to małe narzędzie, które zamienia trzy liczby całkowite kanałów 0–255 (`rgb(255 87 51)`) na 6-znakowy kod HEX kodujący ten sam kolor (`#FF5733`). RGB i HEX to dwa formaty, wokół których budowano każdy webowy arkusz stylów, każde narzędzie projektowe i każdy potok pikseli obrazu od końca lat 90., a konwersja między nimi to najczęstsza operacja w narzędziach do kolorów — w parze z kierunkiem odwrotnym, ta dokładna transformacja działa miliony razy dziennie w każdej wtyczce Figmy, preprocesorze CSS, buildzie tokenów designu i UI selektora kolorów w sieci. RGB to format adresowany kanałami, jakiego natywnie używają API sprzętowe, wywołania rysowania na canvasie, manipulacja buforem obrazu, atrybuty kolorów OpenGL i większość SDK graficznych — trzy oddzielne liczby całkowite 0–255, które mapują się bezpośrednio na czerwone, zielone i niebieskie subpiksele LCD lub luminofory CRT. HEX to zwięzły format „kopiuj-wklej”, jakiego Figma, Sketch, Photoshop i każdy eksportowany z guidelines marki PDF oczekują na wyjściu — 6-znakowy ciąg w systemie szesnastkowym, który wygodnie mieści się w niestandardowej właściwości CSS i czyta się na pierwszy rzut oka, gdy oczy nauczą się wzorów. Konwersja między nimi jest mechaniczna: skonwertuj liczbę całkowitą każdego kanału na 2-cyfrową parę w systemie szesnastkowym i połącz z wiodącym `#`. To narzędzie wykonuje konwersję na żywo w trakcie pisania, bez przycisku „Konwertuj”, który trzeba klikać, i pokazuje też każdy inny popularny format koloru (HSL, OKLCH, OKLAB, HSV, HWB, CMYK plus 148 nazwanych kolorów CSS) obok wyjścia HEX i bezpłatnie.

**Sam format HEX zasługuje na bliższe spojrzenie.** Standardowy CSS HEX występuje w czterech legalnych kształtach. Kanoniczna 6-cyfrowa forma `#RRGGBB` pakuje trzy 8-bitowe kanały w 6 cyfr szesnastkowych — łącznie 16 777 216 kolorów (256³). Skrót 3-cyfrowy `#RGB` to forma skompresowana, w której każda cyfra jest powielana, aby utworzyć 6-cyfrowy odpowiednik: `#F73` rozwija się do `#FF7733`, *nie* `#000F73` (to jedna z najczęściej mylonych zasad w składni CSS color). Forma 8-cyfrowa z kanałem alfa `#RRGGBBAA` dołącza 2-cyfrową parę alfa na skali 0–`FF`, gdzie `00` to pełna przezroczystość, a `FF` to pełne krycie. Skrót 4-cyfrowy z kanałem alfa `#RGBA` odzwierciedla skrót 3-cyfrowy przez powielenie każdej cyfry, włącznie z cyfrą alfa. HEX jest niezależny od wielkości liter — `#ff5733` i `#FF5733` parsują się identycznie, chociaż większość guidelines marki wybiera konwencję wielkości liter i się jej trzyma. Wybór systemu szesnastkowego jest wygodny, ponieważ jedna cyfra HEX = nibble = 4 bity, dwie cyfry = bajt = 0–255, więc pojedyncza 2-cyfrowa para mapuje się czysto na jeden 8-bitowy kanał bez marnowania bitów na dopełnianie.

Matematyka konwersji działa czysto w obu kierunkach. **RGB na HEX**: dla każdego kanału wywołaj `value.toString(16).padStart(2, '0')`, aby otrzymać 2-cyfrową parę HEX (`padStart` ma znaczenie — bez niego wartość kanału 5 serializowałaby się jako `'5'` zamiast `'05'`, dając nieprawidłowy HEX), a następnie połącz. Dla RGB z kanałem alfa (`rgb(R G B / A)` albo `rgba(R, G, B, A)`) pomnóż liczbę zmiennoprzecinkową alfa 0–1 przez 255, zaokrąglij do najbliższej liczby całkowitej, zakoduj w HEX jako 4. parę i wyemituj formę 8-cyfrową. **HEX na RGB** to operacja odwrotna: sparsuj 6-cyfrowy HEX `#RRGGBB` jako trzy 2-cyfrowe liczby w systemie szesnastkowym przez `parseInt(hex.slice(1, 3), 16)` itd. Oba kierunki są dokładne bitowo: 16² = 256, co dokładnie odpowiada zakresowi 0–255 bajta, który zajmuje każdy kanał, więc konwersja w obie strony RGB → HEX → RGB daje oryginalne liczby całkowite dosłownie, bez dryfu zmiennoprzecinkowego.

**Dlaczego HEX zamiast RGB w CSS?** Trzy powody. HEX jest krótszy — `#FF5733` to 7 znaków w porównaniu z `rgb(255, 87, 51)` mającym 16 znaków, znacząca różnica, gdy upakowuje się to w niestandardowej właściwości CSS albo obiekcie konfiguracji Tailwinda. HEX nie ma błędów z białymi znakami — minifikatory CSS, serializatory JSON i narzędzia wiersza poleceń obsługują 7-znakowy ciąg czysto, bez martwienia się o dopasowanie nawiasów czy escapowanie przecinków. A HEX to format, którym natywnie posługuje się cały ekosystem narzędzi projektowych — panel kolorów Figmy, próbki w Sketchu, selektor kolorów w Photoshopie, każdy eksportowany z guidelines marki PDF, każde wskazanie koloru w shotcie z Dribbble — wszystkie eksportują HEX domyślnie. Ścieżka „kopiuj-wklej” od projektanta do developera ma kształt HEX-a, dlatego konwersja RGB → HEX jest tak częsta: developerzy otrzymują RGB z narzędzia nieprojektowego (wywołanie canvasu, kroplomierz na zrzucie ekranu, czujnik sprzętowy) i muszą zamienić je na formę HEX, której oczekuje reszta ich stosu.

Przepływ RGB → HEX tego narzędzia to jeden z pięciu kierunków rodziny, 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 RGB i HEX. Jednokierunkowe odgałęzienia celują w konkretne intencje wyszukiwania w Google: odwrotny konwerter HEX na RGB dla kierunku przeciwnego (gdy bierzesz HEX z Figmy i wyciągasz z niego liczby całkowite 0–255), konwerter HEX na HSL dla starszej kognitywno-projektowej przestrzeni, 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 wartości RGB nigdy nie są wysyłane, nigdy logowane, a w trakcie pisania nie wysyłane są żadne zapytania sieciowe. Sprawdź w DevTools.

// Serialize {r, g, b, alpha} → canonical hex string
// Emits 6-digit #RRGGBB when alpha === 1, 8-digit #RRGGBBAA otherwise.
function formatHex({ r, g, b, alpha = 1 }) {
  const pair = (v) => Math.round(v).toString(16).padStart(2, '0').toUpperCase();
  const rgb = pair(r) + pair(g) + pair(b);
  if (alpha >= 1) return `#${rgb}`;
  const a = pair(alpha * 255);
  return `#${rgb}${a}`;
}

console.log(formatHex({ r: 255, g: 87, b: 51 }));              // '#FF5733'
console.log(formatHex({ r: 59, g: 130, b: 246 }));             // '#3B82F6'
console.log(formatHex({ r: 255, g: 87, b: 51, alpha: 0.5 })); // '#FF573380'
console.log(formatHex({ r: 5, g: 0, b: 0 }));                  // '#050000' — padStart matters

Kluczowe funkcje

Wszystkie kształty wejściowe RGB parsowane identycznie

Nowoczesne z rozdziałem spacjami `rgb(255 87 51)`, starsze z przecinkami `rgb(255, 87, 51)`, kanały procentowe `rgb(100% 34% 20%)`, nowoczesna alfa przez ukośnik `rgb(255 87 51 / 0.5)` oraz starsza `rgba(255, 87, 51, 0.5)` — wszystkie parsują się identycznie. Parser normalizuje każdy kształt wejściowy do tej samej wewnętrznej krotki RGB przed serializacją HEX, więc możesz wkleić dowolną formę produkowaną przez twoje źródło — krotkę liczb całkowitych z Photoshopa, `rgba()` z arkusza stylów, krotkę z Canvas API — bez ręcznego przeformatowania.

Wyjście HEX w wielkich literach, forma 6- lub 8-cyfrowa

Pole HEX pokazuje wartość jako `#FF5733` dla kolorów nieprzezroczystych i `#FF573380` dla kolorów z kanałem alfa (forma 8-cyfrowa). Wielkie litery domyślnie dla spójności z większością guidelines marki; jedna mechaniczna zamiana odwraca do małych liter, jeśli twój przewodnik stylu tego wymaga. Obie formy są prawidłowym CSS i działają we wszystkich aktualnie aktualizowanych przeglądarkach. Forma 8-cyfrowa z kanałem alfa weszła do wszystkich głównych przeglądarek w 2018 roku; dla fallbacku IE 11 starsza forma `rgba()` jest nadal w polu RGB.

Dokładność bitowa, bez dryfu zmiennoprzecinkowego

RGB → HEX to matematyka liczb całkowitych przekształcanych w ciągi znaków: `value.toString(16).padStart(2, '0')` daje kanoniczną 2-cyfrową parę HEX bez udziału liczb zmiennoprzecinkowych. Kierunek odwrotny (`parseInt(pair, 16)`) jest równie dokładny. Konwersja w obie strony RGB → HEX → RGB → HEX daje oryginalne wejście dosłownie, bez końca. Wewnętrzne źródło prawdy w OKLCH oznacza, że nawet dłuższy łańcuch RGB → HSL → OKLAB → HEX pozostaje stabilny bitowo, czego starsze konwertery trasujące przez HSL nie gwarantują.

Kanał alfa kodowany czysto

RGB z kanałem alfa (`rgb(255 87 51 / 0.5)` albo `rgba(255, 87, 51, 0.5)`) emituje formę 8-cyfrową HEX (`#FF573380`) automatycznie. Liczba zmiennoprzecinkowa alfa mnoży się przez 255 i zaokrągla do najbliższej liczby całkowitej przed kodowaniem w HEX: `0,5 × 255 = 128 = 0x80`. Wyjście wraca do 6-cyfrowego HEX, gdy alfa równa się 1, aby uniknąć wycieku końcowych par `FF` do arkuszy stylów. Przydatne przy migracji tokenów designu, gdzie wartości alfa w `rgba()` muszą przejść w obie strony do nowoczesnej formy 8-cyfrowego HEX.

Osiem innych formatów widocznych jednocześnie

Ten sam RGB, który wklejasz, napędza też HSL, HSV, HWB, OKLCH, OKLAB, CMYK oraz najbliższy nazwany kolor CSS — wszystko widoczne na pierwszy rzut oka na tej samej stronie. Nigdy nie jesteś zamknięty tylko w RGB → HEX. Jeśli ktoś z zespołu potrzebuje trójki OKLCH na token Tailwind v4, najbliższego nazwanego koloru do prozy w dokumentacji albo przybliżenia CMYK do wyceny druku, wartości są już tam ze swoimi przyciskami Kopiuj.

Wbudowany kontrast WCAG + APCA

Przepuść krotkę RGB, a wiersz kontrastu od razu oceni ją względem bieli i czerni za pomocą WCAG 2.1 (próg regulacyjny: 4,5:1 dla tekstu treści, 7:1 dla AAA) oraz APCA Lc (proponowany następca w WCAG 3: cel `|Lc| ≥ 75` dla tekstu treści). Przydatne, gdy właśnie skonwertowałeś krotkę RGB na HEX i chcesz zweryfikować, czy wynikowy kolor marki faktycznie czyta się jako kolor tekstu treści, zanim go wdrożysz.

Skopiuj jako CSS / Tailwind v4 / SwiftUI / Compose / Flutter

Pod selektorem sekcja Skopiuj jako kod zamienia bieżący kolor w gotowe do wklejenia fragmenty dla pięciu platform: niestandardowa właściwość CSS (`--color-brand: #FF5733`), token `@theme` Tailwind v4, literał SwiftUI `Color(red:green:blue:)`, stała Jetpack Compose `Color(0xFFFF5733)`, Flutter `Color(0xFFFF5733)`. Dokładna składnia, której oczekuje każda platforma, gotowa do wrzucenia w katalog assetów iOS, plik motywu Androida albo `ThemeData` Fluttera.

100% w przeglądarce — bez wysyłki, bez śledzenia

Całe parsowanie RGB, serializacja HEX, ocena kontrastu i generowanie palet działa lokalnie w przeglądarce. Twoje wartości RGB nigdy nie są przesyłane, nigdy logowane na żadnym serwerze, nigdy analizowane. Zero zapytań sieciowych w trakcie pisania — sprawdź w DevTools. Bezpieczne dla niezapowiedzianych palet marki, wewnętrznych tokenów designu, szkiców makiet pod NDA i każdej innej poufnej pracy z kolorem.

Hash adresu URL z udostępnianiem dokładnego koloru

Bieżący kolor koduje się w hashu adresu URL jako `#hex=ff5733` automatycznie przy każdej zmianie. Skopiuj URL, wklej do wątku na Slacku albo do zgłoszenia na GitHubie, a każdy, kto go otworzy, ląduje na tej samej krotce RGB z tym samym wynikiem HEX. Hash żyje wyłącznie w pasku adresu i nigdy nie jest przesyłany na serwer (przeglądarki nie dołączają fragmentów URL do zapytań HTTP), więc nawet udostępniony link nie wycieka koloru do żadnej strony trzeciej.

Alternatywy dla konwertera RGB na HEX

RapidTables RGB to Hex

narzędzie webowe

Domyślny wynik Google dla „rgb to hex” — pojedynczy jednokierunkowy formularz z trzema polami liczb RGB na wejściu i HEX na wyjściu, bez innych formatów widocznych. Przydatne do jednorazowych wyszukiwań, gdy ktoś przychodzi z wyszukiwarki. Brakuje OKLCH, sprawdzania kontrastu, wykrywania gamutu, obsługi kanału alfa i widoku wielu formatów jednocześnie. To narzędzie wygrywa w każdym aspekcie, z wyjątkiem najprostszego przypadku pojedynczej konwersji.

ColorHexa

narzędzie webowe

Długo działające strony per-kolor z głębokimi metadanymi SEO: konwersje, palety, harmonie, gradienty dla każdego pytanego RGB. Interfejs jest przestarzały (początek lat 2010), brak wsparcia OKLCH, brak kontrastu APCA, brak obsługi szerokiego gamutu. Mocne na potrzeby odkrywania konkretnego koloru przez Google; słabsze do aktywnych przepływów konwersji, gdzie pisanie w zunifikowanym UX pól jest szybsze.

Kalkulator RGB W3Schools

narzędzie webowe

Przyjazny początkującym przełącznik HEX/RGB/HSL na stronie nastawionej na nauczanie, wszechobecny w wynikach wyszukiwania. Brak OKLCH, brak obsługi kanału alfa poza rgba, brak zaawansowanych funkcji. Przydatny jako referencja obok treści edukacyjnych W3Schools. To narzędzie wygrywa w każdym innym aspekcie: więcej formatów, matematyka percepcyjna, funkcje gamut + kontrast + CVD, nowoczesny eksport kodu dla Tailwind v4 / SwiftUI / Compose / Flutter.

Selektor kolorów w DevTools przeglądarki

wbudowana funkcja przeglądarki

Chrome, Firefox i Safari DevTools dostarczają selektor kolorów, który konwertuje RGB na HEX inline, gdy klikniesz próbkę koloru w panelu CSS. Bezpłatny, bez instalacji, zawsze dostępny. Brakuje OKLCH, brakuje udostępnialnych adresów URL, brakuje eksportu kodu dla platform spoza weba (SwiftUI, Compose). Sięgaj po DevTools, gdy i tak debugujesz CSS; sięgaj po to narzędzie, gdy potrzebujesz wyjścia cross-platform.

macOS Digital Color Meter

natywna aplikacja macOS

Dołączana do każdego Maca od czasów OS X — najedź na dowolny piksel i odczytaj wartości RGB / HEX / liniowe. Świetne do próbkowania kolorów pikseli z dowolnej aplikacji na ekranie. Nie akceptuje wklejonych trójek RGB do konwersji; to próbnik ekranu, nie konwerter. Użyj przycisku EyeDropper w selektorze tego narzędzia (tylko przeglądarki Chromium) dla tej samej funkcji próbkowania ekranu wewnątrz przeglądarki.

ConvertingColors

narzędzie webowe

Strony per-kolor z metadanymi SEO obejmujące wiele przestrzeni (HEX, RGB, HSL, HSV, CMYK, XYZ, CIELAB). Brakuje nowoczesnego wsparcia OKLCH i UX edycji w zunifikowanych polach. Strony z automatycznie generowaną treścią dają wrażenie content-farmy, ale dane konwersji są poprawne. Dobre do grzebania w metadanych pojedynczego koloru przez Google; to narzędzie jest szybsze do aktywnych przepływów pracy.

Przykłady konwersji RGB na HEX

Wejście z CSS rgb() → HEX do SwiftUI

rgb(255 87 51)

Wynik HEX: `#FF5733`. Klasyczny przepływ cross-platform — arkusz stylów CSS deklaruje kolor marki w nowoczesnej składni `rgb()`, zespół iOS potrzebuje HEX-a, aby wrzucić go w rozszerzenie SwiftUI `Color(hex:)` albo w katalog assetów. Każdy kanał konwertuje się niezależnie: `255 → FF`, `87 → 57`, `51 → 33`, połączone z wiodącym `#`. Ten sam HEX wkleja się też czysto w Android Compose, Flutter i Figmę — HEX pozostaje lingua franca dla przekazania koloru cross-platform w 2026.

Liczby całkowite RGB z Photoshopa projektanta → zmienna CSS

rgb(59 130 246)

Wynik HEX: `#3B82F6`. Selektor Color w Adobe pokazuje RGB jako trzy liczby całkowite 0–255 (w Photoshopie, Illustratorze i InDesignie); zespół frontendu potrzebuje HEX-a, aby wrzucić go w niestandardową właściwość CSS typu `--color-brand: #3B82F6`. Ta konkretna trójka to `blue-500` z Tailwinda — `59 = 0x3B`, `130 = 0x82`, `246 = 0xF6`. Wklejenie jej tutaj raz daje odpowiadający HEX plus trójkę OKLCH do migracji tokenów Tailwind v4, w jednym kroku.

RGB z kanałem alfa → 8-cyfrowy HEX

rgb(255 87 51 / 0.5)

Wynik HEX: `#FF573380`. Liczba zmiennoprzecinkowa alfa mnoży się przez 255 (`0,5 × 255 = 127,5`, zaokrąglone do 128), potem konwertuje na 2-cyfrową parę HEX (`128 = 0x80`) dołączoną po trójce HEX RGB. 8-cyfrowy HEX z kanałem alfa wszedł natywnie do wszystkich aktualnie aktualizowanych przeglądarek w 2018 roku (Chrome 62, Firefox 49, Safari 9.1, Edge 79). Dla wsparcia przeglądarek sprzed 2018 starsza forma `rgba(255, 87, 51, 0.5)` jest nadal dostępna; konwersja jest mechaniczna i zachowuje dokładnie ten sam kolor.

Procentowe kanały RGB → HEX

rgb(100% 50% 0%)

Wynik HEX: `#FF8000`. CSS Color 4 dopuszcza kanały procentowe — każdy procent mapuje się na zakres 0–255 przez `wartość × 255 / 100`, a następnie zaokrągla do najbliższej liczby całkowitej (`50% × 255 = 127,5 → 128 = 0x80`). Forma procentowa i forma liczb całkowitych są wymienne i dają identyczne wyjście HEX. Składnia procentowa bywa preferowana w ręcznie pisanych arkuszach stylów ze względu na czytelność, gdy proporcje kanałów liczą się bardziej niż surowe wartości całkowite; wyjście HEX normalizuje oba wejścia do tego samego kanonicznego 6-cyfrowego ciągu.

Najczęstsze konwersje RGB → HEX

Tabela referencyjna 10 najczęściej konwertowanych krotek RGB i ich odpowiedników HEX — czyste podstawowe, czyste wtórne oraz dwa rzeczywiste kolory marki z palety Tailwind.

Czarny

rgb(0 0 0) #000000

Czysta czerń. Wszystkie trzy kanały na zerze — brak emitowanego światła. Kod HEX (#000000).

rgb(0 0 0) #000000

Czysta czerń na ekranie rzadko jest właściwym wyborem projektowym — wypróbuj `#111` albo jasność OKLCH 0,1–0,15 dla łagodniejszego tekstu treści.

Potrzebujesz zamiast tego OKLCH? Wypróbuj dedykowany konwerter HEX na OKLCH dla percepcyjnie jednorodnego wyjścia.

Biały

rgb(255 255 255) #FFFFFF

Czysta biel. Wszystkie trzy kanały na maksymalnej wartości (255). Najjaśniejszy kolor w sRGB.

rgb(255 255 255) #FFFFFF

Czyste białe tła mogą powodować zmęczenie oczu w ciemnym otoczeniu — rozważ `#fafafa` albo OKLCH 0,98 jako cieplejszą alternatywę.

Potrzebujesz zamiast tego OKLCH? Wypróbuj dedykowany konwerter HEX na OKLCH dla percepcyjnie jednorodnego wyjścia.

Czerwony

rgb(255 0 0) #FF0000

Czysta czerwień. Kanał R na maksimum, G i B na zerze. Pierwsza z trzech podstawowych barw sRGB.

rgb(255 0 0) #FF0000

Czysta czerwień jest mocno nasycona i rzadko pasuje do palety marki — większość „czerwieni” marki leży bliżej #DC2626 lub #E53935.

Potrzebujesz zamiast tego OKLCH? Wypróbuj dedykowany konwerter HEX na OKLCH dla percepcyjnie jednorodnego wyjścia.

Zielony

rgb(0 255 0) #00FF00

Czysta zieleń. Kanał G na maksimum, R i B na zerze. Nazwany kolor CSS `lime` (nie `green`, który ma #008000).

rgb(0 255 0) #00FF00

Słowo kluczowe CSS `green` rozwiązuje się do #008000 (półjasny), nie do #00FF00 — częste źródło nieporozumień. Używaj `lime` dla czystej zieleni RGB.

Potrzebujesz zamiast tego OKLCH? Wypróbuj dedykowany konwerter HEX na OKLCH dla percepcyjnie jednorodnego wyjścia.

Niebieski

rgb(0 0 255) #0000FF

Czysty niebieski. Kanał B na maksimum, R i G na zerze. Trzecia podstawowa barwa sRGB.

rgb(0 0 255) #0000FF

Czysty niebieski na białym tle nie zalicza kontrastu WCAG AA (3,7:1) — rozważ ciemniejsze błękity marki, takie jak #1D4ED8 (Tailwind blue-700) dla tekstu treści.

Potrzebujesz zamiast tego OKLCH? Wypróbuj dedykowany konwerter HEX na OKLCH dla percepcyjnie jednorodnego wyjścia.

Cyjan

rgb(0 255 255) #00FFFF

Cyjan — zielony i niebieski na maksimum, czerwony na zerze. Jedna z trzech wtórnych barw sRGB. Nazwany kolor CSS `cyan` (lub równoważnie `aqua`).

rgb(0 255 255) #00FFFF

Cyan i aqua to dokładne synonimy w CSS — oba rozwiązują się do #00FFFF. Wybierz jeden i trzymaj się konsekwentnie w całym arkuszu stylów.

Potrzebujesz zamiast tego OKLCH? Wypróbuj dedykowany konwerter HEX na OKLCH dla percepcyjnie jednorodnego wyjścia.

Magenta

rgb(255 0 255) #FF00FF

Magenta — czerwony i niebieski na maksimum, zielony na zerze. Nazwany kolor CSS `magenta` (lub równoważnie `fuchsia`).

rgb(255 0 255) #FF00FF

Magenta i fuchsia to dokładne synonimy w CSS — oba rozwiązują się do #FF00FF. Częste w wzorcach testowych i nakładkach narzędzi deweloperskich.

Potrzebujesz zamiast tego OKLCH? Wypróbuj dedykowany konwerter HEX na OKLCH dla percepcyjnie jednorodnego wyjścia.

Żółty

rgb(255 255 0) #FFFF00

Żółty — czerwony i zielony na maksimum, niebieski na zerze. Najjaśniejsza z trzech wtórnych barw sRGB pod względem postrzeganej luminancji.

rgb(255 255 0) #FFFF00

Żółty to kolor o najwyższej luminancji niebędący bielą na ekranie — żółty tekst na białym tle jest niemal niewidoczny, choć HEX wygląda dobrze na papierze.

Potrzebujesz zamiast tego OKLCH? Wypróbuj dedykowany konwerter HEX na OKLCH dla percepcyjnie jednorodnego wyjścia.

Tailwind blue-500

rgb(59 130 246) #3B82F6

Domyślny kolor marki blue-500 z Tailwind CSS — kanoniczny „webowy niebieski” połowy lat 2020. Używany w niezliczonych dashboardach, stronach marketingowych i narzędziach administracyjnych.

rgb(59 130 246) #3B82F6

Tailwind v4 redefiniuje blue-500 w OKLCH (`oklch(0.629 0.193 263.4)`) dla percepcyjnie jednorodnych ramp — HEX pozostaje ten sam jako fallback.

Potrzebujesz zamiast tego OKLCH? Wypróbuj dedykowany konwerter HEX na OKLCH dla percepcyjnie jednorodnego wyjścia.

Tailwind rose-500

rgb(244 63 94) #F43F5E

Domyślny rose-500 z Tailwind CSS — mocno nasycony różowo-czerwony, używany powszechnie dla przycisków akcentowych, stanów alertu i kontrastu marki.

rgb(244 63 94) #F43F5E

Rose-500 zalicza WCAG AA (4,6:1) względem bieli dla dużego tekstu, ale nie zalicza dla tekstu treści — paruj z rose-600 (#e11d48) lub ciemniejszym dla tekstu treści na bieli.

Potrzebujesz zamiast tego OKLCH? Wypróbuj dedykowany konwerter HEX na OKLCH dla percepcyjnie jednorodnego wyjścia.

Jak korzystać z konwertera RGB na HEX

  1. 1

    Wpisz lub wklej krotkę RGB w pole RGB

    Wrzuć dowolną wartość `rgb()` w pole RGB — nowoczesną z rozdziałem spacjami `rgb(255 87 51)`, starszą z przecinkami `rgb(255, 87, 51)`, z kanałem alfa przez ukośnik `rgb(255 87 51 / 0.5)` albo przez formę `rgba(255, 87, 51, 0.5)`, lub kanały procentowe `rgb(100% 34% 20%)`. Narzędzie normalizuje wszystkie kształty wejściowe do tej samej wewnętrznej krotki RGB przed obliczeniem HEX-a. Nieprawidłowe znaki, liczby spoza zakresu lub źle uformowana składnia powodują cichy błąd inline; prawidłowe RGB aktualizuje każde inne pole formatu w czasie rzeczywistym.

  2. 2

    Odczytaj kod HEX z pola HEX

    Pole HEX nad polem RGB pokazuje odpowiadającą wartość HEX: `#FF5733` dla koloru nieprzezroczystego, `#FF573380` dla koloru z kanałem alfa (forma 8-cyfrowa). Wyjście używa domyślnie wielkich liter HEX dla spójności z większością guidelines marki; małe litery (`#ff5733`) są oddalone o jedną mechaniczną zamianę i są równie prawidłowym CSS. Konwersja jest dokładna bitowo — konwersja w obie strony RGB → HEX → RGB odzyskuje oryginalną krotkę dosłownie, bez dryfu zmiennoprzecinkowego.

  3. 3

    Kliknij Kopiuj, aby pobrać ciąg HEX

    Każda karta formatu ma po prawej stronie przycisk Kopiuj. Jedno kliknięcie i wartość ląduje w schowku — etykieta przycisku miga na chwilę „Skopiowano!”, więc wiesz, że się udało. Skopiowany ciąg zawiera wiodący `#`, więc wkleja się bezpośrednio w regułę CSS, pole koloru w Figmie, rozszerzenie SwiftUI HEX albo `colors.xml` Androida. Dla składni specyficznej dla platformy (SwiftUI `Color(red:green:blue:)`, Compose `Color(0xFF...)`, tokeny `@theme` Tailwind v4) użyj sekcji Skopiuj jako kod pod selektorem.

  4. 4

    Również widoczne: HSL, OKLCH, OKLAB, CMYK, nazwany kolor

    Ten sam RGB, który wklejasz, rozświetla też pozostałe pola formatów — HSL dla starszego CSS, OKLCH i OKLAB dla percepcyjnie jednorodnych systemów designu, HSV i HWB dla projektantów korzystających z selektorów kolorów, CMYK do oszacowań druku oraz najbliższy nazwany kolor CSS do dokumentacji i tekstów. Nigdy nie jesteś zamknięty tylko w przepływie RGB → HEX; jeśli potrzebujesz także trójki OKLCH do bloku `@theme` Tailwind v4, jest ona od razu w polu OKLCH z własnym przyciskiem Kopiuj.

  5. 5

    Użyj selektora do wizualnych poprawek

    Pod siatką formatów znajduje się kwadrat SL + suwak barwy + suwak kanału alfa do eksploracji wizualnej. Przeciągnij dowolny element sterujący, a wszystkie pola tekstowe zaktualizują się w czasie rzeczywistym, włącznie z RGB i HEX-em, od których zacząłeś. W przeglądarkach opartych na Chromium (Chrome, Edge, Brave) przycisk EyeDropper aktywuje natywne API `EyeDropper` do próbkowania dowolnego piksela na ekranie, także poza oknem przeglądarki — przydatne, gdy chcesz pobrać krotkę RGB z interfejsu innej aplikacji bez wcześniejszego robienia zrzutu ekranu, a następnie od razu odczytać HEX.

Częste błędy RGB / HEX

Zapomnienie o padStart przy serializacji RGB do HEX

Konwersja RGB na HEX wymaga, aby `toString(16)` każdego kanału było dopełnione zerami z lewej do 2 cyfr. Bez `padStart(2, '0')` jednocyfrowe wartości kanałów dają nieprawidłowy HEX: `rgb(5, 87, 51)` serializowałoby się jako `#55733` (5 znaków) zamiast `#055733` (6 znaków). Wiele doraźnych konwerterów pomija dopełnienie i daje uszkodzone wyjście dla każdego kanału poniżej 16. Standardowy idiom to `value.toString(16).padStart(2, '0')` dla każdego z R, G, B, a następnie połączenie i dodanie `#` z przodu.

✗ Niepoprawne
Skip padStart:
[5, 87, 51].map(v => v.toString(16)).join('') → '55733'
Produces invalid 5-character hex.
✓ Poprawne
Use padStart(2, '0'):
[5, 87, 51].map(v => v.toString(16).padStart(2, '0')).join('') → '055733'
Valid 6-character hex; works correctly for all channel values 0-255.

Zapomnienie o zaokrągleniu RGB w postaci float przed kodowaniem HEX

Gdy krotka RGB pochodzi ze znormalizowanej liczby zmiennoprzecinkowej 0–1 pomnożonej przez 255 (powszechne w OpenGL, SwiftUI, znormalizowanych danych obrazu), wynik jest często liczbą zmiennoprzecinkową typu `127,5` albo `204,7`. Wywołanie `toString(16)` na liczbie zmiennoprzecinkowej daje dziesiętny HEX typu `'7f.8'` albo `'cc.b333...'`, co nie jest prawidłowym CSS HEX. Zawsze `Math.round` (albo `Math.floor`/`Math.ceil` zgodnie z twoją zasadą zaokrąglania) zaokrąglaj liczbę zmiennoprzecinkową do całkowitej przed krokiem `toString(16)`.

✗ Niepoprawne
Skip rounding:
(0.5 * 255).toString(16) → '7f.8'
Produces invalid hex with a decimal point.
✓ Poprawne
Round to integer first:
Math.round(0.5 * 255).toString(16).padStart(2, '0') → '80'
Valid 2-digit hex pair; matches CSS Color 4 normalization.

Mylenie kolejności kanału alfa w 8-cyfrowym HEX

8-cyfrowy HEX w CSS to `#RRGGBBAA` — alfa to *końcowa* para. Niektóre biblioteki kolorów (zwłaszcza starsza Androidowa `Color.parseColor()`) używają odwrotnej kolejności `#AARRGGBB` z alfą jako *początkową* parą, co jest niekompatybilne z CSS-owym HEX. Wartość RGB z 50% alfa serializowana do CSS-owego HEX emituje `#FF573380`; emitowana w formacie Androida z alfą wiodącą byłaby `#80FF5733`. Zawsze weryfikuj kolejność kanału alfa platformy docelowej przed wyprodukowaniem 8-cyfrowego HEX.

✗ Niepoprawne
Emit Android leading-alpha hex into CSS:
rgb(255 87 51 / 0.5) → #80FF5733 (Android format)
CSS parses as alpha=128, R=255, G=87, B=51 — wrong color entirely.
✓ Poprawne
Use the target platform's documented format:
for CSS: #FF573380 (alpha as last byte)
for Android Compose: Color(0x80FF5733) (alpha as first byte)
Don't cross-paste between the two without re-ordering.

Uśrednianie kanałów RGB wprost do mieszania

Kanały RGB są zakodowane gammą, nie liniowo. Uśrednianie dwóch wartości RGB daje percepcyjnie błędny punkt środkowy. `(255, 0, 0)` uśrednione z `(0, 255, 0)` daje `(127, 127, 0)`, mętną ciemną oliwkę, a nie jasny żółty punkt środkowy, jakiego można by się spodziewać po zmieszaniu czerwonego i zielonego światła. Aby prawidłowo wymieszać, najpierw zdekoduj do linear-RGB przez funkcję transferu sRGB (CSS Color 4 §11.2), uśrednij w przestrzeni liniowej, potem zakoduj ponownie. Albo pracuj w OKLAB / OKLCH, gdzie odległość percepcyjna jest jednorodna.

✗ Niepoprawne
Average gamma-encoded RGB directly:
(rgb(255,0,0) + rgb(0,255,0)) / 2 = rgb(128, 128, 0)
Looks like dark olive, not bright yellow.
✓ Poprawne
Average in linear-RGB:
decode → linear-RGB → average → re-encode → rgb(188, 188, 0)
Visibly bright yellow, matching what physical light mixing produces.

Kto korzysta z RGB na HEX

Frontendowcy konwertujący RGB z canvasu na HEX w CSS
Funkcje rysowania Canvas API zgłaszają i akceptują kolory jako krotki RGB (`ctx.fillStyle = 'rgb(255 87 51)'`), ale otaczający arkusz stylów CSS chce zmiennych HEX (`--color-fill: #FF5733`). Wklejenie RGB raz daje odpowiadający HEX, gotowy do wrzucenia w niestandardową właściwość CSS. Przydatne przy wyciąganiu kolorów marki z wykresu lub wizualizacji danych renderowanej na canvasie do ponownego użycia w statycznym UI.
Projektanci konwertujący RGB z Photoshopa na HEX w Figmie
Selektor Color w Adobe (w Photoshopie, Illustratorze i InDesignie) pokazuje RGB jako trzy liczby całkowite 0–255 w trzech polach kanałów. Figma natomiast wyświetla wartości kolorów domyślnie jako HEX w swoich panelach designu. Wklej trzy liczby całkowite z Photoshopa jako `rgb(...)` tutaj, skopiuj wyjście HEX, wrzuć w pole koloru w Figmie. Pasuje do oryginalnego koloru z Photoshopa dokładnie, bez objazdu przez zrzut ekranu i kroplomierz.
Devowie sprzętu konwertujący RGB z czujników LED na webowy HEX
Adresowalne paski LED, czujniki kolorów i sprzętowe kamery RGB wszystkie zgłaszają wartości kanałów jako liczby całkowite 0–255. Gdy odczyty muszą napędzać dashboard webowy („lampa świeci się teraz tym kolorem”), odpowiadający kod HEX to to, czego oczekuje atrybut CSS `style="background: ..."`. Wklej trójkę RGB z czujnika, skopiuj HEX, wepnij w znaczniki dashboardu.
Devowie gier eksportujący kolory z Unity na makietę webową
Konstruktory `Color` w Unity i `FLinearColor` w Unreal przyjmują znormalizowane liczby zmiennoprzecinkowe 0–1; pomnożenie każdej przez 255 daje odpowiadające liczby całkowite RGB. Wklej wynikowe `rgb(...)` tutaj, skopiuj HEX, wrzuć w makietę webową albo stronę marketingową, która musi dokładnie dopasować się do akcentowego koloru w grze. Jednoczesny widok OKLCH pokazuje też percepcyjną jasność, więc paleta makiety może być ręcznie dostrojona do poziomów jasności gry.
Inżynierowie dostępności audytujący kolory marki z Photoshopa
Gdy guidelines stylu marki podaje kolory jako trójki liczb całkowitych RGB („pomarańcz marki to RGB 255 / 87 / 51”), ale narzędzie do audytu WCAG chce kodów HEX, ten konwerter jest mostem. Wklej trójkę RGB, skopiuj HEX, przepuść przez audyt. Plakietki kontrastu WCAG i APCA w tym narzędziu też pokazują werdykt w jednym kroku, więc nie musisz skakać między trzema osobnymi narzędziami.
Devowie e-maili migrujący rgba() na 8-cyfrowy HEX
Nowoczesny HTML klientów pocztowych obsługuje 8-cyfrowy HEX (`#FF573380`) dla kolorów z kanałem alfa, ale starsze szablony często przechowują tę samą wartość jako `rgba(255, 87, 51, 0.5)`. Wklejenie rgba() tutaj i odczytanie wyjścia 8-cyfrowego HEX czyni migrację mechaniczną. Pole HEX pokazuje `#FF573380` dla przypadku 50% alfa; starsza forma `rgba()` pozostaje w polu RGB dla kontekstów fallback, które jej nadal potrzebują.
Programiści dokumentujący tokeny marki w obu formatach
Dokumentacja tokenów designu często pokazuje ten sam kolor w obu formach RGB i HEX: HEX dla bloku kodu CSS, RGB do adnotacji w prozie („pomarańcz marki to `#FF5733`, równoważnie RGB 255 / 87 / 51”). Posiadanie obu obok siebie pozwala autorowi dokumentacji skopiować każdy w jednym przebiegu zamiast uruchamiać dwa osobne narzędzia. Hash adresu URL do udostępniania pozwala też czytelnikom kliknąć w dokładny omawiany kolor.
Inżynierowie QA porównujący kolory pikseli ze specyfikacjami HEX
Testy regresji wizualnej czasem przechwytują kolory pikseli jako liczby całkowite RGB (`expect(pixel).toMatchRgb([255, 87, 51])`), podczas gdy bazowa specyfikacja jest podana w HEX („przyciski muszą renderować się jako `#FF5733`”). Wklejenie przechwyconego RGB tutaj daje odpowiadający HEX, który inżynier QA może porównać bezpośrednio ze specyfikacją. Dokładność bitowa konwersji oznacza, że porównanie nie będzie się sypać z powodu różnic w dryfie zmiennoprzecinkowym.

Matematyka i serializacja RGB na HEX

toString(16).padStart(2, '0') to jednolinijkowa implementacja
Cała konwersja RGB na HEX mieści się w jednym wyrażeniu na kanał: `value.toString(16).padStart(2, '0')`. `toString(16)` w JavaScript konwertuje liczbę całkowitą dziesiętną na jej reprezentację w systemie szesnastkowym. `padStart(2, '0')` to łatwy do zapomnienia szczegół — bez niego wartość kanału 5 serializowałaby się jako `'5'` zamiast `'05'`, dając nieprawidłowy 5-znakowy HEX typu `#55733` po połączeniu z innymi kanałami. Standardowy idiom to `[r, g, b].map(v => v.toString(16).padStart(2, '0')).join('')`, a następnie prefiks `'#'`.
Normalizacja procentowa: × 255 / 100, potem zaokrąglenie
CSS Color 4 dopuszcza kanały procentowe w `rgb()`: `rgb(100% 34% 20%)` jest równoważne `rgb(255 87 51)`. Zasada normalizacji to `Math.round(procent × 255 / 100)`. `50% × 255 / 100 = 127,5` zaokrągla się do 128 (zaokrąglenie bankierskie od .5). Ta sama zasada obowiązuje dla alfy wyrażonej procentowo (`rgb(255 87 51 / 50%)` ↔ `rgb(255 87 51 / 0.5)`). Forma całkowita i procentowa dają identyczne wyjście HEX po normalizacji; narzędzie pokazuje kanoniczną formę całkowitą w polu RGB po ponownej normalizacji.
Alfa na HEX: pomnóż przez 255, zaokrąglij, zakoduj jako końcową parę
RGB z kanałem alfa (`rgb(255 87 51 / 0.5)`) emituje 8-cyfrowy HEX, mnożąc alfę przez 255, zaokrąglając do najbliższej liczby całkowitej i kodując jako 4. parę HEX dołączoną po RGB. `0,5 × 255 = 127,5`, zaokrąglone do 128 = `0x80`, wyjście `#FF573380`. Specyfikacja CSS Color 4 używa dla tej konwersji zaokrąglenia bankierskiego (zaokrąglenie połowy do parzystej), za którym narzędzie podąża. Forma 8-cyfrowa wraca do 6-cyfrowej, gdy alfa równa się dokładnie 1, aby uniknąć wycieku końcowych par `FF` do arkuszy stylów.
Wejście RGB: CSS Color 4 z rozdziałem spacjami i starsze z przecinkami — oba akceptowane
Parser akceptuje zarówno nowoczesną formę CSS Color 4 `rgb(255 87 51)`, jak i starszą formę CSS 1 `rgb(255, 87, 51)`. Forma nowoczesna pasuje do innych funkcyjnych notacji z CSS Color 4 (`hsl()`, `lab()`, `oklch()`, `color()`), które wszystkie używają rozdziału spacjami i ukośnika dla kanału alfa. Starsza forma z przecinkami jest nadal wspierana w każdej aktualnie aktualizowanej przeglądarce i pozostaje powszechna w starszych bazach kodu. Obie dają identyczne wyjście HEX; serializator HEX narzędzia nie interesuje się tym, który kształt wejściowy przyszedł.
OKLCH jako wewnętrzne źródło prawdy dla stabilności w obie strony
Mimo że to odgałęzienie celuje konkretnie w RGB → HEX, współdzielony bazowy konwerter trzyma kanoniczny kolor jako trójkę OKLCH wewnętrznie. Oznacza to, że konwersja w obie strony RGB → HEX → HSL → OKLAB → CMYK → RGB odbywa się bez dryfu zmiennoprzecinkowego między krokami; starsze konwertery, które trasują przez HSL lub sRGB jako pivot, akumulują błąd zaokrąglenia przy każdej konwersji. Wybór OKLCH (zamiast OKLAB) zachowuje barwę jako stabilną oś, więc przeciąganie suwaka barwy nie przechodzi przypadkiem przez szarość. Zgodnie z pracą Björna Ottossona o OKLAB z 2020.
Kodowanie kanału: 8-bitowe bez znaku, sRGB z gammą
Każdy kanał RGB to 8-bitowa liczba całkowita bez znaku (0–255), zakodowana w przestrzeni barw sRGB zdefiniowanej w IEC 61966-2-1 (1996). Wartości są *gamma-encoded* — co oznacza, że relacja między wartością kanału a postrzeganą jasnością jest nieliniowa, zgodna z fragmentaryczną funkcją transferu sRGB (z grubsza wykładnik 2.4 z małym odcinkiem liniowym blisko zera). To ma znaczenie, gdy robisz matematykę kolorów: uśrednianie dwóch wartości RGB w ich postaci zakodowanej gammą daje błędny percepcyjny punkt środkowy. Aby prawidłowo wymieszać kolory, najpierw zdekoduj do linear-RGB (CSS Color 4 §11.2), potem uśrednij, potem zakoduj ponownie. Wewnętrzny model OKLCH narzędzia czyni to przezroczystym.

Najlepsze praktyki dla przepływów RGB / HEX

Preferuj HEX wielkimi literami w guidelines marki, małymi w kodzie
Guidelines marki, PDF-y marketingowe i dokumentacja skierowana do projektantów zwykle używają HEX wielkimi literami (`#FF5733`) dla wizualnej spójności — wygląd „all caps” czyta się jako identyfikator marki. Kod (CSS, JSON, źródło JavaScript) zwykle używa małych liter (`#ff5733`) z konwencji, ponieważ małe litery są szybsze do wpisywania i częstsze w autogenerowanym wyjściu lintera. Oba są prawidłowym CSS i parsują się identycznie; wybierz jeden dla każdego kontekstu i trzymaj się go. Narzędzie emituje wielkie litery domyślnie; jedna mechaniczna zamiana odwraca do małych liter.
Emituj 8-cyfrowy HEX tylko gdy alfa < 1
Gdy alfa równa się 1 (pełne krycie), wracaj do formy 6-cyfrowej. Końcowa para `FF` (`#FF5733FF`) to legalny CSS, ale wizualnie zaśmieca arkusze stylów i myli niektóre starsze parsery, prowadząc do błędnego renderowania. Forma 8-cyfrowa powinna pojawiać się tylko wtedy, gdy alfa jest znacząco przezroczysta. To narzędzie podąża za tą zasadą automatycznie — kolory nieprzezroczyste emitują 6-cyfrowy HEX, kolory z kanałem alfa emitują 8-cyfrowy HEX, a granica jest dokładna (alfa = 1,0 emituje 6 cyfr; alfa = 0,9999 emituje 8 cyfr, aby zachować dane).
Nie uśredniaj kanałów RGB wprost do matematyki kolorów
Kanały RGB są zakodowane gammą — uśrednianie dwóch wartości RGB daje błędny percepcyjny punkt środkowy. `(255, 0, 0)` uśrednione z `(0, 255, 0)` daje `(127, 127, 0)`, mętną ciemną oliwkę, a nie wizualnie jasny żółty punkt środkowy, jakiego można by się spodziewać. Aby prawidłowo wymieszać kolory, najpierw zdekoduj do linear-RGB (CSS Color 4 §11.2), uśrednij, a potem zakoduj ponownie. Albo, lepiej, pracuj w OKLAB lub OKLCH, gdzie odległość percepcyjna jest jednorodna — dokładnie to robią generatory palet systemów designu.
Preferuj HEX dla zmiennych CSS, RGB dla sprzętu
Gdy piszesz niestandardową właściwość CSS albo token konfiguracji Tailwinda, preferuj HEX — jest zwięźlejszy i czysto mieści się w JSON albo YAML. Gdy konsumujący kod wykonuje arytmetykę na kanałach (wywołania canvasu, manipulacja obrazem, sterowniki sprzętowych LED, atrybuty kolorów OpenGL), forma liczb całkowitych RGB jest szybsza do konsumpcji. Oba formaty opisują ten sam kolor; wybór dotyczy wyłącznie tego, kto czyta i pisze, a nie poprawności. Widok jednoczesnych pól tego narzędzia czyni oba równie tanimi.
Zweryfikuj zakres alfy przed mnożeniem przez 255
Gdy implementujesz własny konwerter RGB → 8-cyfrowy HEX, zweryfikuj, że liczba zmiennoprzecinkowa alfa mieści się w `[0, 1]` przed krokiem `× 255`. Alfa spoza zakresu (ujemna lub > 1) po cichu daje nieprawidłowe pary HEX, które niektóre parsery akceptują, a inne odrzucają — kruchy tryb awarii. Najpierw przytnij (`Math.max(0, Math.min(1, alpha))`), potem pomnóż, potem zaokrąglij, potem zakoduj w HEX. Narzędzie pokazuje cichy błąd inline dla alfy spoza zakresu zamiast emitować uszkodzony ciąg HEX.
Używaj hasha URL do udostępniania decyzji o kolorze na żywo
Każda zmiana koloru aktualizuje hash adresu URL jako `#hex=ff5733` automatycznie. Skopiuj URL do wątku na Slacku albo do zgłoszenia na GitHubie, a każdy, kto otworzy, ląduje na tym samym kolorze z tym samym HEX-em. To bardziej niezawodne niż wklejanie krotki RGB w czacie — odbiorcy czasem robią literówki w przecinkach albo gubią kanał przy ręcznym wpisywaniu wartości — i pozwala wątkowi design review odnieść się do dokładnego koloru zamiast do „pomarańczowego, o którym rozmawialiśmy we wtorek”. Hash nigdy nie jest przesyłany na serwer.

Najczęściej zadawane pytania

Jak skonwertować RGB na HEX?
Skonwertuj liczbę całkowitą każdego kanału 0–255 na 2-cyfrowy ciąg w systemie szesnastkowym, potem połącz z wiodącym `#`. W JavaScript: `[255, 87, 51].map(v => v.toString(16).padStart(2, '0')).join('')` zwraca `'ff5733'`. `padStart(2, '0')` ma znaczenie — bez niego wartości jednocyfrowe, takie jak `5`, serializowałyby się jako `'5'` zamiast `'05'`, dając nieprawidłowy HEX. To narzędzie wykonuje konwersję na żywo w trakcie pisania — wklej dowolną wartość `rgb()` (ze spacjami lub bez, z przecinkami lub w nowoczesnej składni ze spacjami, z kanałem alfa lub bez), a pole HEX zaktualizuje się natychmiast odpowiadającą wartością `#RRGGBB` lub 8-cyfrową `#RRGGBBAA`.
Czym jest RGB w HEX-ie?
RGB w HEX-ie to ten sam kolor zakodowany jako 6-znakowy ciąg w systemie szesnastkowym. Obie formy opisują kolor jako trzy kanały (czerwony, zielony, niebieski) na skali 0–255, zakotwiczone w przestrzeni barw sRGB. `rgb(255 87 51)` i `#FF5733` są wymienne wszędzie tam, gdzie w CSS akceptowany jest `` — przechodzą w obie strony bezstratnie. HEX pakuje tę samą informację w zwięźlejszą formę, która czysto mieści się w zmiennych CSS i kopiuje się czysto między Figmą, Sketchem, Photoshopem a kodem; `rgb()` zachowuje kanały adresowalne jako osobne liczby całkowite na potrzeby wywołań canvasu i API sprzętowych.
Jak uzyskać kod HEX z RGB?
Weź wartość każdego kanału (0–255), wywołaj `toString(16)`, aby uzyskać jej reprezentację w systemie szesnastkowym, dopełnij zerem z lewej do 2 cyfr i połącz z wiodącym `#`. `rgb(255 87 51)` staje się: `255 → 'ff'`, `87 → '57'`, `51 → '33'`, wynik `#ff5733`. Zapisz wielkimi literami, jeśli wymaga tego twój przewodnik stylu (`#FF5733`); obie formy są prawidłowym CSS. Dla RGB z kanałem alfa typu `rgb(255 87 51 / 0.5)` pomnóż alfę przez 255, zaokrąglij i dołącz wynikową 2-cyfrową parę HEX: `0,5 × 255 = 128 = 0x80`, wynik `#ff573380`. To narzędzie wykonuje obie transformacje automatycznie.
Jaki jest wzór konwersji RGB na HEX?
Dla każdego kanału: `value.toString(16).padStart(2, '0')`. `toString(16)` konwertuje liczbę całkowitą na jej reprezentację w systemie szesnastkowym; `padStart(2, '0')` zapewnia, że wynik ma dokładnie 2 znaki (konieczne dla wartości poniżej 16, które inaczej serializowałyby się jako 1 znak). Połącz trzy wyniki, dodaj `#` z przodu, i masz kanoniczny HEX. Matematycznie: dla kanału `n` z zakresu `[0, 255]` cyfry HEX to `Math.floor(n / 16)` i `n % 16` mapowane przez `'0123456789abcdef'`. Nie ma straty zaokrąglenia — 16² = 256, co dokładnie odpowiada zakresowi bajta 0–255, który zajmuje każdy kanał.
Czy rgb(0,0,0) równa się #000000?
Tak — dokładnie. `rgb(0, 0, 0)` i `rgb(0 0 0)` (nowoczesna składnia z rozdziałem spacjami z CSS Color 4) obie serializują się do `#000000`, czystej czerni z wszystkimi trzema kanałami na zerze. Każda para kanałów koduje się jako `00`, połączone do 6-znakowego HEX `000000`. Ta sama równoważność obowiązuje na drugim krańcu: `rgb(255, 255, 255)` ↔ `#FFFFFF` (czysta biel). Każda trójka RGB ma dokładnie jedną kanoniczną reprezentację HEX 6-cyfrową, a każdy 6-cyfrowy HEX ma dokładnie jedną trójkę RGB — mapowanie jest bijektywne w całej przestrzeni 16 777 216 kolorów sRGB.
Czy RGB może mieć kanał alfa?
Tak — użyj starszej formy `rgba()` `rgba(255, 87, 51, 0.5)` albo nowoczesnej składni z ukośnikiem z CSS Color 4 `rgb(255 87 51 / 0.5)`. Obie kodują liczbę zmiennoprzecinkową alfa od 0 (pełna przezroczystość) do 1 (pełne krycie). Przy konwersji na HEX alfa staje się 4. 2-cyfrową parą dołączoną po RGB: pomnóż przez 255, zaokrąglij, zakoduj w HEX. `0,5 × 255 = 128 = 0x80`, więc `rgb(255 87 51 / 0.5)` staje się `#FF573380`. 8-cyfrowy HEX z kanałem alfa wszedł do wszystkich aktualnie aktualizowanych przeglądarek w 2018 roku; wcześniej forma `rgba()` była jedynym sposobem wyrażenia alfy w CSS.
Czym różnią się HEX i RGB?
Kodują ten sam kolor w innej notacji. HEX pakuje trzy kanały 0–255 w 6-znakowy ciąg w systemie szesnastkowym (`#FF5733`); `rgb()` wypisuje kanały dziesiętnie (`rgb(255 87 51)`). HEX jest krótszy i natywny dla narzędzi projektowych — Figma, Sketch, Photoshop i każdy eksportowany z guidelines marki PDF domyślnie wypisują HEX, a większość frontendowców rozpoznaje `#3b82f6` jako Tailwind blue-500 od razu. RGB to jawne adresowanie kanałów, łatwiejsze do obliczeń w JavaScript i jako jedyna z dwóch form akceptuje kanały procentowe i kanał alfa w natywnej składni. Oba są równie prawidłowym CSS i przechodzą w obie strony bezstratnie.
Jak dokładna jest konwersja RGB na HEX?
Dokładna bitowo. RGB → HEX to matematyka liczb całkowitych przekształcanych w ciągi znaków bez udziału liczb zmiennoprzecinkowych: `toString(16).padStart(2, '0')` daje kanoniczną 2-cyfrową parę HEX dla każdej wartości 0–255, a kierunek odwrotny (`parseInt(pair, 16)`) odzyskuje oryginalną liczbę całkowitą dokładnie. Konwersja w obie strony RGB → HEX → RGB → HEX daje oryginalną krotkę dosłownie, bez końca. 16² = 256, co dokładnie odpowiada zakresowi bajta, więc nie ma straty zaokrąglenia w żadnym kierunku. Procentowe wejścia RGB najpierw zaokrąglają się do najbliższej liczby całkowitej (`50% × 255 / 100 = 127,5 → 128`), co jest standardową zasadą normalizacji CSS Color 4.

Powiązane narzędzia

Zobacz wszystkie narzędzia →