Перейти к подбору цвета

Цветовые гармонии: комплементарная, аналоговая, триада и другие

Цветовая гармония выбирает тона на фиксированных углах цветового круга: 180° для комплементарной пары, по 30° для аналоговой, по 120° для триады. Если вращать тон в OKLCH, а не в HSL, цвета остаются одинаково светлыми, и ни один не выпадает из набора случайно.

Читать 5 мин

Что такое цветовая гармония

Гармония это правило подбора цветов, которые сочетаются друг с другом. Берётся базовый цвет, его светлота и насыщенность сохраняются, а тон поворачивается на заданные углы по цветовому кругу.

Углы здесь самое простое. Не менее важно, какой круг вращать: классический HSL и перцептивный OKLCH при одном и том же угле дают заметно разные цвета. Все примеры ниже построены от #2a7fbf, спокойного синего средней светлоты.

Пример: #2a7fbf
ФорматЗначение
HEX
HSL
OKLCH

Комплементарная, сплит, аналоговая, триада, тетрада, квадрат

В каждой строке сохранены светлота базового цвета в OKLCH, 0.577, и его насыщенность, 0.127. Меняется только тон, на углы из таблицы. Если повёрнутый цвет выходит за охват sRGB, насыщенность немного снижается, поэтому пара цветов чуть менее яркие. Монохромная схема устроена иначе: тон тот же, а светлота меняется шагом 0.12.

ГармонияУглы тонаЦвет 2Цвет 3Цвет 4Цвет 5
Комплементарная0°, 180°#ab6708
Сплит-комплементарная0°, 150°, 210°#b85a42#907800
Аналоговая0°, −30°, +30°#008aa7#6571c3
Триада0°, 120°, 240°#b6566e#678626
Тетрада (прямоугольник)0°, 60°, 180°, 240°#8c64b4#ab6708#678626
Квадрат0°, 90°, 180°, 270°#a75a96#ab6708#258f58
МонохромнаяТот же тон, L ±0.12, ±0.24#00396f#005b98#53a4e7#7dcbff
  • Комплементарная: самое сильное напряжение. Второй цвет лучше оставить для мелких акцентов, например для главной кнопки.
  • Сплит-комплементарная: та же энергия, но её проще уравновесить, потому что акцент разделён на двух соседей противоположного тона.
  • Аналоговая: спокойная и цельная. Хороша для иллюстраций и фонов, слаба, когда один элемент должен выделяться.
  • Триада, тетрада и квадрат: живые и трудные в управлении. Пусть один цвет ведёт, а остальные занимают мало места.
  • Монохромная: один тон в нескольких ступенях светлоты. Самый надёжный выбор для интерфейсов, ведь контраст всё равно даёт светлота.

Почему круг HSL даёт неровные гармонии

Большинство цветовых кругов в редакторах построены на HSL: они поворачивают тон и сохраняют числа насыщенности и светлоты HSL. Но светлота в HSL это формула, а не то, что видит глаз. Поверните золотисто-жёлтый на 180° в HSL, и получится глубокий синий, который выглядит намного темнее жёлтого.

Поворот в OKLCH сохраняет воспринимаемую светлоту. Вот #f4b400, повёрнутый обоими способами, и светлота OKLCH у каждого результата.

РольПоворот в HSLL в OKLCHПоворот в OKLCHL в OKLCH
База#f4b4000.808#f4b4000.808
Комплементарный#0040f40.489#97c0ff0.802
Триада, +120°#00f4b40.857#00dcec0.817
Триада, +240°#b400f40.586#f299fe0.808

В наборе HSL светлота гуляет от 0.489 до 0.857: синий и фиолетовый проваливаются, мятный светится. Набор OKLCH держится между 0.802 и 0.817. То же с чистыми основными цветами RGB: #ff0000, #00ff00 и #0000ff образуют идеальную триаду в HSL, но их светлота в OKLCH равна 0.628, 0.866 и 0.452.

Есть и цена. Синий такой же светлый, как этот жёлтый, не может быть очень ярким на экране sRGB, поэтому у комплементарного #97c0ff насыщенность 0.10 вместо 0.166. Приходится выбирать между равной светлотой и равной яркостью, а у пары жёлтый и синий получить обе сразу нельзя.

Художественный круг RYB и экранный круг RGB

Круг из художественной школы это RYB: основные цвета красный, жёлтый и синий, как при смешивании красок. На нём дополнительный к красному это зелёный, а к синему оранжевый. Экран смешивает свет, поэтому цифровые инструменты используют круг RGB, где дополнительный к красному это голубой, а к синему жёлтый.

Ошибки тут нет, просто круги отвечают на разные вопросы. RYB следует традиции живописи, RGB и OKLCH следуют тому, как работают экран и глаз. Если редактор предлагает голубой там, где вы ждали зелёный, значит он использует круг RGB.

