Блог
Русский

Конвертер цветов онлайн — HEX, RGB, HSL, OKLCH

Перевод HEX, RGB, HSL и OKLCH с превью и проверкой контраста WCAG

Работает в браузере · файлы никуда не загружаются

Цвет распознан: #1e90ff

HEX#1e90ff
RGBrgb(30, 144, 255)
HSLhsl(209.6, 100%, 55.9%)
OKLCHoklch(0.652 0.1901 253.21)

Контраст WCAG

На белом фоне Aa

3.24:1

  • AA, обычный текст (4.5)Не проходит
  • AA, крупный текст (3)Проходит
  • AAA, обычный текст (7)Не проходит
  • AAA, крупный текст (4.5)Не проходит
На черном фоне Aa

6.49:1

  • AA, обычный текст (4.5)Проходит
  • AA, крупный текст (3)Проходит
  • AAA, обычный текст (7)Не проходит
  • AAA, крупный текст (4.5)Проходит

Что это за инструмент

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

Как пользоваться

  1. Введите цвет или воспользуйтесь пипеткой рядом с полем. Примеры: #1e90ff, rgb(30 144 255), hsl(210 100% 56%), oklch(0.65 0.19 250).
  2. Посмотрите значения HEX, RGB, HSL и OKLCH ниже и скопируйте нужное.
  3. В разделе контраста смотрите коэффициент на белом и черном фоне и проходит ли цвет уровни AA и AAA. Если в вашем дизайне другой фон, введите его в поле Цвет фона, чтобы проверить именно эту пару.
  4. Цвет с прозрачностью выводится как 8-значный HEX, rgba(), hsla() и в форме / alpha.

Как это работает

  • На вход принимаются HEX (3, 4, 6 или 8 цифр, # необязателен), 148 имен цветов CSS Color 4 (tomato, rebeccapurple, в любом регистре) и transparent, rgb()/rgba() (синтаксис с запятыми или пробелами, допускаются проценты), hsl()/hsla() и oklch().
  • OKLCH вычисляется по стандартным матрицам из определения OKLab Бьёрна Оттоссона (2020). sRGB линеаризуется, проходит через кубические корни LMS, и получаются L, a и b; C — длина вектора (a, b), H — его угол.
  • Точность вывода: один знак после запятой для HSL, четыре для L и C в OKLCH и два для H — этого достаточно, чтобы обратный перевод в HEX дал точно исходное значение.
  • Ввод OKLCH вне охвата sRGB обрезается по каждому каналу до 0-255, и показывается уведомление.
  • Контраст считается по относительной яркости WCAG 2.x. Отображаемый коэффициент округляется до двух знаков, но решение «проходит/не проходит» принимается по неокругленному значению, поэтому 4.499 никогда не покажется проходным 4.5.

Примеры

Ввод Результат
#ffffff на черном 21:1, проходит все уровни
#777777 на белом около 4.48:1, не проходит AA для обычного текста, проходит для крупного
#ff0000 oklch(0.628 0.2577 29.23)
#ffffff oklch(1 0 0)

Полезно знать

  • Для основного текста считайте минимумом AA для обычного текста (4.5:1). Крупному тексту — от 18pt или от 14pt полужирным — для AA достаточно 3:1.
  • Не передавайте смысл одним только цветом, добавляйте значок или подпись. Проверка контраста измеряет лишь разницу светлоты текста и фона.

Частые вопросы

Зачем нужен OKLCH?

В HSL два цвета с одинаковой светлотой могут выглядеть совсем по-разному по яркости, из-за чего подбирать палитру неудобно. OKLCH основан на цветовом пространстве OKLab, построенном с учетом человеческого восприятия, поэтому изменение L (светлота), C (насыщенность) или H (тон) дает довольно равномерные видимые шаги. CSS принимает его напрямую через oklch().

Что будет, если значение OKLCH выходит за пределы охвата sRGB?

Если экран в sRGB не может его показать, каждый канал RGB обрезается до диапазона 0-255 и берется ближайший цвет, о чем выводится уведомление. Это простое обрезание, а не gamut mapping с постепенным снижением насыщенности, поэтому результат может немного отличаться от задуманного.

Как вычисляется коэффициент контраста?

По формуле относительной яркости WCAG 2.x — (яркость светлого + 0.05), деленная на (яркость темного + 0.05). Значение лежит в пределах от 1:1 до 21:1. Для обычного текста нужно 4.5:1 для AA и 7:1 для AAA, для крупного — 3:1 и 4.5:1.

Как учитываются полупрозрачные цвета при расчете контраста?

Сначала они накладываются на выбранный фон (белый или черный). Черный с прозрачностью 50% на белом выглядит серым, поэтому контраст считается для этого серого.

Не нашли нужный инструмент?