Skip to content

Конвертер цветов — HEX, RGB, HSL и OKLCH

Конвертируйте HEX в RGB, HSL, OKLCH, OKLAB и CMYK прямо в браузере — копируйте любой формат в один клик. Бесплатно, без регистрации, ваши цвета никогда не покидают страницу.

Без отслеживания Работает в браузере Бесплатно
Вся конвертация цветов происходит локально в браузере. Никакие данные не отправляются на сервер.
Цветовой охват: sRGB Display P3 Rec2020
Контраст против:
AA AA-Lg AAA AAA-Lg · APCA Lc
Симуляция дальтонизма (8 типов)
Протанопия (нечувствительность к красному)
Дейтеранопия (нечувствительность к зелёному)
Тританопия (нечувствительность к синему)
Ахроматопсия (полная)
Протаномалия (слабая чувствительность к красному)
Дейтераномалия (слабая чувствительность к зелёному)
Тританомалия (слабая чувствительность к синему)
Ахроматомалия (частичная)
Tints / Shades / Tones / Harmonies

Светлые оттенки

Тёмные оттенки

Тона

Гармонии

Скопировать как код
Справочник распространённых цветов
Проверено на соответствие CSS Color 4, корректность матрицы OKLAB, точность WCAG 2.x + APCA Lc и паритет симуляции CVD 8 типов с опубликованными значениями Brettel + Machado. — Команда инженеров Go Tools · May 27, 2026

Что такое конвертер цветов?

Конвертер цветов — это небольшая утилита, которая переводит одно значение цвета между форматами, которые ваша цепочка инструментов, ваша дизайн-система и ваш браузер действительно понимают — HEX, RGB, HSL, HSV, HWB, CMYK, OKLCH, OKLAB и 148 именованных CSS-цветов. Онлайн-конвертеры были основой веб-инструментария с начала 2000-х, когда ответом почти всегда был простой текстовый бокс HEX-в-RGB, построенный для таблицы стилей эпохи Geocities. От тех старых инструментов современный конвертер отличают три вещи: UX с единым полем, где каждый формат одновременно редактируем, а не однонаправленный выпадающий список; источник истины OKLCH, который хранит каноническое значение внутри, чтобы переводы туда-обратно оставались бит-стабильными; и перцептивная математика, основанная на W3C CSS Color 4 вместо запутанной гамма-арифметики HSL, которую поставляли инструменты поколения 2003 года.

Разные цветовые пространства существуют потому, что разные задачи требуют разных представлений, и ни одно пространство не подходит для всех. RGB аппаратно-нативный — он напрямую отображается на красный, зелёный и синий субпиксели LCD или люминофоры CRT, и каждый канал кодируется как 8-битное целое от 0 до 255. HEX — это просто RGB по основанию 16, упакованный в шестисимвольную строку для лаконичного копирования в CSS и Figma. HSL, HSV и HWB — это designer-cognitive пространства — цилиндрические преобразования RGB, которые позволяют вращать оттенок, осветлять или затемнять интуитивными слайдерами. HSL был опубликован в 1978 году вместе с HSV Элви Рэем Смитом; HWB был добавлен в 1996 году как более чистая ментальная модель (Hue + количество White + количество Black). CMYK — это абстракция полиграфического процесса — субтрактивный стек чернил (Cyan, Magenta, Yellow, Key=чёрный), моделирующий, как чернила поглощают свет на бумаге, а не как экран его излучает. OKLCH и OKLAB — это перцептивные пространства — они спроектированы так, чтобы равное численное расстояние соответствовало равному воспринимаемому расстоянию, что делает их незаменимыми для шкал дизайн-систем и математики доступности. Именованные цвета — это CSS-legacy: 148 имён SVG/CSS3 вроде `tomato`, `rebeccapurple` и `slategray`, которые поставляются с каждым браузером.

Более двадцати лет sRGB был «достаточно хорош» — стандарт IEC 1996 года, построенный вокруг первичных люминофоров CRT-мониторов того времени. Он тихо определял верхнюю границу того, что может значить веб-цвет. Затем дисплеи с широким цветовым охватом сломали это допущение. Display P3 от Apple покрывает примерно на 50% больше видимого спектра, чем sRGB, и теперь поставляется в каждом iPhone, iPad и MacBook с 2017 года и далее. Rec2020 покрывает ещё больше и является стандартом вещания для HDR-телевидения. HSL встроил гамма-причуды sRGB глубоко в своё определение, поэтому шкала HSL выглядит визуально неровно на дисплее с широким охватом — зелёный при L=50% выглядит ярче, чем синий при L=50%, потому что L в HSL геометрическая, а не перцептивная. В 2020 году Бьорн Оттоссон опубликовал OKLAB — перцептивно-равномерное цветовое пространство, выведенное из CIE-LAB с исправленной реакцией светлоты и более чистым поведением при высокой насыщенности. OKLCH — его полярная форма (Lightness / Chroma / Hue), та же форма, что и HSL, но с исправленной перцептивной математикой. CSS Color 4 добавил синтаксис `oklch()` и `oklab()` в 2022 году; Chrome 111 поставил поддержку в марте 2023 года, Safari 15.4 имел её уже в марте 2022 года, а Firefox 113 приземлился в мае 2023 года. Tailwind v4, выпущенный в 2025 году, сделал OKLCH своим форматом цветовых токенов по умолчанию; shadcn/ui последовал вскоре после. Этот инструмент отражает этот сдвиг, делая OKLCH внутренним источником истины — каждая конвертация маршрутизируется через OKLCH, поэтому переход туда-обратно HEX → RGB → OKLAB → HEX никогда не накапливает дрейф плавающей точки, а прямое редактирование канала L в OKLCH точно обновляет каждое другое поле.

Какое пространство выбрать, зависит целиком от того, что вы делаете. **HEX** — правильный выбор для встраивания в веб, копирования между дизайн-инструментами и кодом и везде, где важны лаконичные идентификаторы — `#3b82f6` комфортно умещается в CSS-переменной, и большинство frontend-разработчиков могут прочитать его с одного взгляда. Специализированный конвертер HEX в RGB обрабатывает самое распространённое направление в один шаг; обратный конвертер RGB в HEX покрывает случай, когда у вас есть отдельные целочисленные каналы от дизайнера или из конвейера математики пикселей изображения. **RGB** — для прямой адресации аппаратуры — везде, где нужны целые числа 0–255 (canvas API, манипуляции с изображениями, аппаратные LED-ленты, атрибуты цвета OpenGL). **HSL** — это legacy designer-cognitive пространство — вращать оттенок, осветлять, затемнять — и по-прежнему полезен, когда нужна быстрая правка CSS-цвета в проекте, который не мигрировал на OKLCH. Однонаправленный конвертер HEX в HSL — правильный шорткат, когда это всё, что вам нужно. **HSV и HWB** — это пространства пипеток для дизайнеров. HSV (Hue, Saturation, Value) соответствует квадрату saturation-value, который рисует большинство UI пипеток, поэтому именно его сообщают Photoshop, Figma и Sketch, когда вы кликаете пипеткой. HWB — более чистая ментальная модель — выберите чистый оттенок, затем добавьте белый, чтобы осветлить, или чёрный, чтобы затемнить, — и CSS Color 4 добавил нативную поддержку `hwb()` во всех вечнозелёных браузерах. **CMYK** — для подготовки к печати. Прямой дисклеймер: наш вывод CMYK — это наивное приближение на основе sRGB по стандартной формуле `K = 1 - max(R,G,B); C = (1-R-K)/(1-K)`. Реальная точность печати требует конвертации через ICC-профиль против конкретного пресса, чернил и бумаги — обычно US Web Coated SWOP v2 или Fogra39, — что может сдвинуть каналы на 5–15%. Воспринимайте наш CMYK как стартовую оценку, а не как готовый результат. Однонаправленный конвертер HEX в CMYK применяет ту же формулу с той же оговоркой. **OKLCH** — выбор по умолчанию для нового кода в 2025 году и далее — современные дизайн-системы, генерация палитр с учётом доступности, везде, где важна перцептивная равномерность. Однонаправленный конвертер HEX в OKLCH существует для быстрой миграции legacy-палитр. **OKLAB** — прямоугольный родственник, используемый для математики палитр: средние точки между двумя цветами, вычисления расстояний, матрицы симуляции дальтонизма и другие операции, требующие арифметики по линейным осям. **Именованные цвета** — для документации, комментариев в коде, мокапов и прозы — 148 именованных CSS-цветов — это фиксированный словарь, и инструмент находит ближайший именованный цвет для любого ввода через расстояние ΔE в OKLAB.

