Загрузка...
Загрузка...
Практическое руководство по созданию цветовых палитр с учётом WCAG: выбор базовых цветов, генерация оттенков, проверка контраста и инструменты.
Руководство по требованиям WCAG к контрасту цветов: уровни AA и AAA, коэффициенты контрастности, инструменты проверки и практические рекомендации.
CSS & ДизайнСравнение форматов цветов в веб-разработке: HEX, RGB, HSL, HSV. Когда какой формат выбирать, конвертация и практические рекомендации.
Веб-разработкаПолное руководство по веб-доступности для разработчиков. Стандарты WCAG, практические рекомендации, юридические аспекты и влияние доступности на SEO.
CSS & ДизайнПолное руководство по CSS box-shadow: синтаксис, множественные тени, inset, размытие, распространение. Практические примеры и приёмы для веб-дизайна.
Поделитесь с коллегами или изучите другие материалы блога
Доступная цветовая палитра — основа инклюзивного интерфейса. Цвета должны обеспечивать достаточный контраст для текста и интерактивных элементов, а также быть различимы для людей с особенностями цветовосприятия. В этой статье рассмотрены шаги создания палитры с учётом WCAG.
Начните с основного цвета бренда. Определите его в HSL для удобной генерации оттенков:
:root {
--primary-h: 220; /* Hue */
--primary-s: 70%; /* Saturation */
--primary-l: 50%; /* Lightness */
}
Оттенки получают изменением Lightness: 50, 60, 70 для светлых; 40, 30, 20 для тёмных.
Типичная палитра содержит 5–9 оттенков от светлого к тёмному:
| Оттенок | Использование |
|---|---|
| 50–100 | Фоны, hover-состояния |
| 200–400 | Границы, вторичный текст |
| 500–600 | Основной цвет, кнопки |
| 700–900 | Текст, акценты на светлом фоне |
Для каждого сочетания текст-фон проверяйте коэффициент контрастности. Типичные пары:
Color Contrast на rechecker.ru — проверка контраста по WCAG. Color Converter — конвертация HEX, RGB, HSL для подбора оттенков.
Проверяйте палитру в режимах симуляции:
Chrome DevTools (Rendering → Emulate vision deficiencies) и специализированные плагины помогают оценить восприятие.
Для тёмной темы инвертируйте логику: светлый текст на тёмном фоне. Контраст 4.5:1 сохраняется. Проверяйте и светлую, и тёмную тему отдельно.
Структурируйте палитру через переменные:
:root {
--color-text: #1f2937;
--color-text-muted: #6b7280;
--color-bg: #ffffff;
--color-primary: #2563eb;
--color-primary-hover: #1d4ed8;
}
Проверяйте не только обычное состояние, но и :hover, :focus, :active, :disabled. Disabled-элементы могут иметь пониженный контраст (минимум 3:1), но не должны быть невидимыми.
Создайте страницу или документ с примерами использования: основной текст, заголовки, ссылки, кнопки, ошибки, предупреждения. Укажите коэффициенты контраста для каждой пары.
Подробнее о требованиях WCAG к контрасту — в Контраст цветов по WCAG: требования и проверка доступности.
Помимо базовых оттенков, определите семантические цвета:
| Семантика | Использование |
|---|---|
| success | Успешные действия, подтверждения |
| warning | Предупреждения |
| error | Ошибки, критические сообщения |
| info | Информационные подсказки |
Каждый семантический цвет должен иметь достаточный контраст с фоном при использовании для текста или иконок.
Для генерации палитр из базового цвета можно использовать:
Если проект использует дизайн-систему (Figma, Storybook), экспортируйте токены цветов в CSS-переменные. Документируйте контрастность для каждого токена в компонентной библиотеке.
:root {
--color-text-primary: #1f2937;
--color-text-secondary: #6b7280;
--color-bg: #ffffff;
--color-bg-muted: #f9fafb;
--color-primary: #2563eb;
--color-primary-hover: #1d4ed8;
--color-error: #dc2626;
--color-success: #16a34a;
}
Градиенты усложняют проверку контраста — он меняется по длине. Варианты:
Для полей ввода, ошибок и подсказок определите отдельные цвета:
При смене палитры проводите A/B тест. Контраст влияет на читаемость, время на странице и конверсию. Замеряйте метрики до и после изменений.
При использовании дизайн-инструментов (Figma, Sketch) экспортируйте цвета в формате, совместимом с вашим стеком: CSS-переменные, SCSS, Tailwind-конфиг, токены для дизайн-системы.
Иконки, передающие смысл (успех, ошибка, предупреждение), должны иметь контраст минимум 3:1 с фоном. Декоративные иконки могут иметь меньший контраст. При сомнениях добавляйте текстовую подпись.
Чередование строк (zebra striping) улучшает читаемость. Контраст между строками должен быть достаточным, но не чрезмерным. Текст в ячейках — контраст 4.5:1 с фоном ячейки.
Баланс между бренд-гайдлайнами и доступностью достигается через: