🫗 Цвета ✓ Бесплатно

Смешение
цветов

Задайте два цвета и пропорцию — получите результат тремя разными способами сразу. Они дают разное, и понимание этой разницы избавляет от сюрпризов в градиентах и анимациях.

⚖️Любая пропорция
🔬3 способа расчёта
📋Шкала перехода
Копирование в клик
Два цвета
%50
Готовые пары:
Смешивание на экране складывает свет, а не краски. Синий с жёлтым здесь дадут серый, а не зелёный: зелёный получается при смешивании пигментов, которые работают вычитанием.
Наивное

усреднение каналов как есть — так делает большинство редакторов

С учётом гаммы

усреднение настоящих яркостей — физически корректно

Через HSL

переход по цветовому кругу, насыщенность сохраняется

Переход от первого ко второму

Показан наивный переход — тот, что получится при обычной анимации цвета в CSS.

Почему синий с жёлтым дают серый

В школе учат, что синий и жёлтый дают зелёный, и это верно — для красок. Пигмент работает вычитанием: он поглощает часть спектра, и от смеси остаётся то, что не поглотил ни один. Экран же складывает свет, и при сложении синего с жёлтым получается нейтральный серый.

Вторая тонкость касается самого усреднения. Значения в HEX хранят не яркость, а гамма-кодированную величину, поэтому простое среднее выходит темнее физически правильного: #808080 вместо #BCBCBC. Разница заметна на глаз, и именно из-за неё градиенты в вебе иногда выглядят грязными в середине.

  • Наивное — среднее каналов, так делают редакторы и CSS
  • С учётом гаммы — среднее настоящих яркостей
  • Через HSL — переход по кругу, без серого в середине
  • Чёрный с белым — наивно #808080, с гаммой #BCBCBC
  • Краски — там всё иначе, там вычитание
Свет и краска Разные системы
Синий и жёлтый — экран серый
Синий и жёлтый — краска зелёный
Все цвета вместе — экран белый
Все цвета вместе — краска грязно-бурый
Где это встретится Практика
Градиент грязный посередине гамма не учтена
Анимация цвета в CSS идёт наивно
Уменьшение картинки темнеет без коррекции
Наложение с прозрачностью тоже наивное

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

Зависит от того, что вы смешиваете. На экране складывается свет, и синий с жёлтым дадут серый. Красками смешиваются пигменты, которые работают вычитанием, и там получится зелёный. Калькулятор считает экранное смешивание.
Наивное усреднение работает с числами из HEX, но они хранят не яркость, а гамма-кодированную величину, поэтому результат темнее. Расчёт с учётом гаммы сначала восстанавливает настоящие яркости и даёт более светлый цвет. Способ через HSL идёт по цветовому кругу и потому не проваливается в серый.
Физически корректен второй — с учётом гаммы. Но браузеры, редакторы и CSS-анимации используют первый, наивный, поэтому для предсказания того, что увидит пользователь, смотрите на него. Третий полезен, когда нужен красивый переход между насыщенными цветами.
Двигайте ползунок: он задаёт долю второго цвета от нуля до ста процентов. Значение 25 означает четверть второго и три четверти первого. Формула простая — к первому цвету прибавляется разность, умноженная на долю.
Как раз из-за наивного усреднения. Между насыщенными цветами противоположных тонов середина проваливается в тусклый серый. Помогает добавление промежуточной точки нужного оттенка или переход через HSL, где насыщенность сохраняется.
Только как очень грубым ориентиром. Пигменты смешиваются вычитанием, у каждого свой спектр поглощения, а результат зависит ещё и от связующего. Для красок надёжнее пробный выкрас, а не расчёт.