Граф конвертации в основе всего этого хорошо определён и удивительно чист. sRGB и линейный sRGB связаны кусочной гамма-кривой, заданной в W3C CSS Color 4 §11.2 (примерно показатель 2,4 с маленьким линейным сегментом возле нуля). Линейный sRGB и CIE XYZ D65 связаны фиксированной матрицей 3×3 из CSS Color 4 §15.1. XYZ D65 и OKLAB связаны двумя матрицами и шагом извлечения кубического корня (стадия LMS cone-response, по Оттоссону 2020). OKLAB и OKLCH связаны декартово-полярным преобразованием — `C = sqrt(a² + b²); H = atan2(b, a)`. HEX — это просто sRGB, сериализованный как `#RRGGBB` по основанию 16. RGB ↔ HSL, RGB ↔ HSV, RGB ↔ HWB — это прямые геометрические преобразования внутри sRGB, определённые в CSS Color 4 §5–7. CMYK — это наивная формула на основе sRGB выше. Весь конвейер — это направленный граф с корнем в OKLCH внутри; каждый другой формат вычисляется из него на каждом нажатии клавиши.

Помимо основной конвертации этот инструмент поставляет возможности, которых не было у поколения legacy. **Определение цветового охвата Display P3 и Rec2020** — три бейджа отмечают, попадает ли текущий цвет внутрь воспроизводимого диапазона каждого пространства, с кнопкой **Snap to sRGB** в один клик, которая использует двоичное уменьшение chroma (по информативному алгоритму CSS Color 4), чтобы сжать цвет, пока он не впишется. Это особенно важно для команд, работающих с токенами Tailwind v4: многие современные палитры намеренно используют значения OKLCH, превышающие sRGB, но вписывающиеся в P3, чтобы дисплеи Apple показывали более насыщенную и живую версию того же бренда. **Двойные бейджи контраста WCAG 2 + APCA Lc** — обе метрики показаны в одном ряду, чтобы вы могли пройти регуляторный стандарт сегодня и сверить с перспективной перцептивной метрикой. **8 симуляций дальтонизма** — протанопия, дейтеранопия и тританопия через матрицы дихромазии Brettel-Viénot-Mollon 1997; протаномалия, дейтераномалия и тританомалия через матрицы аномальной трихромазии Machado-Oliveira-Fernandes 2009 при тяжести 0,66; ахроматопсия и частичная ахроматомалия через rec601 luminance weights. Эти восемь предпросмотров покрывают примерно 8% мужчин и 0,5% женщин — это значит, что когда ваш дизайн опирается только на оттенок, чтобы передать состояние (зелёный = успех, красный = ошибка), эти пользователи могут не отличить одно от другого. **Генерация перцептивно-равномерных палитр в OKLCH** — светлые оттенки, тёмные оттенки, тона и гармонии, построенные путём шага по каналу L равными приращениями при фиксированных C и H (та же конструкция, что и в генераторе палитры по умолчанию в Tailwind v4). **Сниппеты кода CSS / Tailwind v4 / SwiftUI / Compose / Flutter** — готовый к вставке вывод для пяти платформ, в которые целится большинство кросс-командных команд. **Интеграция EyeDropper API** на браузерах на базе Chromium (Chrome, Edge, Brave, Opera) для выбора цветов где угодно на экране, включая за пределами браузера. **URL-хэш состояния** — текущий цвет кодируется в URL как `#hex=...` или `#oklch=...`, чтобы вы могли поделиться живой ссылкой на точный цвет в один копи.

Всё в этом инструменте работает локально в браузере. Ваши значения цветов никогда не загружаются, никогда не логируются, никогда не анализируются, никогда не сохраняются на сервере. Ноль сетевых запросов по мере ввода — откройте DevTools во вкладке Network и понаблюдайте: ввод в любое поле не вызывает никакого трафика. Это делает инструмент безопасным для необъявленных брендовых палитр, внутренних систем дизайн-токенов, черновых мокапов и любой другой конфиденциальной работы с цветом. Никакие куки не записывают, что вы вставляете; никакая аналитика не срабатывает на изменениях цвета. Та же позиция распространяется на URL-хэш: фрагмент `#hex=...` живёт только в адресной строке и никогда не передаётся на сервер (браузеры не включают фрагмент в HTTP-запросы), поэтому даже общая ссылка не утекает цвет никакой третьей стороне, кроме получателя, которому вы её отправили. Для команд, работающих с предзапусковой брендовой работой, эмбарго-кампаниями или клиентскими палитрами под NDA, это имеет большее значение, чем намекает заголовок об удобстве. По сравнению с серверными конвертерами, которые отправляют каждое нажатие клавиши на бэкенд для оценки, гарантия приватности здесь не маркетинговая, а архитектурная: код, который вы можете прочитать в DevTools, делает невозможным утечку, потому что путь сетевого вызова попросту отсутствует. Чтобы глубже разобраться, почему OKLCH стал стандартом дизайн-систем в 2024–2026 годах, прочитайте наш сопутствующий гид: Цветовое пространство OKLCH — почему его принял Tailwind v4.

// 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)

Ключевые возможности

9 одновременно редактируемых цветовых пространств

Каждый формат — HEX, RGB, HSL, HSV, HWB, CMYK, OKLCH, OKLAB и именованный CSS-цвет — это напрямую редактируемое поле, а не однонаправленный выпадающий список. Введите значение `oklch()`, и HEX, RGB, HSL обновятся; вставьте HEX из Figma, и OKLCH обновится с соответствующими перцептивными координатами. Курсор в поле, которое вы редактируете, остаётся на месте — только остальные восемь полей перерисовываются на каждом нажатии, поэтому редактирование идёт естественно.

OKLCH как источник истины — бит-точные переходы туда-обратно

Внутреннее каноническое представление — OKLCH, перцептивно-равномерная полярная форма OKLAB (Оттоссон 2020). Каждый другой формат выводится из него на каждом нажатии. Это значит, что переходы туда-обратно HEX → RGB → HSL → OKLAB → HEX происходят без дрейфа плавающей точки — исходный HEX возвращается неизменным. Legacy-конвертеры, маршрутизирующие конвертации через HSL или sRGB, накапливают ошибку округления на каждом шаге; этот инструмент — нет.

Предупреждения о цветовом охвате Display P3 + Rec2020

Три живых бейджа (sRGB, Display P3, Rec2020) показывают, попадает ли текущий цвет внутрь воспроизводимого диапазона каждого пространства. Полезно, когда вы работаете в OKLCH и хотите знать, какие дисплеи отрисуют значение точно — многие цвета OKLCH в Tailwind v4 превышают sRGB, но вписываются в P3, который могут отрисовать большинство устройств Apple с 2017 года. Кнопка Snap to sRGB использует алгоритм двоичного уменьшения chroma из CSS Color 4, чтобы сжать цвет, пока он не впишется.

WCAG 2 + APCA контраст в одном ряду

Контраст против белого и чёрного показан с использованием двух метрик бок о бок: коэффициент WCAG 2.1 (4.5:1 = AA для основного текста, 7:1 = AAA) для регуляторного соответствия сегодня и оценка APCA Lc (перспективный алгоритм перцептивного контраста WCAG 3). APCA чувствителен к полярности (светлый-на-тёмном взвешивается иначе, чем тёмный-на-светлом), что симметричная формула WCAG 2 делает неверно. Используйте обе: WCAG для аудита, APCA для реальной читаемости.

Симуляция дальтонизма по 8 типам нарушений

