В солнечный полдень дизайнер влюбляется в неоновые градиенты, а вечером на production-сборке баг-репорты: «Кнопку невозможно прочитать в режиме тёмной темы!». Слишком знакомо? За пять минут мы соберём правила, которые уберегут ваш яркий интерфейс от жалоб на контраст и приведут его к строгим числам WCAG — без выцветания ощущения «вау».
- Контраст ≠ унылый серый: управляем палитрой математикой, а не запретами.
- WCAG 2.2 допускает цветовые ходы, если учитывать состояние, толщину и размер шрифта.
- Токенизация и CSS custom properties — быстрый лифт для построения адаптивной темы.
- Автотесты в CI ловят ошибки доступности раньше, чем дизайнер скажет «Done».
Зачем WCAG не враг цвету?
Яркий интерфейс быстро создаёт эмоциональную связь с продуктом, но эйфория заканчивается, когда первые пользователи с дальтонизмом включают режим «высокой контрастности». Вместо того чтобы обесцвечивать бренд-цвета, мы введём цифры: контраст 4,5:1 для текста, 3:1 для крупных заголовков и 1,5:1 для декоративных элементов. Числа — рамки, внутри которых можно рисовать хоть кислотными оттенками, если правильно подбирать фон и размер.
Шаги:
- Замерьте контраст пары «цвет — фон» с помощью `@storybook/addon-a11y`.
- Если ниже порога, увеличьте размер шрифта или толщину символа.
- Используйте слой белого/чёрного с альфой 0.1–0.2 для выравнивания контраста.
- Зафиксируйте цифры в дизайн-токенах.
/* цвета объявлены как CSS custom properties, легко проверять и менять */
:root {
--brand-pink: #FF277E; /* яркий фирменный */
--surface-dark: #141414; /* фон в dark-теме */
--on-pink: #FFFFFF; /* текст на розовом */
}
.button-primary {
background: var(--brand-pink);
color: var(--on-pink);
font-weight: 600; /* добавляем толщину — контраст растёт */
}
Мини-вывод: строгие числа WCAG задают безопасный периметр, а не ограничивают креатив — считайте их ремнём безопасности для цвета.

- ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ
- Где и как применять? Потестируем модель после установки на разных задачах
- Как дообучить модель под себя?
Как выстроить контраст и не ослепить?
Глаз воспринимает относительную яркость: при тёмной теме даже умеренный контраст воспринимается слишком резким. Поэтому вместо фиксированного коэффициента используйте логарифмическую формулу APCA (Advanced Perceptual Contrast Algorithm). Она точнее отражает реальное восприятие и входит в черновик WCAG 3.0.
Алгоритм внедрения:
- Включите библиотеку `@wcag-tools/apca` во фронтенд-репозиторий.
- Создайте JS-утилиту `checkContrast(foreground, background)`.
- Поднимите порог до Lc 60 (APCA) для интерактивных элементов.
- Подсветите ошибки в Storybook с помощью badge-компонента.
- Сообщите дизайнеру прямо в Figma через плагин «A11y — Color».
| Элемент | Цвет текста | Фон | APCA Lc | Статус |
| Primary Button | `#FFFFFF` | `#FF277E` | 62 | ✅ |
| Tag Label | `#FF277E` | `#FFFFFF` | −64 | ✅ |
| Caption Small | `#A8A8A8` | `#141414` | 41 | ⚠ Повысить |
Мини-вывод: APCA убирает «слепые зоны» классического контраста и даёт вам научную оптику вместо гадания на глаз.
> Попробуйте проверить свой самый яркий компонент через APCA-калькулятор прямо сейчас — результат удивит.
Проверяем доступность на лету — автоматизация или хаос?
Вручную просматривать контраст каждой кнопки скучно, а пропущенный дефект становится дорогим. CI-проверка с `axe-core` или `pa11y` выполняется за секунды и генерирует отчёт в формате JUnit — его же читает ваша Jira. Вставьте шаг в GitHub Actions, и PR не сольётся, пока не отрегулирован контраст.
CI-чек-лист:
- Установите `npm i —save-dev axe-playwright`.
- Добавьте спец-тест `axe.checkPage()` к smoke-suite.
- Сохраните отчёт XML как build-артефакт.
- Настройте «must-pass» правило по числу violations = 0.
- Уведомляйте в Slack канал #a11y-alerts.
# .github/workflows/a11y.yml
name: a11y-guard
on: pull_request
jobs:
axe:
runs-on: ubuntu-latest
steps:
— uses: actions/checkout@v4
— name: Install deps
run: npm ci
— name: Playwright + Axe
run: npx playwright test —config=axe.conf.ts
Мини-вывод: автоматический «красный свет» в CI дешевле оправданий на ретроспективе.
Финальный чек-лист «яркий интерфейс без нарушений WCAG»
| Шаг | Инструмент | Результат |
| Замер контраста | Storybook A11y | 4,5:1 (или Lc 60) |
| Токенизация цветов | CSS custom properties | Единое источник правды |
| APCA-валидация | `@wcag-tools/apca` | Реалистичное восприятие |
| CI-тесты | `axe-playwright` | 0 violations в PR |
| Документация | Figma plugin + Notion | Быстрый onboarding |
- Выполним базовые задачи на российских нейросетях и посмотрим на результаты!
- PDF-инструкцию «Как сделать нейрофотосессию из своего фото бесплатно, без иностранных карт и прочих сложностей»
- Покажем 10+ способов улучшить свою жизнь с ИИ каждому — от ребенка и пенсионера до управленца и предпринимателя
- Возможность получить Доступ в Нейроклуб на целый месяц
- Как AI ускоряет работу и приносит деньги
- За 2 часа вы получите четкий план, как начать работать с AI прямо сейчас!