QRkoder
Цветной QR-код — правила контраста и читаемость
БлогQRkoder5

Цветной QR-код — правила контраста и читаемость

12 мин чтения

Цветные QR-коды работают. Но не все и не всегда. Примерно 30% брендовых QR, которые дизайнеры сдают клиентам, либо не сканируются вообще, либо считываются через раз — при хорошем освещении, с близкого расстояния, на новом iPhone, но не на рабочем Android 2020 года. Причина — контраст. Не «стиль», не «смелый дизайн», не «нестандартный подход». Конкретное математическое соотношение яркости двух цветов, которое либо укладывается в норму, либо нет.

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

Цветной QR — можно ли вообще

Да, можно. QR-код — не изображение с фиксированными цветами, а математическая матрица модулей, каждый из которых несёт бит данных. Сканер не видит «чёрные квадраты» — он видит контраст: тёмные области против светлых. Пока разница яркости достаточна, сканер читает код независимо от конкретных цветов.

Это значит: тёмно-синие модули на белом фоне читаются так же надёжно, как чёрные. Бордовые на бежевом — тоже. Тёмно-зелёные на светло-жёлтом — тоже. Проблемы начинаются, когда дизайнер берёт «фирменный красный» (#E53935) — яркий, насыщенный, красивый — и кладёт его на белый фон. Контраст падает до 3.9:1. На мониторе всё выглядит нормально. На печати при искусственном свете — 40% неудачных сканирований.

Главное правило: цветной QR работает при контрасте ≥4:1 между модулями и фоном. Всё остальное — выбор и эксперимент в рамках этого ограничения. Подробнее о дизайне кодов — в статье 20 примеров красивого QR.

Правило контраста ≥4:1 (WCAG) — и почему белый QR на тёмном не работает

Стандарт WCAG (Web Content Accessibility Guidelines) устанавливает минимальный контраст 4.5:1 для обычного текста и 3:1 для крупного. Для QR-кодов практика сложилась на уровне 4:1 как рабочего минимума, 7:1+ как уверенной нормы.

Формула контраста: (L1 + 0.05) / (L2 + 0.05), где L1 и L2 — относительная яркость двух цветов по стандарту sRGB. Считать вручную не нужно — любой WCAG-калькулятор (WebAIM Contrast Checker, Coolors, плагин для Figma) даёт результат по двум HEX-кодам за секунду.

Теперь про «белый QR на тёмном фоне». Это классическое заблуждение: «контраст есть, просто инверсный». Контраст действительно есть. Но большинство сканеров — особенно старые Android 7–9 и встроенная камера iOS до версии 13 — при инверсном QR требуют ручного включения специального режима распознавания. iPhone 14+ и современный Android 12+ инверсию обычно читают автоматически. Итог: если ваша аудитория разнородная, белый QR на тёмном фоне даст 15–40% отказов на старых устройствах. Решение — не избегать инверсии вообще, а делать её осознанно (раздел ниже) или оставаться на классической схеме «тёмное на светлом».

Ещё одна ловушка: соотношение 4:1 нужно считать для наихудшего случая — при искусственном освещении, при угле наклона 30°, на слегка потёртой печати. Проверяйте контраст с запасом: 5:1 и выше.

Лучшие пары цветов с HEX-кодами

Ниже — проверенные пары с реальными значениями контраста. Все пригодны для печати и цифровых носителей.

Тёмно-синий на белом. Модули #1E3A8A на фоне #FFFFFF — контраст 12.8:1. Один из самых универсальных вариантов: технологичный вид, идеально для IT, финтеха, корпоративных материалов. Белый фон выносит quiet zone естественно, не требует дополнительного оформления.

Бордовый на бежевом. Модули #7F1D1D на фоне #FEF9EF — контраст 9.4:1. Тёплое сочетание для ресторанов, крафтовой упаковки, свадебных и lifestyle-брендов. Бежевый фон отлично вписывается в крафт-бумагу и небелёные карточки.

Тёмно-зелёный на светло-лимонном. Модули #14532D на фоне #FEFCE8 — контраст 11.2:1. Органика, экология, сельскохозяйственные бренды, здоровое питание. Сочетание считывается как «натуральное» без единого слова текста.

Тёмно-фиолетовый на белом. Модули #4C1D95 на фоне #FFFFFF — контраст 13.6:1. Красота, wellness, премиум-сегмент, fashion.

Антрацит на светло-сером. Модули #1F2937 на фоне #F9FAFB — контраст 16.1:1. Нейтральный, минималистичный. Когда бренд ставит на строгость, не хочет цвет модулей — но и классический чёрный кажется слишком резким.

Пары, которые кажутся красивыми, но не проходят порог: красный #DC2626 на белом — 4.0:1, прямо на грани, при печати часто провисает; оранжевый #F97316 на белом — 3.0:1, не сканируется; бирюзовый #06B6D4 на белом — 2.9:1, не сканируется; любой пастельный на белом — ниже 3:1.

Как сохранить бренд-палитру и QR одновременно

Дизайнеры часто делают ошибку: берут «основной фирменный цвет» бренда и красят в него QR. Если этот цвет — средний по яркости (насыщенный красный, яркий оранжевый, светло-голубой), код не будет читаться надёжно.

Правило: для QR выбирайте тёмный из бренд-палитры, а не средний и не светлый. Почти у каждого бренда есть несколько оттенков фирменного цвета. Возьмите самый тёмный — он, скорее всего, пройдёт порог контраста. Примеры:

  • Сбербанк: фирменный зелёный #21A038 — контраст с белым 4.5:1 (на грани). Тёмно-зелёный из расширенной палитры #0C4A23 — контраст 14.2:1. Разница огромная.
  • Яндекс: фирменный жёлтый #FFCC00 — контраст с белым 1.2:1 (катастрофа). Тёмно-серый из их UI #21201F — контраст 18.9:1. QR будет «яндексовским» по форме и сдержанным по цвету.
  • ВКонтакте: синий #0077FF — контраст с белым 4.0:1 (на грани). Тёмно-синий #003380 — 12.5:1. Узнаваем, безопасен.

Если тёмного варианта нет — используйте фирменный цвет для фона, а модули сделайте чёрными или тёмно-серыми. Фоновый патч цвета создаёт фирменность, сам QR остаётся надёжным. Подробнее о совмещении логотипа с QR — в статьях QR-код с логотипом и правила добавления логотипа.

Градиентный QR — рисковый вариант

Градиент в QR выглядит эффектно. Линейный переход от тёмно-синего к чёрному, радиальный от центра — красиво на экране, интересно в презентации. Но это именно рисковый вариант, который нужно тестировать тщательнее обычного.

Проблема в том, что контраст меняется по всей площади кода. Если начало градиента (светлая часть) даёт контраст 3.8:1, а конец (тёмная) — 14:1, то одна часть модулей читается, другая — нет. Сканер не усредняет контраст, он обрабатывает каждый модуль локально.

Безопасный градиент: оба конца перехода должны давать контраст с фоном ≥4:1 независимо. Переход «тёмный в тёмный» — например, #1E40AF#0F172A на белом фоне — это 10.5:1 в светлой точке и 17.8:1 в тёмной. Такой градиент можно пробовать. Переход «средний в светлый» (#60A5FA#BAE6FD) — нельзя ни при каком условии.

Протокол тестирования градиентного QR: проверяйте на пяти сканерах. Обязательно — iOS (нативная камера), Android 12+, Android 8–9 (старое устройство), специализированное приложение (QR & Barcode Scanner, CamScanner). Пятый — любой бюджетный телефон с неоригинальным экраном: у них камеры читают хуже из-за пониженной светочувствительности. Если хотя бы один из пяти даёт больше 10% неудач — переходите на монохромный вариант.

Инвертированный QR — светлый на тёмном

Инвертированный QR (светлые модули на тёмном фоне) — отдельная история. Стандарт ISO 18004, на котором основан QR-код, технически допускает инверсию. Но реализация в сканерах — неравномерная.

Современные устройства (iPhone 12+, Android 10+, большинство приложений-сканеров) читают инвертированный QR автоматически. Устройства 2018–2019 года и ряд бюджетных Android 9 — требуют ручного режима или вообще не поддерживают. Если ваш продукт ориентирован на широкую аудиторию старше 40 лет или на рынки с большой долей бюджетных устройств — инверсию лучше не использовать.

Если инверсия всё-таки нужна (тёмный брендовый фон, печать на чёрной упаковке) — выдержите контраст ≥7:1 в инвертированном варианте (больший запас компенсирует неоднородность поддержки). Например, белые модули #FFFFFF на тёмно-синем фоне #1E3A8A — контраст 12.8:1. Или светло-бежевые #FEF3C7 на тёмно-коричневом #451A03 — 12.1:1. И обязательно — тест на 5 устройствах, включая старое.

Частый вопрос: можно ли делать инвертированный QR с логотипом? Можно, но с уровнем коррекции ECL H (30%) — и тестирование становится обязательным, не опциональным.

Цветовая слепота — про 8% мужчин

Около 8% мужчин и 0.5% женщин имеют ту или иную форму цветовой слепоты. Самые распространённые — протанопия (нарушение восприятия красного, ~1% мужчин) и дейтеранопия (нарушение восприятия зелёного, ~5% мужчин). При этих нарушениях красный и зелёный выглядят похожими оттенками коричневого или жёлтого.

Для QR-кода это имеет конкретное следствие: красный QR на зелёном фоне или зелёный QR на красном фоне — для человека с дейтеранопией модули и фон могут казаться неразличимыми, несмотря на формально приличный контраст по стандарту WCAG. WCAG считает контраст по яркости, не по цветовому тону — и именно поэтому «красный на зелёном» может пройти проверку контраста (если оба достаточно тёмные или светлые), но быть нечитаемым для части пользователей.

Принцип безопасности для доступного QR: контраст по яркости (не по цвету) должен быть ≥7:1 для максимальной универсальности. Это автоматически покрывает большинство форм цветовой слепоты. Самый надёжный вариант — классический чёрный на белом: он универсален для всех типов нарушений цветовосприятия. Если нужен цветной — выбирайте пары с разницей по яркости, а не только по оттенку: тёмно-синий #1E3A8A значительно темнее белого #FFFFFF именно по яркости, и это делает его доступным.

Для проверки на цветовую слепоту используйте Stark (плагин Figma) или Coblis (онлайн-симулятор) — они показывают, как изображение выглядит при разных типах нарушений.

Печать CMYK vs RGB — пастельные цвета не передаются

Экраны работают в RGB — смешивают свет красного, зелёного и синего. Типографии печатают в CMYK — смешивают краски голубой, пурпурной, жёлтой и чёрной. Это разные физические процессы с разным охватом цветов (цветовым гаммутом). CMYK-гаммут уже RGB: некоторые яркие RGB-цвета просто не существуют в CMYK.

Последствия для QR. Насыщенный электрик-синий #0050FF в RGB на печати превращается в более тёмный, приглушённый. Это может неожиданно помочь — если RGB-версия была на грани контраста, CMYK-версия становится чуть темнее и проходит порог увереннее. Но пастельные цвета работают иначе: нежно-лавандовый #E9D5FF в CMYK теряет нежность, становится грязновато-серым. Если этот пастельный был фоном, а модули — тёмными, фон потемнел, контраст упал.

Два практических правила. Первое: для ответственных тиражей (от 500 экземпляров) заказывайте цветопробу в типографии перед основным тиражом. Цена — 500–1500 рублей, срок — 1–2 дня. Это стоит любого тиража с нечитаемыми кодами. Второе: сохраняйте файл для типографии с цветовым профилем Fogra39 (ISO Coated v2) — это стандарт офсетной печати в России и Европе. При конвертации RGB → CMYK через этот профиль предсказуемость цветопередачи максимальная.

Отдельная тема — PNG vs SVG. Для цифрового использования PNG 300 ppi достаточно. Для печати всегда запрашивайте SVG или PDF с встроенными цветовыми профилями: векторный формат масштабируется без потери качества, а значит — без размытия краёв модулей при увеличении.

Создание цветного QR через QRkoder

В конструкторе QRkoder цветной QR создаётся в три шага. Открываете конструктор, вводите данные (URL, текст, vCard или другой тип), переходите на вкладку «Дизайн».

На вкладке дизайна доступны два цветовых пикера: цвет модулей (foreground) и цвет фона (background). Рядом с каждым — поле для ввода HEX вручную. После выбора цветов конструктор автоматически рассчитывает контраст между двумя значениями и показывает соотношение: зелёный индикатор если ≥4:1, жёлтый при 3–4:1, красный если ниже. Это не заменяет тест на реальных устройствах, но отсекает очевидно опасные комбинации на этапе выбора.

Дополнительные настройки: форма модулей (квадрат, скруглённый, круг), уровень коррекции ошибок (ECL Q для QR с логотипом, ECL H для максимальной устойчивости), Quiet Zone — пустое поле вокруг кода. Скачивать можно в PNG (для цифрового) или SVG (для печати).

Если нужен QR с логотипом — добавьте его на вкладке «Логотип» после настройки цветов. При наличии логотипа конструктор автоматически переключает уровень коррекции на Q, предотвращая типичную ошибку с M-уровнем при перекрытой центральной зоне. Если что-то пошло не так — подробный разбор в статье QR-код не сканируется: причины.

Для автоматической генерации и нейросетевых QR — отдельные разделы конструктора.

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

Можно ли сделать QR полностью в цвете бренда — модули, фон и рамку?

Можно, если каждая пара «модули — фон» удовлетворяет контрасту ≥4:1. Фон и рамка могут быть любого фирменного цвета — они не мешают считыванию, пока не заходят в Quiet Zone вокруг кода. Модули — самая строгая зона: именно их контраст с фоном определяет читаемость. Рамка за пределами QR не влияет на сканирование никак. Схема для бренда с ярким цветом: рамка и фоновая плашка — фирменный яркий, модули — тёмный из палитры (тёмно-синий, тёмно-бордовый, тёмно-зелёный). Такой QR смотрится на 100% фирменным, при этом читается надёжно. Проверяйте контраст пары модули-фон в WebAIM Contrast Checker по HEX-кодам.

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

Три основные причины. Первая — цветовой сдвиг при печати. Ярко-синий #0077FF в RGB при печати CMYK становится чуть темнее или меняет оттенок в зависимости от профиля типографии. Если исходный RGB был на грани контраста (4.0–4.5:1), CMYK-версия может упасть ниже. Вторая — качество печати. Струйный принтер на обычной бумаге даёт размытые края у модулей — они «сливаются» с фоном на мелком масштабе. Для надёжной печати QR нужен лазерник или профессиональный офсет. Третья — размер QR. Минимальный безопасный размер для печати — 2×2 см при уровне коррекции M и 3×3 см при H-уровне с логотипом. Мельче — модули на грани различимости для камеры смартфона. Решение: запрашивайте цветопробу у типографии, используйте SVG для масштабирования, проверяйте тест-распечатку до тиража.

Что такое ECL Q и ECL H, и какой нужен для цветного QR?

ECL (Error Correction Level) — уровень коррекции ошибок. Определяет, сколько процентов кода сканер может восстановить при повреждении. Четыре уровня: L (7%), M (15%), Q (25%), H (30%). Для цветного QR без логотипа достаточно M — цвет сам по себе не уменьшает объём данных, только меняет контраст. Для цветного QR с логотипом — нужен Q или H в зависимости от размера лого (Q если лого до 18% площади, H если до 25%). Для градиентного QR рекомендуем Q как минимум — высокий уровень коррекции компенсирует потенциальные проблемы с неравномерным контрастом по площади. При H-уровне плотность модульной сетки растёт, QR становится «плотнее» — размер печати нужно увеличить на 15–20% для сохранения читаемости.

Как проверить, что цветной QR читается у людей с цветовой слепотой?

Используйте два метода параллельно. Метод 1: симулятор цветовой слепоты. Загрузите изображение QR в Coblis (онлайн) или откройте в Figma с плагином Stark. Посмотрите версии для дейтеранопии (нарушение зелёного), протанопии (нарушение красного) и тританопии (нарушение синего). Если в любом из режимов модули и фон выглядят похожим цветом — контраст недостаточен по доступности. Метод 2: расчёт по яркости. Конвертируйте оба HEX-цвета в относительную яркость по формуле WCAG. Если разница ≥7:1 — код будет читаться при любых нарушениях восприятия цвета. Самый надёжный вариант — тёмный модуль (L < 0.05) на белом фоне: это и максимальный контраст по яркости, и полная независимость от цветового восприятия. Если по теме бренда принципиально важна цветная пара — выбирайте из тех, у которых разница в яркости (не в насыщенности) максимальна.

Сколько цветов можно использовать в одном QR — модули одного цвета или можно разные?

Технически можно окрашивать каждый модуль в разный цвет или делать градиент по всей площади. Большинство генераторов, включая QRkoder, поддерживают два варианта: монохромный (один цвет на все модули) и градиентный (переход между двумя цветами). Многоцветные QR с разными цветами на каждый модуль — это художественный формат, его сканируемость сильно зависит от реализации. Для коммерческого использования оптимальный выбор — монохромный (надёжность 98%+) или тёмный двухцветный градиент (надёжность 85–92% при правильном расчёте контраста). Правило для любого варианта: минимальный контраст каждого модуля с прилегающим фоном — ≥4:1 в любой точке кода. Если это условие выполнено для самого светлого модуля в самом тёмном месте градиента — код читается. Если нет — не читается, и никакой «высокий ECL» это не исправит.

Создайте свой цветной QR с проверкой

Контраст ≥4:1 проверяется автоматически.

Создать цветной QR →

бесплатно · палитры брендов · WCAG-проверка

QR-генератор · Динамический QR · 20 примеров красивого QR.

Создавайте QR-коды бесплатно

Динамические QR-коды с аналитикой, дизайном и без ограничений по сканированиям.

Начать бесплатно