Живой предпросмотр для трёх дихромазий (протанопия, дейтеранопия, тританопия) через матрицы Brettel-Viénot-Mollon 1997, трёх аномальных трихромазий (протаномалия, дейтераномалия, тританомалия) через матрицы Machado-Oliveira-Fernandes 2009 при тяжести 0,66, плюс ахроматопсии и ахроматомалии через rec601 luminance weights. Покрывает примерно 8% мужчин и 0,5% женщин — те группы, для которых ваш дизайн должен оставаться доступным.

Перцептивно-равномерные tints, shades, tones и harmonies в OKLCH

Шкалы палитр генерируются путём шага по каналу L равными приращениями OKLCH при фиксированных chroma и оттенке — та же конструкция, что использует Tailwind v4. Результат перцептивно ровный: визуальный разрыв между стопами 400 и 500 выглядит идентичным разрыву между 500 и 600, чего шкала HSL гарантировать не может. Гармонии (complement, triad, tetrad, split-complement) вращают оттенок на точные углы и сохраняют L+C.

Копирование как CSS / Tailwind v4 / SwiftUI / Compose / Flutter

Генерация кода в один клик для пяти платформ, на которые отгружает большинство кросс-командных команд: CSS custom property (`--color-brand: oklch(0.629 0.193 263.4)`), токен Tailwind v4 `@theme`, литерал SwiftUI `Color(red:green:blue:)`, константа Jetpack Compose `Color(0xFF3B82F6)`, Flutter `Color(0xFF3B82F6)`. Точный синтаксис, который ожидает каждая платформа, готовый к вставке в брендовую таблицу стилей, asset-каталог iOS или тему Android.

Самописная пипетка OKLCH (без зависимостей)

Квадрат SL + слайдер оттенка + слайдер альфы написаны на чистом canvas + JavaScript без внешней библиотеки пипетки. Градиент OKLCH на слайдере оттенка вычисляется из настоящей математики OKLCH, а не приближается через HSL, поэтому перетаскивание слайдера даёт перцептивно-равномерное вращение оттенка. Вес бандла остаётся менее 10 КБ для всего интерактивного слоя; первая отрисовка быстрая даже на холодных загрузках.

100% в браузере — без загрузки, без отслеживания

Вся математика конвертации, генерация палитр, оценка контраста и определение цветового охвата работают локально в браузере. Ваши значения цветов никогда не передаются, никогда не хранятся на сервере, никогда не логируются, никогда не анализируются. Ноль сетевых запросов по мере ввода — проверьте в DevTools. Безопасно для необъявленных брендовых палитр, внутренних дизайн-токенов, черновых мокапов и любой другой конфиденциальной работы с цветом.

Сравнение альтернатив конвертера цветов

ColorHexa

browser tool

