Kody kolorów HEX: jak działa #RRGGBB
Kod koloru HEX, taki jak #1e90ff, to trzy pary cyfr szesnastkowych: ilość czerwonego, zielonego i niebieskiego światła, każda od 00 (brak) do ff (pełna, 255). Czwarta para ustawia krycie: 80 to około 50%, a ff oznacza kolor w pełni kryjący.
5 min czytania
Jak działa kod koloru HEX
Każdy kolor na ekranie powstaje z czerwonego, zielonego i niebieskiego światła. Kod HEX zapisuje natężenie każdego z nich jako dwa znaki po znaku #: najpierw czerwony, potem zielony, na końcu niebieski. To właśnie wzorzec #RRGGBB.
Znaki są szesnastkowe: to system liczenia z 16 cyframi, od 0 do 9, a dalej a (10), b (11), c (12), d (13), e (14) i f (15). Jedna para obejmuje 256 wartości, od 00 (0) do ff (255), czyli dokładnie zakres rgb().
Aby zamienić parę na zwykłą liczbę, pomnóż pierwszą cyfrę przez 16 i dodaj drugą. Poniżej #1e90ff, czyli kolor CSS dodgerblue, w czterech formatach, a dalej rozpisany para po parze.
| Format | Wartość |
|---|---|
| HEX | |
| RGB | |
| HSL | |
| OKLCH |
| Para | Kanał | Obliczenie | Wartość |
|---|---|---|---|
| 1e | Czerwony | 1 × 16 + 14 | 30 |
| 90 | Zielony | 9 × 16 + 0 | 144 |
| ff | Niebieski | 15 × 16 + 15 | 255 |
Zatem #1e90ff to rgb(30, 144, 255): trochę czerwonego, sporo zielonego i pełny niebieski, co razem daje jasny błękit nieba. Trzy pary po 256 wartości dają 16 777 216 możliwych kolorów.
Skrócony zapis HEX: 3 i 4 cyfry
Gdy obie cyfry w każdej parze są takie same, możesz zapisać każdą parę jedną cyfrą. #ffcc00 zmienia się w #fc0, a przeglądarka z powrotem podwaja każdą cyfrę. #1e90ff nie ma krótkiej formy, bo 1e i 90 nie są parami powtórzonych cyfr.
Krótka forma obejmuje tylko 4096 z 16,7 mln kolorów. Wersja czterocyfrowa w ten sam sposób dodaje krycie, więc #f008 oznacza #ff000088.
| Skrót | Pełny | Kolor |
|---|---|---|
| #fff | #ffffff | Biały |
| #000 | #000000 | Czarny |
| #f00 | #ff0000 | Czerwony |
| #fc0 | #ffcc00 | Ciepły żółty |
| #abc | #aabbcc | Szaroniebieski |
| #f008 | #ff000088 | Czerwony z kryciem 53% |
Przezroczystość w HEX: 8-cyfrowy kod z kanałem alfa
Kod ośmiocyfrowy dodaje czwartą parę dla kanału alfa, czyli krycia: #RRGGBBAA. 00 oznacza pełną przezroczystość, a ff pełne krycie. Każda aktualna przeglądarka obsługuje go w CSS, podobnie jak czterocyfrowy skrót #RGBA.
Aby uzyskać parę, pomnóż krycie przez 255, zaokrąglij do liczby całkowitej i zamień na HEX. 50% daje 127,5, co po zaokrągleniu daje 128, zapisane jako 80. Oto pełna tabela dla #1e90ff.
| Krycie | Alfa (0–255) | Para HEX | #1e90ff z alfą |
|---|---|---|---|
| 100% | 255 | ff | #1e90ffff |
| 95% | 242 | f2 | #1e90fff2 |
| 90% | 230 | e6 | #1e90ffe6 |
| 85% | 217 | d9 | #1e90ffd9 |
| 80% | 204 | cc | #1e90ffcc |
| 75% | 191 | bf | #1e90ffbf |
| 70% | 179 | b3 | #1e90ffb3 |
| 65% | 166 | a6 | #1e90ffa6 |
| 60% | 153 | 99 | #1e90ff99 |
| 55% | 140 | 8c | #1e90ff8c |
| 50% | 128 | 80 | #1e90ff80 |
| 45% | 115 | 73 | #1e90ff73 |
| 40% | 102 | 66 | #1e90ff66 |
| 35% | 89 | 59 | #1e90ff59 |
| 30% | 77 | 4d | #1e90ff4d |
| 25% | 64 | 40 | #1e90ff40 |
| 20% | 51 | 33 | #1e90ff33 |
| 15% | 38 | 26 | #1e90ff26 |
| 10% | 26 | 1a | #1e90ff1a |
| 5% | 13 | 0d | #1e90ff0d |
| 0% | 0 | 00 | #1e90ff00 |
CSS
.overlay {
background: #00000080;
}
.overlay-same {
background: rgb(0 0 0 / 50%);
}Są dwa haczyki. Po pierwsze, 80 to 128 z 255, czyli 50,2%, a nie dokładnie 50%: alfa w HEX ma tylko 256 kroków, więc większość okrągłych wartości procentowych to przybliżenia. Po drugie, Android stawia alfę na początku. W zasobie koloru w Androidzie #801e90ff oznacza to samo co #1e90ff80 w CSS.
Jak odczytać kod HEX na oko
Kolor da się odgadnąć bez żadnej konwersji. Patrz na pierwszą cyfrę każdej pary, bo niesie prawie całą informację.
| Nazwa CSS | Hex | RGB | Jak go odczytać |
|---|---|---|---|
| tomato | #ff6347 | 255, 99, 71 | Czerwony na maksimum, trochę zielonego i niebieskiego: ciepła, jasna czerwień |
| gold | #ffd700 | 255, 215, 0 | Czerwony i zielony wysoko, brak niebieskiego: żółty |
| chocolate | #d2691e | 210, 105, 30 | Prowadzi czerwony, zielony w połowie, niebieski nisko: pomarańczowy brąz |
| darkturquoise | #00ced1 | 0, 206, 209 | Zielony i niebieski wysoko, brak czerwonego: cyjan |
| dodgerblue | #1e90ff | 30, 144, 255 | Prowadzi niebieski, zielony pośrodku: błękit nieba |
| mediumorchid | #ba55d3 | 186, 85, 211 | Czerwony i niebieski wysoko, zielony nisko: fiolet |
| teal | #008080 | 0, 128, 128 | Zielony i niebieski w połowie: ciemny cyjan |
| navy | #000080 | 0, 0, 128 | Tylko niebieski, w połowie: ciemny niebieski |
| slategray | #708090 | 112, 128, 144 | Prawie równe, niebieski nieco wyżej: niebieskawa szarość |
- Największa pierwsza cyfra wskazuje dominujące światło. #d2691e ma d w czerwonym, 6 w zielonym i 1 w niebieskim, więc to pomarańczowy brąz.
- Dwa wysokie kanały się mieszają: czerwony i zielony dają żółty, zielony i niebieski dają cyjan, a czerwony i niebieski magentę lub fiolet.
- Trzy równe pary dają szarość. #333333 to ciemna szarość, #999999 jasna. Prawie równe pary, jak w #708090, dają stonowany, szarawy kolor.
- Wysokie cyfry ogólnie oznaczają jasny kolor, niskie ciemny. Gdy wszystkie trzy pary mają wartość c0 lub wyższą, kolor jest blady. Gdy wszystkie mają 30 lub mniej, jest bardzo ciemny.
- Zielony przy tej samej liczbie wygląda na znacznie jaśniejszy niż niebieski. #00ff00 ma jasność OKLCH 0,866, a #0000ff tylko 0,452.
Dlaczego #808080 to nie środkowa szarość
#808080 leży dokładnie w połowie skali liczb: 128 z 255 w każdym kanale. Nie wygląda jednak na kolor w połowie drogi między czernią a bielą. Jego jasność OKLCH wynosi 0,600, więc odbieramy go jako 60% drogi do bieli.
Wartości HEX są już zakodowane krzywą sRGB, która w przybliżeniu, ale nie dokładnie, odpowiada oku. #808080 emituje około 21,6% światła bieli, a modele percepcyjne umieszczają wizualny środek niżej: OKLCH przy #636363, CIELAB przy #777777.
| Szarość | Co to jest | OKLCH L | Kontrast na białym | Kontrast na czarnym |
|---|---|---|---|---|
| #808080 | Środek liczbowy, 128 | 0.600 | 3.95:1 | 5.32:1 |
| #777777 | Środek CIELAB, L* 50 | 0.569 | 4.48:1 | 4.69:1 |
| #767676 | Najjaśniejsza szarość z 4,5:1 na białym | 0.566 | 4.54:1 | 4.62:1 |
| #636363 | Środek OKLCH, L 0,5 | 0.500 | 6.01:1 | 3.50:1 |
Ma to znaczenie dla tekstu. Szary #808080 na białym daje 3,95:1 i nie spełnia WCAG AA dla tekstu głównego. #767676 to najjaśniejsza szarość, która osiąga 4,5:1, a #777777, o jeden krok jaśniejszy, już nie przechodzi z wynikiem 4,48:1.
Wielkie czy małe litery, z # czy bez
W kodach HEX wielkość liter nie ma znaczenia. #1E90FF, #1e90ff i #1E90ff to ten sam kolor w CSS, SVG i narzędziach projektowych. Wybierz jeden styl i trzymaj się go wszędzie, żeby wyszukiwanie w kodzie znajdowało każde użycie. W CSS najczęściej wybiera się małe litery.
Znak # należy do składni CSS, a nie do koloru. Figma i wiele narzędzi projektowych pokazuje kod bez niego, a języki programowania często zapisują go jako liczbę z prefiksem 0x, jak we Flutterze, gdzie Color(0xFF1E90FF) zaczyna się od pary alfa.
Jak znaleźć kod HEX koloru na ekranie
Użyj pipety: narzędzia, które odczytuje kolor pod kursorem i pokazuje jego kod. Takie narzędzia są darmowe i zwykle już zainstalowane.
- Chrome i Edge: otwórz DevTools klawiszem F12, kliknij dowolny kwadrat koloru w panelu Styles i użyj ikony pipety, aby pobrać kolor ze strony.
- PickShade: próbnik kolorów na stronie głównej ma w Chrome i Edge przycisk pipety, który pobiera kolor z dowolnego miejsca na ekranie.
- Windows: zainstaluj Microsoft PowerToys i naciśnij Win + Shift + C, aby otworzyć Color Picker.
- macOS: otwórz Kolorymetr cyfrowy (Digital Color Meter) z folderu Aplikacje, Narzędzia. Przełącz go na sRGB, a potem w menu Widok ustaw wyświetlanie wartości szesnastkowo.
- Figma, Photoshop i większość aplikacji graficznych: naciśnij I, aby włączyć pipetę.
- Na zdjęciu lub zrzucie ekranu: otwórz je w próbniku kolorów z obrazu i kliknij dowolny piksel. Obraz zostaje na twoim urządzeniu.
Pobrana wartość może się różnić od oryginału o kilka jednostek, bo ekrany stosują profile kolorów, a obrazy są kompresowane. Gdy potrzebujesz dokładnej wartości, skopiuj ją z pliku projektu lub z CSS, a nie ze zrzutu ekranu.
Pytania i odpowiedzi
Czym jest kod koloru HEX?
Kod koloru HEX to sześcioznakowy kod, taki jak #1e90ff, który opisuje kolor ilością czerwonego, zielonego i niebieskiego światła. Każda para cyfr szesnastkowych ma wartość od 00 (0) do ff (255), więc #1e90ff to rgb(30, 144, 255).
Jak dodać przezroczystość do koloru HEX?
Dopisz na końcu czwartą parę cyfr: #RRGGBBAA. Pomnóż krycie przez 255, zaokrąglij i zamień na HEX, więc 50% to 80, 25% to 40, a 75% to bf. Na przykład #1e90ff80 to dodgerblue z kryciem około 50%.
Ile wynosi krycie 50% w HEX?
Krycie 50% w HEX to 80, jak w #00000080 dla półprzezroczystej czerni. 80 to 128 z 255, czyli 50,2%, bo alfa w HEX ma 256 kroków, a dokładne 50% wypada między 7f a 80.
Czym różni się HEX od RGB?
Kolor jest ten sam, różni się tylko zapis. HEX zapisuje wartości czerwonego, zielonego i niebieskiego jako pary w systemie szesnastkowym, a rgb() jako liczby dziesiętne od 0 do 255, więc #ff6347 i rgb(255, 99, 71) to ta sama pomidorowa czerwień.
Czy w kodach HEX liczy się wielkość liter?
Nie. #FF6347, #ff6347 i #Ff6347 to ten sam kolor w CSS, HTML, SVG i narzędziach projektowych. Większość projektów CSS używa małych liter, ale każdy styl jest dobry, o ile jest spójny.
Jaki kod HEX ma środkowa szarość?
#808080 to środek liczbowy, ale wygląda na jaśniejszy niż połowa, bo jego jasność OKLCH wynosi 0,600. Szarość, która wygląda na połowę drogi między czernią a bielą, leży między #636363 (OKLCH L 0,5) a #777777 (CIELAB L* 50).