HEX-коди кольорів простими словами: як працює #RRGGBB
HEX-код кольору, наприклад #1e90ff, складається з трьох пар шістнадцяткових цифр: скільки в кольорі червоного, зеленого і синього світла, кожне від 00 (зовсім немає) до ff (повністю, 255). Четверта пара задає непрозорість: 80 означає приблизно 50%, ff означає повністю непрозорий колір.
5 хв читання
Як працює HEX-код кольору
Кожен колір на екрані змішується з червоного, зеленого і синього світла. HEX-код записує силу кожного з них двома символами після знака #: спочатку червоний, потім зелений, потім синій. Це і є шаблон #RRGGBB.
Символи шістнадцяткові, тобто це спосіб лічби з 16 цифрами: від 0 до 9, далі a (10), b (11), c (12), d (13), e (14) і f (15). Одна пара вміщує 256 значень, від 00 (0) до ff (255), якраз діапазон rgb().
Щоб перетворити пару на звичайне число, помножте першу цифру на 16 і додайте другу. Нижче #1e90ff, CSS-колір dodgerblue, у чотирьох форматах, а потім розрахунок пара за парою.
| Формат | Значення |
|---|---|
| HEX | |
| RGB | |
| HSL | |
| OKLCH |
| Пара | Канал | Розрахунок | Значення |
|---|---|---|---|
| 1e | Червоний | 1 × 16 + 14 | 30 |
| 90 | Зелений | 9 × 16 + 0 | 144 |
| ff | Синій | 15 × 16 + 15 | 255 |
Отже, #1e90ff це rgb(30, 144, 255): трохи червоного, чимало зеленого і повний синій, що разом дає яскравий небесно-блакитний. Три пари по 256 значень дають 16 777 216 можливих кольорів.
Тризначне і чотиризначне скорочення HEX
Коли обидві цифри в кожній парі однакові, кожну пару можна записати один раз. #ffcc00 перетворюється на #fc0, а браузер сам подвоїть кожну цифру назад. У #1e90ff короткої форми немає, бо 1e і 90 не складаються з однакових цифр.
Коротка форма охоплює лише 4096 з 16,7 мільйона кольорів. Чотиризначний варіант так само додає непрозорість, тож #f008 означає #ff000088.
| Коротко | Повністю | Колір |
|---|---|---|
| #fff | #ffffff | Білий |
| #000 | #000000 | Чорний |
| #f00 | #ff0000 | Червоний |
| #fc0 | #ffcc00 | Теплий жовтий |
| #abc | #aabbcc | Сірувато-блакитний |
| #f008 | #ff000088 | Червоний з непрозорістю 53% |
Прозорість у HEX: восьмизначний HEX з альфа-каналом
Восьмизначний код додає четверту пару для альфи, тобто непрозорості: #RRGGBBAA. 00 означає повністю прозорий, ff повністю непрозорий. Усі актуальні браузери підтримують його в CSS разом з чотиризначним скороченням #RGBA.
Щоб отримати пару, помножте непрозорість на 255, округліть до цілого і переведіть у HEX. Для 50% виходить 127,5, після округлення 128, у HEX це 80. Ось повна таблиця на прикладі #1e90ff.
| Непрозорість | Альфа (0–255) | Пара HEX | #1e90ff з альфою |
|---|---|---|---|
| 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%);
}Два нюанси. Перший: 80 це 128 з 255, тобто 50,2%, а не рівно 50%. Альфа в HEX має лише 256 кроків, тому більшість круглих відсотків передається приблизно. Другий: Android ставить альфу на початок. У ресурсі кольору Android #801e90ff означає те саме, що #1e90ff80 у CSS.
Як прочитати HEX-код на око
Колір можна вгадати, нічого не перетворюючи. Дивіться на першу цифру кожної пари, бо саме вона несе майже всю інформацію.
| Назва в CSS | HEX | RGB | Як прочитати |
|---|---|---|---|
| tomato | #ff6347 | 255, 99, 71 | Червоний на максимумі, трохи зеленого і синього: теплий світло-червоний |
| gold | #ffd700 | 255, 215, 0 | Червоний і зелений високі, синього немає: жовтий |
| chocolate | #d2691e | 210, 105, 30 | Червоний попереду, зелений наполовину, синій низький: помаранчево-коричневий |
| darkturquoise | #00ced1 | 0, 206, 209 | Зелений і синій високі, червоного немає: блакитний (ціан) |
| dodgerblue | #1e90ff | 30, 144, 255 | Синій попереду, зелений посередині: небесно-блакитний |
| mediumorchid | #ba55d3 | 186, 85, 211 | Червоний і синій високі, зелений низький: фіолетовий |
| teal | #008080 | 0, 128, 128 | Зелений і синій наполовину: темний ціан |
| navy | #000080 | 0, 0, 128 | Лише синій, наполовину: темно-синій |
| slategray | #708090 | 112, 128, 144 | Майже рівні, синій трохи попереду: синювато-сірий |
- Найбільша перша цифра вказує на домінантне світло. У #d2691e в червоному d, у зеленому 6, у синьому 1, тож це помаранчево-коричневий.
- Два високі канали змішуються: червоний і зелений дають жовтий, зелений і синій дають блакитний (ціан), червоний і синій дають пурпуровий або фіолетовий.
- Три однакові пари дають сірий. #333333 це темно-сірий, #999999 світло-сірий. Майже однакові пари, як у #708090, дають приглушений сіруватий колір.
- Високі цифри загалом означають світлий колір, низькі означають темний. Коли всі три пари c0 або вище, колір блідий. Коли всі три 30 або нижче, він дуже темний.
- Зелений виглядає набагато яскравішим за синій з тим самим числом. У #00ff00 світлота в OKLCH дорівнює 0,866, а в #0000ff лише 0,452.
Чому #808080 не середній сірий
#808080 стоїть рівно посередині за числами: 128 з 255 у кожному каналі. Але на око він не посередині між чорним і білим. Його світлота в OKLCH дорівнює 0,600, тож він сприймається як 60% шляху до білого.
Значення HEX уже закодовані кривою sRGB, яка приблизно, але не точно повторює роботу ока. #808080 випромінює близько 21,6% світла білого, а перцептивні моделі ставлять візуальну середину нижче: OKLCH на #636363, CIELAB на #777777.
| Сірий | Що це | OKLCH L | Контраст на білому | Контраст на чорному |
|---|---|---|---|---|
| #808080 | Середина за числами, 128 | 0.600 | 3.95:1 | 5.32:1 |
| #777777 | Середина за CIELAB, L* 50 | 0.569 | 4.48:1 | 4.69:1 |
| #767676 | Найсвітліший сірий з 4.5:1 на білому | 0.566 | 4.54:1 | 4.62:1 |
| #636363 | Середина за OKLCH, L 0.5 | 0.500 | 6.01:1 | 3.50:1 |
Для тексту це важливо. Сірий #808080 на білому дає 3,95:1 і не проходить WCAG AA для основного тексту. #767676 це найсвітліший сірий, що проходить 4,5:1, а #777777, лише на крок світліший, уже не проходить з 4,48:1.
Великі чи малі літери, з # чи без
HEX-коди не залежать від регістру. #1E90FF, #1e90ff і #1E90ff це один і той самий колір у CSS, SVG і дизайн-інструментах. Оберіть один стиль і дотримуйтеся його скрізь, щоб пошук по коду знаходив кожне використання. У CSS зазвичай пишуть малими літерами.
Знак # це частина синтаксису CSS, а не кольору. Figma і багато дизайн-інструментів показують код без нього, а мови програмування часто записують його як число з префіксом 0x, як у Flutter, де Color(0xFF1E90FF) починається з пари альфи.
Як дізнатися HEX-код кольору на екрані
Скористайтеся піпеткою: це інструмент, який зчитує колір під курсором і показує його код. Такі інструменти безкоштовні і здебільшого вже встановлені.
- Chrome і Edge: відкрийте DevTools клавішею F12, клацніть будь-який кольоровий квадратик на панелі Styles і виберіть колір на сторінці значком піпетки.
- PickShade: вибір кольору на головній сторінці має в Chrome і Edge кнопку піпетки, яка бере колір будь-де на екрані.
- Windows: встановіть Microsoft PowerToys і натисніть Win + Shift + C, щоб відкрити Color Picker.
- macOS: відкрийте «Колориметр» (Digital Color Meter) у «Програми», «Утиліти». Перемкніть його на sRGB, а потім виберіть «Перегляд», «Показувати значення», «Шістнадцятково».
- Figma, Photoshop і більшість дизайн-програм: натисніть I, щоб узяти піпетку.
- На фото чи знімку екрана: відкрийте його у виборі кольору із зображення і клацніть будь-який піксель. Зображення залишається на вашому пристрої.
Узяте значення може на кілька одиниць відрізнятися від оригіналу, бо екрани застосовують колірні профілі, а зображення стискаються. Коли потрібне точне значення, копіюйте його з дизайн-файлу або CSS, а не зі знімка екрана.
Запитання і відповіді
Що таке HEX-код кольору?
HEX-код кольору це шестизначний код, наприклад #1e90ff, який описує колір через кількість червоного, зеленого і синього світла в ньому. Кожна пара шістнадцяткових цифр іде від 00 (0) до ff (255), тож #1e90ff це rgb(30, 144, 255).
Як додати прозорість до HEX-кольору?
Допишіть у кінці четверту пару цифр: #RRGGBBAA. Помножте непрозорість на 255, округліть і переведіть у HEX, тож 50% це 80, 25% це 40, а 75% це bf. Наприклад, #1e90ff80 це dodgerblue з непрозорістю приблизно 50%.
Як записати 50% прозорості в HEX?
Непрозорість 50% у HEX це 80, як у #00000080 для напівпрозорого чорного. 80 дорівнює 128 з 255, тобто 50,2%, бо альфа в HEX має 256 кроків, а рівно 50% припадає між 7f і 80.
Чим HEX відрізняється від RGB?
Колір той самий, різниться лише запис. HEX записує значення червоного, зеленого і синього парами в шістнадцятковій системі, rgb() десятковими числами від 0 до 255, тож #ff6347 і rgb(255, 99, 71) це той самий томатно-червоний.
Чи залежать HEX-коди від регістру?
Ні. #FF6347, #ff6347 і #Ff6347 це один і той самий колір у CSS, HTML, SVG і дизайн-інструментах. У більшості CSS-проєктів пишуть малими літерами, але підійде будь-який стиль, аби він був послідовним.
Який HEX-код у середнього сірого?
#808080 це середина за числами, але на вигляд він світліший за середину, його світлота в OKLCH 0,600. Сірий, який виглядає посередині між чорним і білим, лежить між #636363 (OKLCH L 0,5) і #777777 (CIELAB L* 50).