Давний конкурент с глубокими страницами информации по цвету — генерирует полную SEO-страницу на каждый HEX с конвертациями, палитрами, гармониями и градиентами. UI устаревший (эстетика начала 2010-х), без поддержки OKLCH, без контраста APCA, без обработки широкого охвата. Силён для SEO-обнаружения конкретного цвета («#FF5733» как поисковый запрос); слабее для активной дизайн-работы, где важен UX единого поля.

RapidTables

browser tool

Широкий выбор однонаправленных конвертеров (HEX в RGB, RGB в HEX, HEX в HSL и т.д.) плюс другие инструменты единиц измерения. Каждая конвертация — отдельная страница с однонаправленной формой — без живого опыта единых полей. Без поддержки OKLCH, без предупреждений о цветовом охвате, без проверки контраста. Полезен для разовых быстрых конвертаций, когда вы приходите из поиска Google; этот инструмент быстрее для любого рабочего процесса с более чем одной конвертацией.

HTMLColorCodes

browser tool

Сильная пипетка цвета и генератор палитры с чистым UI. UX пипетки хорош для визуального исследования. Сторона конвертера базовая — только HEX, RGB, HSL, HSV, CMYK; без OKLCH, без OKLAB, без определения цветового охвата. Лучше всего, когда нужно визуально исследовать варианты цвета; этот инструмент выигрывает, когда нужны современные цветовые пространства или точная математика конвертации.

OKLCH.com

browser tool

Красиво построенный инструмент с фокусом на OKLCH от Андрея Ситника (автора полифилла postcss-oklab-function). Лучший в классе для исследования OKLCH с пипеткой, поддерживающей широкий охват, и генерацией палитры. Не покрывает конвертацию HEX/RGB/HSL/CMYK как основные выходы — сфокусирован только на OKLCH. Обращайтесь к OKLCH.com, когда занимаетесь чистой работой по дизайну в OKLCH; обращайтесь к этому инструменту, когда нужна конвертация между пространствами.

ConvertingColors

browser tool

Покрывает много цветовых пространств (HEX, RGB, HSL, HSV, CMYK, XYZ, CIELAB и несколько других) с моделью SEO-content-страницы на каждый цвет, похожей на ColorHexa. Не хватает современной поддержки OKLCH, без контраста APCA, без обработки широкого охвата, а автоматически сгенерированные content-страницы ощущаются ферменными. Хорош для копания в метаданных отдельных цветов; этот инструмент быстрее для активной дизайн-работы и работы по доступности.

IT-Tools

open-source browser tool

Чистая самохостимая коллекция dev-инструментов на Vue 3, с конвертером цветов среди многих других утилит. UX согласован по всему набору. Конвертер цветов покрывает HEX, RGB, HSL, HSV, CMYK; без OKLCH, без предупреждений о цветовом охвате, без проверки контраста, без симуляции дальтонизма. Стоит запускать локально, если хотите самохостимую мультиинструментальную коллекцию; этот инструмент — специализированный, более глубокий вариант только для цвета.

W3Schools Color Converter

browser tool

Базовый переключатель HEX/RGB/HSL на дружелюбной для новичков странице, повсеместный в результатах поиска по запросам конвертера цветов. Без OKLCH, без продвинутых функций. Полезен как обучающий справочник рядом с пояснительным контентом W3Schools. Этот инструмент выигрывает по любой другой оси: больше пространств, перцептивная математика, функции цветового охвата + контраста + CVD, современный экспорт кода Tailwind v4 / SwiftUI / Compose / Flutter.

Примеры конвертации цветов

Брендовый цвет Tailwind v4 → OKLCH

#3b82f6

Вывод OKLCH: `oklch(0.629 0.193 263.4)`. Бросьте его прямо в блок `@theme` Tailwind v4 как `--color-brand-500: oklch(0.629 0.193 263.4);` — и остальная часть вашей шкалы выровняется перцептивно. Tailwind v4 стандартизировал OKLCH для своей палитры по умолчанию в 2024 году именно потому, что канал L удерживает воспринимаемую светлоту согласованной по всем оттенкам — green-500 и blue-500 выглядят одинаково яркими, чего шкалы HSL/RGB гарантировать не могут. HEX сохраняется дословно, если вам также нужен fallback для старых браузеров.

Веб-HEX → литерал SwiftUI Color

#FF5733

Вывод SwiftUI (под Copy as code → SwiftUI): `Color(red: 255/255, green: 87/255, blue: 51/255)`. Классический рабочий процесс iOS / macOS: дизайнер бросает HEX в брендовую панель Figma, вы вставляете его сюда и копируете литерал SwiftUI во `View`. Форма выражения (с явными делениями `/255`) намеренная — она переживает code review лучше, чем непрозрачный `Color(red: 1.0, green: 0.341, blue: 0.2)`, потому что исходный брендовый HEX по-прежнему виден в коде.

Образец цвета из палитры дизайнера → приближение CMYK для печати

#FF6347

Вывод CMYK: примерно `cmyk(0%, 61%, 72%, 0%)`. Это наивная конвертация sRGB → CMYK по стандартной формуле `K = 1 − max(R,G,B); C = (1−R−K)/(1−K)` — полезна как быстрая стартовая оценка для расчёта в типографии, но не замена настоящей конвертации. Типография прогонит файл через ICC-профиль (обычно US Web Coated SWOP v2 или Fogra39), настроенный на конкретный пресс, краску и бумагу, что может сдвинуть каналы на 5–15%. Воспринимайте это число как ориентир, а не как готовый результат.

Цвет OKLCH с широким охватом → fallback в sRGB

oklch(0.7 0.25 30)

Ряд цветового охвата сразу помечает этот цвет как **вне sRGB** (Display P3 его покрывает, Rec2020 покрывает). На стандартном мониторе он отрисуется как обесцвеченное приближение; на дисплее с поддержкой P3 (большинство ноутбуков, выпущенных после 2017 года) — насыщенным. Нажмите **Snap to sRGB**, чтобы уменьшить chroma, пока цвет не впишется в куб sRGB, затем скопируйте получившийся HEX (около `#ef6b50`) как fallback. Источник истины в OKLCH позволяет хранить значение с широким охватом в design-токенах и поставлять прижатый HEX как fallback в `@supports not (color: oklch(...))`.

Проверить контраст WCAG для основного текста

#767676

Против белого (`#ffffff`) коэффициент контраста WCAG 2.1 возвращается около **4.54:1** — чуть выше порога 4.5:1 AA для обычного основного текста. Уменьшите одну цифру до `#777777`, и коэффициент падает до 4.48:1, что не проходит AA. Значение APCA Lc показывается рядом как перспективная метрика (черновик WCAG 3) — APCA оценивает эту пару примерно в `Lc 60`, чуть ниже рекомендованного APCA `Lc 75` для основного текста. Используйте обе: WCAG, чтобы пройти аудит сегодня, APCA — чтобы убедиться, что результат действительно читаем.

Найти именованный CSS-цвет, ближайший к брендовому HEX

#FF6347

Поле **Named** возвращает `tomato (exact)`, потому что CSS-спецификация определяет `tomato` буквально как `#FF6347` — один из 148 именованных цветов, поставляющихся с каждым браузером. Попробуйте близкий промах вроде `#FF6348`, и поле вернёт `tomato (nearest, ΔE 0.02)`, сообщая ближайший именованный цвет и насколько он далёк по CIE ΔE (Delta-E в пространстве OKLAB). Полезно, когда вы пишете текст или комментарии и хотите человекочитаемое имя цвета вместо HEX-кода.

Перевести старое значение HSL в современный OKLCH

hsl(220 70% 50%)

Вывод OKLCH: примерно `oklch(0.5 0.187 263)`. L=50% в HSL — это **не** перцептивно 50%: синий при L=50% выглядит значительно темнее, чем жёлтый при L=50%, потому что HSL — это цилиндрическое преобразование sRGB, а не равномерное цветовое пространство. L=0.5 в OKLCH действительно соответствует яркости средне-серого, которую воспринимает ваш глаз. Когда вы переносите дизайн-систему с HSL на OKLCH, ожидайте, что значения L сдвинутся (синие пойдут вверх, жёлтые — вниз) — это система корректирует себя, а не баг.

Получить палитру из 5 светлых и 5 тёмных оттенков из брендового цвета

#3b82f6

Раздел **Tints / Shades / Tones / Harmonies** генерирует 5 более светлых и 5 более тёмных вариантов, шагая по каналу L OKLCH равными приращениями при фиксированных C и H. Результат — перцептивно ровная шкала: визуальный разрыв между `500` и `600` выглядит таким же, как между `600` и `700`, что и нужно дизайн-системе. Нажмите любой образец цвета, чтобы загрузить его как активный, затем скопируйте его HEX/OKLCH. Та же конструкция, что и в генераторе палитры по умолчанию в Tailwind v4.

Как пользоваться конвертером цветов

  1. 1

    Вставьте или введите любой цвет в любом формате

    Каждое из 9 полей форматов (HEX, RGB, HSL, HSV, HWB, CMYK, OKLCH, OKLAB, Named) напрямую редактируемо — нет кнопки «Convert», на которую надо нажимать. Вставьте HEX из Figma, введите значение `oklch()` из конфига Tailwind, бросьте `hsl()` из старой таблицы стилей или даже введите именованный CSS-цвет вроде `tomato`. Инструмент парсит инкрементально по мере ввода, поэтому полу-введённое значение не разрушит остальные, пока вы не зафиксируете валидный формат. Невалидный ввод получает тихую инлайн-ошибку; валидный ввод обновляет всю сетку.

  2. 2

    Все 9 форматов обновляются мгновенно

    Внутренний источник истины — OKLCH (перцептивно равномерный, без ограничений цветового охвата), и каждый другой формат выводится из него на каждом нажатии клавиши. Поле, в котором вы сейчас печатаете, сохраняет позицию курсора — только *остальные* восемь полей перерисовываются. Это значит, что вы можете напрямую редактировать канал L в OKLCH и в реальном времени видеть, как сдвигаются HEX, RGB, HSL и CMYK, не теряя курсор. Математика конвертации выполняется полностью на JavaScript с использованием тех же примитивов OKLAB, которые поставляются в современных браузерах.

  3. 3

    Используйте пипетку для визуального исследования

    Под сеткой форматов находится квадрат насыщенности–светлоты (тяните в любую точку, чтобы задать S+L для текущего оттенка), слайдер оттенка (тяните, чтобы вращаться по цветовому кругу) и слайдер альфы (тяните, чтобы задать прозрачность). На браузерах на базе Chromium (Chrome, Edge, Brave) кнопка **Eyedropper** активирует нативный API `EyeDropper` — нажмите в любом месте экрана, включая за пределами окна браузера, чтобы взять цвет этого пикселя. Safari и Firefox пока не поставляют API, поэтому кнопка скрыта в этих браузерах, а квадрат SL + слайдер оттенка остаются основной пипеткой.

  4. 4

    Проверьте цветовой охват и контраст с одного взгляда

    Три бейджа цветового охвата (**sRGB**, **Display P3**, **Rec2020**) показывают, попадает ли текущий цвет внутрь воспроизводимого диапазона каждого пространства — полезно, когда вы работаете в OKLCH и хотите знать, какие дисплеи отрисуют значение точно. Ряд контраста показывает коэффициент WCAG 2.1 против белого и чёрного, плюс оценку APCA Lc (перспективная метрика WCAG 3). Бейджи pass / fail (AA, AAA) появляются инлайн. Если цвет вне цветового охвата sRGB, кнопка **Snap to sRGB** уменьшает chroma, пока он не впишется.

  5. 5

    Копируйте в нативном синтаксисе вашей платформы

    У каждого из 9 полей форматов своя кнопка **Copy** — один клик, значение оказывается в буфере обмена, метка кратко переключается на «Copied!», чтобы вы знали. Под пипеткой раздел **Copy as code** генерирует готовые к вставке сниппеты для пяти платформ: CSS custom property, токен Tailwind v4 `@theme`, литерал SwiftUI `Color(red:green:blue:)`, константа Jetpack Compose `Color(0xFF...)` и Flutter `Color(0xFF...)`. URL-хэш (`#hex=...` или `#oklch=...`) также обновляется, чтобы вы могли поделиться живой ссылкой на точный цвет.

Типичные ошибки в конвертации цветов

Путаница HSL с OKLCH

Оба пространства разделяют одну и ту же цилиндрическую форму Hue / Lightness / (Saturation или Chroma), что делает их похожими на бумаге. Это не так. L в HSL геометрическая — выводится из RGB усреднением максимального и минимального значений каналов — и встраивает гамма-кривую sRGB. L в OKLCH перцептивная, привязана к модели OKLAB. Шкала HSL при равномерном L выглядит заметно неровной по оттенкам; шкала OKLCH при равномерном L остаётся ровной. Не подменяйте одно другим при миграции дизайн-системы без перенастройки.

✗ Неверно
Считать палитру HSL перцептивно равномерной:
hsl(220 50% 30%) → hsl(220 50% 60%) → hsl(220 50% 90%)
На экране они выглядят неравномерно распределёнными.
✓ Верно
Использовать OKLCH для перцептивно-равномерных шкал:
oklch(0.30 0.10 220) → oklch(0.60 0.10 220) → oklch(0.90 0.10 220)
На экране они выглядят равномерно распределёнными.

Доверять наивному CMYK для печати

Вывод CMYK здесь — из стандартной учебниковой формулы `K = 1 - max(R,G,B)`, применённой к sRGB. Это полезный ориентир, но не замена настоящей конвертации. Типографии прогоняют файлы через ICC-профиль (US Web Coated SWOP v2, Fogra39, Japan Color 2011 и др.), настроенный на конкретный пресс, чернила и бумагу. ICC-конвертированный CMYK может отличаться от наивной формулы на 5–15% по каналу. Отправляйте исходный HEX из sRGB печатнику и позвольте им сделать правильную конвертацию.

✗ Неверно
Отправить наш вывод CMYK прямо в пресс:
hex #FF6347 → cmyk(0%, 61%, 72%, 0%)
Результат печати может выглядеть мутным или пересатурированным.
✓ Верно
Отправить исходный HEX типографии:
hex #FF6347 → позволить печатнику сделать ICC-конвертацию против их пресса
Результат печати совпадает с экранным цветом гораздо ближе.

Читать APCA Lc как число, совместимое с WCAG 2

APCA Lc и коэффициенты WCAG 2 — это разные шкалы, измеряющие разные вещи. WCAG 2 даёт коэффициент от 1:1 (без контраста) до 21:1 (максимальный контраст), с 4.5:1 — юридическим минимумом AA для основного текста. APCA даёт Lc от 0 до ±108 со знаком, указывающим полярность (положительный для тёмного текста на светлом фоне, отрицательный для светлого текста на тёмном). Lc 60 не соответствует WCAG 4.5:1; отношение нелинейное и зависит от направления. Используйте обе метрики бок о бок, не одну как перевод другой.

✗ Неверно
Делать вид, что Lc 60 = WCAG 4.5:1:
APCA Lc 60 → «это проходит AA»
Коэффициент WCAG 2 для той же пары может быть 3.8:1 (не проходит AA).
✓ Верно
Проверять обе метрики независимо:
Коэффициент WCAG 2 ≥ 4.5:1 для соответствия AA для основного текста, И
APCA |Lc| ≥ 75 для реальной читаемости.
Обе должны пройти, а не одна подменять другую.

Использовать HSL для оттенков дизайн-системы

Генерация шкалы 50/100/200/.../900 шагом по каналу L в HSL даёт визуально неровную шкалу, потому что L в HSL не перцептивная. Тёмные стопы выглядят слишком тёмными, светлые стопы — слишком светлыми, а средние стопы сжимаются. Дизайнеры исправляют это вручную, подстраивая каждый стоп — многочасовое упражнение на каждый брендовый цвет. OKLCH решает проблему конструктивно — равные шаги L выглядят равными — поэтому шкала ровная с первой попытки.

✗ Неверно
Шагать по L в HSL для оттенков:
hsl(220 50% 30%) / hsl(220 50% 60%) / hsl(220 50% 90%)
90% выглядит размытым; 30% выглядит значительно темнее, чем разрыв до 60%.
✓ Верно
Шагать по L в OKLCH для оттенков:
oklch(0.30 0.10 220) / oklch(0.60 0.10 220) / oklch(0.90 0.10 220)
Каждый шаг выглядит как один и тот же визуальный разрыв.

Забыть про альфу при копировании HEX

8-значный HEX (`#RRGGBBAA`) и 4-значная сокращённая запись (`#RGBA`) кодируют прозрачность альфы в последней паре. CSS поддерживает оба; старые парсеры (включая некоторые legacy CSS-препроцессоры и дизайн-инструменты до 2018 года) понимают только 6-значный HEX и тихо обрезают альфу. Результат: цвет, который вы ожидали 50%-прозрачным, рендерится полностью непрозрачным. Всегда проверяйте, что целевой синтаксис принимает 8-значный HEX, перед копированием значений с альфой; для legacy-целей делайте fallback на `rgba()`.

✗ Неверно
Скопировать 8-значный HEX в legacy-парсер:
#FF573380 → парсер обрезает → #FF5733 (без альфы)
50%-прозрачность тихо теряется.
✓ Верно
Проверить, что цель поддерживает 8-значный HEX, или использовать rgba():
для современного CSS: #FF573380 (8-значный HEX)
для поддержки legacy: rgba(255, 87, 51, 0.5) (всегда поддерживается)
Явный синтаксис альфы избегает тихого обрезания.

Прижимать к sRGB без учёта Display P3

Snap to sRGB — полезная страховочная сеть для legacy-контекстов, но применение её без разбора сводит на нет дисплей с широким охватом, для которого вы, возможно, проектируете. Большинство устройств Apple с 2017 года и далее рендерят Display P3 нативно; многие современные Android-устройства и экраны ноутбуков тоже. Цвет OKLCH с широким охватом, превышающий sRGB, но вписывающийся в P3, выглядит драматически более насыщенным на аппаратуре P3, чем прижатое приближение sRGB. Сначала проверьте бейдж P3; прижимайте только при таргетинге legacy-контекстов только с sRGB.

✗ Неверно
Прижимать каждый цвет OKLCH к sRGB по умолчанию:
oklch(0.7 0.25 30) → snap → oklch(0.7 0.18 30)
Дисплеи P3 теряют 30%+ насыщенности без причины.
✓ Верно
Сначала проверить бейдж Display P3:
если вписывается в P3: оставить значение с широким охватом, добавить sRGB-fallback через @supports
если превышает P3: тогда прижать к sRGB
Позвольте аппаратуре с широким охватом делать свою работу.

Кто пользуется этим инструментом

Frontend-разработчики, мигрирующие на токены OKLCH в Tailwind v4
Tailwind v4 стандартизировал OKLCH для своей палитры по умолчанию в 2024 году. Миграция старой дизайн-системы на HSL или HEX означает конвертацию сотен брендовых цветов в OKLCH. Вставьте каждый HEX, скопируйте вывод OKLCH, бросьте в блок `@theme`. Живые бейджи цветового охвата отмечают любые цвета, превышающие sRGB, чтобы вы могли решить, оставить ли значение с более широким охватом для дисплеев Display P3.
Дизайнеры, переводящие цвета из Figma в iOS / Android
Figma по умолчанию экспортирует HEX, но iOS хочет литералы SwiftUI `Color(red:green:blue:)`, а Android — константы Jetpack Compose `Color(0xFF...)`. Вставьте HEX из Figma один раз, скопируйте сниппет SwiftUI для iOS-инженера и сниппет Compose для Android-инженера — оба уже в точном синтаксисе, которого ожидает каждая платформа, с исходным HEX, сохранённым в комментарии для прослеживаемости.
Дизайнеры, готовящие пробы печати (приближение CMYK)
Когда брендовый цвет должен появиться на печатной визитке, приближение CMYK даёт быструю оценку, чтобы поделиться с типографией до правильной ICC-конвертации. Вставьте брендовый HEX, скопируйте проценты CMYK, отправьте печатнику для быстрого расчёта — затем доверьтесь типографской ICC-конвертации с учётом профиля для окончательного соответствия цвета конкретному прессу.
Инженеры доступности, проверяющие WCAG и APCA
WCAG 2.1 — это регуляторный стандарт (ADA, EAA, Section 508) сегодня; APCA Lc — предложенный преемник WCAG 3. Обе метрики, показанные бок о бок, означают, что дизайнер может проверить, что цвет основного текста достигает 4.5:1 WCAG против белого, затем сверить, что он также проходит APCA Lc 75, на одном экране — без скакания между двумя отдельными калькуляторами.
Преподаватели, обучающие концепциям цветовых пространств
Одновременный девятипольный вид делает отношения между цветовыми пространствами видимыми. Введите значение OKLCH, понаблюдайте, как HSL дрейфует, потому что L означает разное в каждом пространстве. Перетащите слайдер оттенка и понаблюдайте, как HEX, RGB и CMYK все обновляются. Покажите, как бейджи цветового охвата становятся красными, когда вы толкаете chroma за пределы sRGB. Инструмент сам себе аудиторная демонстрация для университетского курса по графике или HCI.
Бренд-менеджеры, ищущие ближайший именованный CSS-цвет
Когда маркетинговый текст говорит «акцент цвета помидора», но реальный брендовый HEX — `#FF6347`, поле Named возвращает `tomato (exact)`, потому что именно в это разрешается `tomato` в CSS-спецификации. Для близких промахов HEX поле возвращает ближайший именованный цвет с расстоянием ΔE в OKLAB — полезно для документации, прозы и неформального именования цветов.
Веб-разработчики, конвертирующие legacy HEX-палитры в OKLCH
Старый сайт может иметь 50-цветную брендовую палитру, определённую в CSS custom properties как HEX-коды. Модернизация в OKLCH позволяет бренд-команде выразить те же шкалы в перцептивно-равномерном пространстве. Вставьте каждый HEX, скопируйте вывод OKLCH, замените определения переменных. Панель Tints/Shades ниже проверяет, что результирующая шкала визуально ровная, перед отгрузкой.
Мейнтейнеры open-source, документирующие дизайн-токены
Документация дизайн-токенов обычно должна показывать один и тот же цвет в нескольких синтаксисах — HEX для блока кода CSS, OKLCH для таблицы спецификации, именованный цвет для упоминаний в прозе. Одновременный вид полей позволяет мейнтейнеру скопировать каждый за один проход вместо запуска трёх отдельных конвертаций. URL-хэш, которым можно поделиться, также позволяет контрибьюторам ссылаться на точный обсуждаемый цвет в GitHub-issue.

Математика и алгоритмы конвертации цветов

OKLCH как внутренний источник истины
Инструмент хранит каноническое значение цвета как тройку OKLCH внутри. Каждое редактируемое поле выводит своё отображаемое значение из этой тройки на каждом нажатии; каждое редактирование пользователя сначала обновляет тройку, затем запускает перерисовку остальных восьми полей. Это устраняет дрейф плавающей точки на каждом шаге, который мучает конвертеры, маршрутизирующие через HSL или sRGB как точку опоры. Выбор OKLCH вместо OKLAB намеренный — полярная форма сохраняет оттенок как стабильную ось, поэтому перетаскивание слайдера оттенка не приводит к случайному кросс-фейду через серый. Согласно статье Бьорна Оттоссона 2020 года, перцептивная равномерность OKLAB — самый сильный аргумент за то, чтобы относиться к нему как к лингва франка современной математики цвета.
Источники матриц (W3C CSS Color 4 + Ottosson 2020)
Каждая матрица конвертации в кодовой базе процитирована к своему первоисточнику. Кусочная гамма-функция sRGB ↔ линейный sRGB — это W3C CSS Color 4 §11.2 (`v <= 0.04045 ? v/12.92 : ((v+0.055)/1.055)^2.4`). Матрица 3×3 линейный sRGB ↔ CIE XYZ D65 — это CSS Color 4 §15.1. Матрица XYZ D65 ↔ LMS и шаг кубического корня OKLAB взяты из эталонной реализации Оттоссона `https://bottosson.github.io/posts/oklab/`, точно так, как опубликовано. Никакие матрицы не пересчитываются и не перевыводятся — копирование их дословно делает вывод идентичным эталонным векторам спецификации.
Наивная формула CMYK и оговорка про ICC
Наш вывод CMYK использует стандартную учебниковую формулу: `K = 1 - max(R, G, B); C = (1-R-K)/(1-K); M = (1-G-K)/(1-K); Y = (1-B-K)/(1-K)`, работающую с нормализованными значениями sRGB. Это намеренное приближение. Реальная точность печати требует конвертации через ICC-профиль против конкретного пресса, чернил (например, US Web Coated SWOP v2, Fogra39, Japan Color 2011) и бумаги, что может сдвинуть каналы на 5–15%. Мы выводим поле CMYK с видимым дисклеймером, чтобы пользователи не отгружали наши значения напрямую в пресс. Воспринимайте вывод как ориентир для расчётов, а не готовый результат.
Определение цветового охвата через проверку диапазона каналов
Цвет считается внутри цветового охвата для целевого пространства (sRGB, Display P3, Rec2020), если каждый канал попадает внутрь `[-ε, 1 + ε]` после конвертации к первичным цветам этого пространства, где `ε = 1e-7` для поглощения шума точности плавающей точки на границах. Бейдж цветового охвата для каждого пространства становится красным, когда любой канал превышает диапазон. Это ловит распространённый случай — цвет OKLCH с широким охватом вроде `oklch(0.7 0.4 30)` сообщает «вне sRGB», но «внутри P3», говоря вам, какие дисплеи отрисуют его точно. Проверка выполняется на каждом нажатии.
Алгоритм snap через уменьшение chroma
Snap to sRGB использует двоичный поиск по оси chroma: фиксирует L и H на текущих значениях, ищет C ∈ [0, currentC] для наибольшего C, чья конвертация в sRGB остаётся внутри цветового охвата. Поиск выполняется максимум 30 итераций (точность ~10⁻⁹), что более чем достаточно для визуальной точности. Это соответствует информативному алгоритму gamut-mapping, описанному в CSS Color 4 §13 — сохранение светлоты и оттенка с уменьшением только chroma удерживает прижатый цвет узнаваемо в том же семействе оттенков. Мы не обрезаем каналы RGB напрямую, потому что это заметно искажает оттенок (особенно в синих).
Матрицы CVD Brettel + Machado
Симуляция дальтонизма использует два опубликованных семейства матриц. Три дихромазии — протанопия, дейтеранопия, тританопия — используют матрицы Brettel-Viénot-Mollon 1997, работающие в линейном RGB (сначала гамма-декодирование, применение матрицы, обратное гамма-кодирование). Три аномальные трихромазии — протаномалия, дейтераномалия, тританомалия — используют матрицы Machado-Oliveira-Fernandes 2009 при тяжести 0,66, что соответствует типичному пациенту с аномальной трихромазией. Ахроматопсия и частичная ахроматомалия используют rec601 luminance weights (`0.299R + 0.587G + 0.114B`) для проекции в оттенки серого. Все восемь симуляций рендерятся при каждом изменении цвета.
WCAG 2 против APCA: что использовать когда
WCAG 2.x (текущий стандарт) вычисляет симметричный коэффициент контраста из относительной яркости: `(L1 + 0.05) / (L2 + 0.05)`, цель 4.5:1 для обычного основного текста и 7:1 для AAA. Это юридический минимум соответствия для аудита доступности в 2026 году. APCA (Accessible Perceptual Contrast Algorithm) — предложенный преемник WCAG 3 — чувствителен к полярности (светлый-на-тёмном оценивается иначе, чем тёмный-на-светлом), лучше коррелирует с воспринимаемой читаемостью, цель `|Lc| ≥ 75` для основного текста. Обе метрики, показанные в одном ряду, позволяют дизайнеру пройти WCAG 2 для соответствия и APCA для реальной читаемости без скакания между двумя отдельными калькуляторами.

Лучшие практики конвертации цветов

Предпочитайте OKLCH для токенов дизайн-системы; HEX для legacy
Для любой новой дизайн-системы, отгружающейся в 2025 году или позже, определяйте брендовые цвета и шкалы палитр в OKLCH. Ось L автоматически даёт перцептивно ровные шкалы; ось chroma может адресовать цвета с широким охватом, которые HEX закодировать не может. Сохраняйте HEX-fallback для старых браузеров через `@supports not (color: oklch(0 0 0))` или сборочный PostCSS, но делайте OKLCH каноническим значением в вашем хранилище токенов. Legacy-системы с тысячами существующих HEX-переменных могут оставаться на HEX до плановой миграции — не меняйте ради самого изменения.
Воспринимайте вывод CMYK как приближение, подтверждайте у типографии
Числа CMYK, которые выводит этот инструмент, — это наивная формула на основе sRGB, а не конвертация через ICC-профиль. Используйте их для приблизительных расчётов и внутренних компов. Перед любым реальным тиражом отправьте исходный HEX (не приближение CMYK) типографии и позвольте им запустить свою ICC-конвертацию против конкретного пресса, чернил и бумаги. Сдвиг каналов в 5–15% от правильной конвертации легко может превратить чёткий красный в мутный оранжевый, если приближение отгружено напрямую.
Используйте APCA Lc для перспективной доступности
WCAG 2.x продолжит быть регуляторным минимумом ещё несколько лет, но APCA — это направление, в котором движется стандарт. Для новых дизайнов достигайте `|Lc| ≥ 75` для основного текста и `|Lc| ≥ 60` для крупного текста рядом с минимумами WCAG 2.1. APCA ловит проблемы читаемости, которые упускает симметричный коэффициент WCAG 2, — особенно тонкий шрифт на ярком фоне, где коэффициент WCAG выглядит нормально, но текст фактически исчезает на нормальном расстоянии чтения.
Прогоняйте цвета с широким охватом через проверку Display P3
Если вы целитесь в современную аппаратуру Apple (iPhone, iPad, MacBook с 2017+) или отгружаете контент с поддержкой HDR, определяйте брендовые цвета в OKLCH и используйте бейдж Display P3, чтобы проверить, что они вписываются в P3, даже если превышают sRGB. Цвета с более широким охватом выглядят заметно более насыщенными на дисплеях P3 и плавно деградируют через применяемое браузером сжатие chroma на экранах только с sRGB. Не прижимайте к sRGB заранее, если только не знаете, что вся ваша аудитория на legacy-дисплеях.
Подбирайте перцептивно равномерные оттенки через тона OKLCH
При генерации шкалы 50/100/200/.../900 для брендового цвета используйте панель Tones: она шагает L равными приращениями при фиксированных C и H. Результат — перцептивно ровная шкала, где визуальный разрыв между 400 и 500 выглядит идентичным разрыву между 500 и 600. Ручная подстройка шкал HSL для той же равномерности — это многочасовое упражнение на каждый цвет; OKLCH даёт это бесплатно.
Используйте Eyedropper умеренно для cross-tab подбора цвета
EyeDropper API (только Chromium на 2026 год) позволяет нажать в любом месте экрана — включая за пределами браузера — чтобы взять цвет этого пикселя. Полезно для подбора цвета со скриншота, кадра видео или UI другого приложения. Воспринимайте результат как стартовую точку, а не как окончательное значение — рендеринг экрана применяет цветовое управление, которое может отличаться от исходного файла. Для канонических брендовых цветов всегда берите HEX из дизайн-источника (Figma, Sketch, брендбук PDF), а не пипеткой со скриншота.
Сохраняйте в закладки URL с `#hex=...` для общих палитр
Текущий цвет автоматически кодируется в URL-хэш как `#hex=...` или `#oklch=...`. Скопируйте URL, вставьте в тред Slack или GitHub-issue, и любой, кто откроет его, окажется на точно том же цвете. Полезно для тредов design-review, где «брендовый синий» должен означать одну конкретную тройку OKLCH. Хэш обновляется при каждом изменении, поэтому URL в адресной строке всегда — живой текущий цвет — добавьте в закладки, чтобы вернуться к конкретной палитре позже.

Часто задаваемые вопросы

Как преобразовать HEX-код в RGB?
Разделите 6-значный HEX на три пары по 2 цифры, затем прочитайте каждую пару как число по основанию 16 от 0 до 255. `#FF5733` становится R=`FF`=255, G=`57`=87, B=`33`=51, давая `rgb(255, 87, 51)`. 3-значная сокращённая запись (`#F73`) раскрывается удвоением каждой цифры: `#F73` → `#FF7733`. Этот инструмент выполняет конвертацию вживую по мере ввода — вставьте любой HEX (с `#` или без, 3- или 6-значный, 4- или 8-значный с альфой), и поле RGB обновится мгновенно.
HEX — это то же самое, что RGB?
Они кодируют одну и ту же информацию в разной нотации. Оба описывают цвет как три канала (красный, зелёный, синий) по шкале 0–255, привязанной к цветовому пространству sRGB. HEX упаковывает три канала в 6-символьную строку по основанию 16 (`#FF5733`); функция `rgb()` записывает их в десятичной форме (`rgb(255, 87, 51)`). Они переводятся туда-обратно без потерь. Разница практическая: HEX короче и комфортно умещается в CSS-переменной, `rgb()` принимает отдельный альфа-канал через `rgba()` и поддерживает синтаксис процентов CSS Color 4.
Как читать HEX-код цвета?
HEX-цвет имеет 6 шестнадцатеричных цифр после `#`, сгруппированных как **RR GG BB**. Каждая пара кодирует один канал от `00` (ничего) до `FF` (полный, 255 в десятичной). `#FF0000` — чистый красный, `#00FF00` — чистый зелёный, `#0000FF` — чистый синий. 8-значный HEX (`#FF5733CC`) добавляет альфа-пару в конец — `CC` = 204/255 ≈ 80% непрозрачности. 3-значная сокращённая запись (`#F73`) раскрывает каждую цифру дублированием: `#F73` идентичен `#FF7733`.
Какая формула преобразования HEX в RGB?
Для каждой 2-значной пары HEX умножьте первую цифру на 16 и прибавьте вторую: `FF` = 15×16 + 15 = 255, `57` = 5×16 + 7 = 87, `33` = 3×16 + 3 = 51. В JavaScript: `parseInt('FF', 16)` возвращает 255. В CSS обратное направление встроено в парсер — `rgb(255 87 51)` и `#FF5733` взаимозаменяемы везде, где принимается ``. Потерь округления нет: 16² = 256, точно совпадая с диапазоном байта 0–255, который занимает каждый канал.
Почему использовать HEX вместо RGB?
Три причины: он короче (`#FF5733` против `rgb(255, 87, 51)`), это формат, который любой дизайн-инструмент (Figma, Sketch, Photoshop) экспортирует по умолчанию, и это формат, который ваш глаз учится узнавать со временем — большинство frontend-разработчиков узнают `#3b82f6` как Tailwind blue-500 с одного взгляда. Используйте `rgb()` (или современный синтаксис через пробел `rgb(R G B / A)` из CSS Color 4), когда нужна альфа, когда вы вычисляете цвет из JavaScript или когда хотите явный синтаксис процентов для читаемости.
Могут ли HEX-коды иметь альфу / прозрачность?
Да — используйте 8-значный HEX (`#RRGGBBAA`) или 4-значную сокращённую запись (`#RGBA`). Альфа-пара следует той же шкале 0–`FF`: `#FF573300` полностью прозрачный, `#FF5733FF` полностью непрозрачный, `#FF573380` — около 50%. CSS с 4-значным HEX с альфой поставляется во всех вечнозелёных браузерах с 2018 года. Safari, Chrome, Firefox и Edge все его поддерживают. Если нужно целиться в очень старые браузеры, делайте fallback на `rgba()`, который поддерживается со времён IE 9.
Сколько цветов может представлять HEX?
6-значный HEX представляет ровно **16 777 216** цветов — 256 значений на канал в кубе (256³). С 8-значным HEX, включающим альфу, адресуемое пространство — 256⁴ ≈ 4,3 миллиарда, но цветовое содержание всё ещё 16,7 млн; дополнительное измерение — это непрозрачность. Человеческий глаз различает около 10 миллионов цветов, поэтому 24-битный sRGB называют «truecolor» с 1990-х годов. Современные дисплеи с широким цветовым охватом (Display P3, Rec2020) покрывают большую часть видимого спектра, но сам HEX ограничен sRGB — используйте OKLCH или `color(display-p3 ...)`, чтобы адресовать значения с широким охватом.
Что такое цвет OKLCH?
OKLCH — это перцептивно-равномерное цветовое пространство, выведенное из OKLAB путём преобразования осей chroma a/b в полярные координаты. Каналы: **воспринимаемая светлота** (0–1), **chroma** (0 до примерно 0,4 в зависимости от оттенка), **оттенок** (0–360°). В отличие от HSL, равные значения L выглядят одинаково яркими по всем оттенкам, поэтому шкалы цветов дизайн-системы остаются перцептивно согласованными. CSS Color 4 добавил функцию `oklch()` в 2022 году; Chrome 111, Safari 15.4 и Firefox 113 — все поставляют нативную поддержку. Tailwind v4 и shadcn используют OKLCH для палитр по умолчанию.
OKLCH лучше, чем HSL?
Для дизайн-систем — да, и разница измерима. L (lightness) в HSL геометрическая, а не перцептивная: `hsl(60, 100%, 50%)` (жёлтый) выглядит заметно ярче, чем `hsl(240, 100%, 50%)` (синий), хотя оба сообщают L=50%. L в OKLCH привязана к перцептивной модели OKLAB от Бьорна Оттоссона (2020), поэтому равное L означает равную воспринимаемую яркость. Практический итог: шкала OKLCH автоматически даёт визуально ровные шаги; шкала HSL требует ручной подстройки светлоты по каждому оттенку, чтобы выглядеть правильно.
Какие браузеры поддерживают oklch()?
Все вечнозелёные браузеры с середины 2023 года: **Chrome/Edge 111** (март 2023), **Safari 15.4** (март 2022, самый ранний), **Firefox 113** (май 2023). Совокупное покрытие caniuse — более 94%. Для остаточного длинного хвоста IE 11 / старого Safari используйте запрос `@supports (color: oklch(0 0 0))`, чтобы предоставить HEX-fallback, или инструмент сборки вроде PostCSS `postcss-oklab-function`, чтобы инлайнить sRGB-приближение рядом со значением OKLCH.
Зачем использовать OKLCH в Tailwind v4?
Tailwind v4 перевёл свою палитру по умолчанию с генерации на основе HSL на генерацию на основе OKLCH, потому что OKLCH автоматически даёт перцептивно ровные шкалы. Образцы `blue-500` и `red-500` действительно выглядят одинаково яркими — в системе v3 на HSL это было не так, что вынуждало дизайнеров вручную подстраивать отдельные стопы. OKLCH также открывает более широкие цветовые охваты на современных дисплеях: токен Tailwind v4 вроде `oklch(0.65 0.25 30)` может адресовать красные Display P3, которые ни один HEX-код не достанет. Сборка по-прежнему выдаёт HEX-fallback для старых браузеров.
OKLCH перцептивно равномерен?
Да — в этом и весь смысл. OKLCH наследует перцептивную равномерность от OKLAB, цветового пространства Бьорна Оттоссона 2020 года, разработанного специально для исправления неравномерностей в CIELAB (предыдущем лучшем перцептивно-равномерном пространстве). Фиксированный шаг по каналу L соответствует фиксированному шагу воспринимаемой яркости. Фиксированный шаг по C соответствует фиксированному шагу воспринимаемой chroma. Именно поэтому шкалы OKLCH выглядят плавно — математика соответствует человеческому зрению. Приближения CIELAB ломаются вблизи очень насыщенных цветов; OKLAB/OKLCH остаются точными по всему цветовому охвату.
Как читать значение OKLCH?
`oklch(L C H)` — три числа, опционально с `/ A` для альфы. **L** — воспринимаемая светлота от 0 (чёрный) до 1 (белый); записывается как число или процент (`0.6` и `60%` эквивалентны). **C** — chroma от 0 (серый) до примерно 0,4 для самых насыщенных sRGB-цветов; верхней границы нет, цвета с широким охватом могут её превышать. **H** — оттенок в градусах от 0 до 360, как в HSL (0/360 = красный, 120 = зелёный, 240 = синий). Пример: `oklch(0.629 0.193 263.4)` — это Tailwind blue-500.
В чём разница между цветовым охватом и цветовым пространством?
**Цветовое пространство** — это координатная система, которая даёт каждому цвету уникальный адрес: sRGB, Display P3, Rec2020, OKLCH — все цветовые пространства. **Цветовой охват** — это подмножество видимых цветов, которые конкретное пространство (или устройство) может действительно воспроизвести. sRGB и Display P3 используют похожие координатные системы, но P3 покрывает ~50% больше видимого спектра. OKLCH не ограничен — его координатная система может адресовать любой цвет, но сможет ли его отобразить ваш экран, зависит от цветового охвата экрана. Бейджи цветового охвата в этом инструменте говорят, какие семейства устройств отрисуют цвет точно.
Почему мой цвет OKLCH вне цветового охвата sRGB?
OKLCH не ограничен цветовым охватом — можно написать `oklch(0.7 0.4 30)`, и это валидный цвет, но его chroma превышает то, что байтовое пространство sRGB по 256 на канал может закодировать. На sRGB-мониторе этот цвет обрезается до ближайшего приближения внутри цветового охвата (обычно обесцвеченная версия). На дисплее Display P3 (большинство современных ноутбуков, iPhone, MacBook) он отрисуется корректно. Нажмите **Snap to sRGB**, чтобы уменьшить chroma, пока цвет не впишется, затем поставьте прижатый HEX как fallback рядом с оригинальным OKLCH для дисплеев с широким охватом.
Что выбрать для контраста — WCAG 2 или APCA?
Используйте **WCAG 2.1** сегодня — это регуляторный стандарт (ADA, EAA, Section 508) и то, что проверяют инструменты аудита. Соотношение 4.5:1 для основного текста и 3:1 для крупного текста — это юридические минимумы. **APCA** (Accessible Perceptual Contrast Algorithm) — предложенный преемник WCAG 3, разработанный, чтобы лучше соответствовать восприятию: он по-разному взвешивает светлый на тёмном и тёмный на светлом, что симметричная формула WCAG 2 делает неверно. APCA пока черновик. Лучшая практика: пройти WCAG 2, чтобы удовлетворить соответствие, затем сверить с APCA (цель `Lc 75`+ для основного текста), чтобы убедиться, что результат действительно читаем.
В чём разница между HSV и HWB?
Оба — цилиндрические преобразования RGB, разделяющие один и тот же канал оттенка. **HSV** (Hue, Saturation, Value) был опубликован Смитом в 1978 году — Saturation — это цветность, Value — яркость. Чистый красный — `hsv(0, 100%, 100%)`. **HWB** (Hue, Whiteness, Blackness) был опубликован Смитом снова в 1996 году как более интуитивная альтернатива для художников — вы выбираете чистый оттенок, затем добавляете белый, чтобы осветлить, или чёрный, чтобы затемнить. CSS Color 4 добавил синтаксис `hwb()`; он поставляется во всех вечнозелёных браузерах. HWB проще объяснять («добавить белый»), но HSV остаётся более распространённым в графических программах вроде Photoshop и Figma.

Похожие инструменты

Все инструменты →

Конвертер систем счисления — bin, hex, dec, oct

Конвертеры

Конвертация между системами счисления — двоичной, hex, десятичной, восьмеричной и любой базой 2-36 мгновенно. Бесплатно, приватно — вся обработка в браузере.

Конвертер HEX в CMYK

Конвертеры

Конвертируйте HEX-цвета в CMYK прямо в браузере. Наивное приближение на основе sRGB для предпросмотра печати. Бесплатно, без регистрации, ваши цвета остаются локально.

Конвертер HEX в HSL

Конвертеры

Конвертируйте любой HEX-цвет в HSL прямо в браузере — поддерживаются 3-значные, 6-значные и 8-значные HEX с альфой. Бесплатно, мгновенно, без регистрации, ваши цвета никогда не покидают страницу.

Конвертер HEX в OKLCH

Конвертеры

Конвертируйте HEX в OKLCH для токенов дизайна Tailwind v4. Живой перцептивно-равномерный вывод с предупреждениями цветового охвата Display P3. Бесплатно, только в браузере.

Конвертер HEX в RGB

Конвертеры

Конвертируйте любой HEX-код цвета в RGB прямо в браузере — поддерживаются 3-значные, 6-значные и 8-значные HEX с альфой. Бесплатно, мгновенно, без регистрации, ваши цвета никогда не покидают страницу.

Сжатие изображений онлайн — JPEG, PNG и WebP

Конвертеры

Сжимайте JPEG, PNG и WebP до 80% меньше — в браузере, без загрузки. Batch до 20 изображений, регулировка качества, сравнение «до и после». Бесплатно и приватно.