БазаДополнительный в RYBДополнительный в RGB (HSL)Дополнительный в OKLCH
#ff0000Зелёный#00ffff#009cb2
#0000ffОранжевый#ffff00#734f00
#ffff00Фиолетовый#0000ff#f3f1ff

Столбец OKLCH показывает, что равная светлота делает с крайними цветами. Дополнительный к чистому синему становится тёмной охрой с той же светлотой 0.45, а дополнительный к чистому жёлтому почти белым лавандовым со светлотой 0.96.

Правило 60-30-10 для гармонии

Гармония говорит, какие цвета взять, но не сколько каждого. Этот пробел закрывает правило 60-30-10: около 60% площади отдают основному цвету, 30% второму и 10% акценту. При равных долях даже удачная гармония выглядит пёстро.

В интерфейсе 60% обычно занимает почти нейтральный цвет с оттенком базового тона, 30% сам базовый цвет, 10% комплементарный акцент. Вот готовый набор от #2a7fbf.

РольДоляЦветOKLCHГде использовать
Основной60%#eff6fdL 0.97, C 0.012Фон страницы, карточки
Второй30%#2a7fbfL 0.577, C 0.127Шапка, ссылки, выбранные элементы
Акцент10%#ab6708L 0.577, C 0.127Главная кнопка, выделения
Текстнет#15232fL 0.25, C 0.03Основной текст на основном цвете

CSS

:root {
    --surface: #eff6fd;
    --primary: #2a7fbf;
    --accent: #ab6708;
    --text: #15232f;
}

Как проверить контраст гармонии

Читаемость текста даёт разница в светлоте, а не в тоне. Комплементарная пара выше максимально далека по тону, но #2a7fbf на #ab6708 даёт по WCAG всего 1.05:1, а по APCA Lc 0: как текст это почти невидимо.

У равной светлоты есть и плюс. Белый текст на любом цвете из гармоний OKLCH выше даёт от 4.04:1 до 4.62:1. На HSL-версии тех же гармоний разброс от 2.15:1 до 8.90:1. Поэтому для всего набора OKLCH работает одно исправление: опустите светлоту до 0.52, и белый текст проходит 4.5:1 на любом тоне с насыщенностью 0.127, от 5.00:1 до 5.91:1.

ТекстФонWCAGAPCA LcИтог
#2a7fbf#ab67081.05:10Не читается, светлота одинаковая
#ffffff#2a7fbf4.30:1-74.8Не проходит AA для основного текста
#ffffff#106ead5.45:1-82.0Проходит, база с L 0.52
#ffffff#9956005.70:1-83.3Проходит, акцент с L 0.52
#ab6708#eff6fd4.12:164.9Только крупный текст и иконки
#5c2d00#d8eafb9.42:182.5Комплементарная пара, разведённая по светлоте

Чтобы поставить два цвета гармонии как текст и фон, разведите их по светлоте: тона оставьте, один цвет опустите примерно к 0.35, другой поднимите к 0.93. Потом проверьте настоящую пару в проверке контраста, а если акцент несёт смысл, прогоните палитру через симулятор нарушений цветового зрения.

Вопросы и ответы

Какие бывают цветовые гармонии?

Основные гармонии: комплементарная (тона на 180° друг от друга), сплит-комплементарная (150° и 210°), аналоговая (по 30° в обе стороны), триада (три тона через 120°), тетрада или прямоугольник (0°, 60°, 180°, 240°), квадрат (четыре тона через 90°) и монохромная (один тон в разных ступенях светлоты).

Какой цвет дополнительный к красному?

Зависит от цветового круга. На художественном круге RYB дополнительный к красному это зелёный. На круге RGB, которым пользуются экраны и редакторы, это голубой, #00ffff для чистого красного, а в OKLCH с той же светлотой это бирюзовый вроде #009cb2.

Почему комплементарные цвета выглядят несбалансированно?

Большинство инструментов вращают тон в HSL, где светлота не совпадает с восприятием. Комплементарный к золотисто-жёлтому #f4b400 в HSL это #0040f4 со светлотой OKLCH 0.489 против 0.808 у жёлтого. Поворот тона в OKLCH оставляет оба цвета одинаково светлыми.

Можно ли ставить комплементарные цвета как текст и фон?

Только если они сильно различаются по светлоте. Комплементарные цвета с одинаковой светлотой, например #2a7fbf и #ab6708, дают контраст всего 1.05:1. Сделайте один тёмным, а другой светлым, например #5c2d00 на #d8eafb даёт 9.42:1.

Что такое правило 60-30-10?

Правило 60-30-10 делит дизайн примерно на 60% основного цвета, 30% второго и 10% акцента. В гармонии основным обычно становится нейтральный цвет с оттенком базового тона, вторым сам базовый цвет, а акцентом комплементарный или цвет из триады.

Попробуйте в PickShade

Похожие статьи