Урок 06. Частые ошибки

📁 Раздел: Базовые утилиты ⏱️ Время изучения: ~45 мин 🎯 Сложность: Начальная

⚡ Кратко

Низкий контраст, десяток случайных оттенков, цвет как единственный признак и opacity вместо прозрачного цвета.

Ошибка 1. Слишком близкие ступени

Как ломается: текст «плавает» на фоне, особенно на плохом мониторе и при ярком свете.

bg-200 + text-400 — плохо

bg-200 + text-800 — хорошо

<div class="space-y-2">
  <p class="rounded bg-slate-200 px-3 py-2 text-sm text-slate-400">bg-200 + text-400 — плохо</p>
  <p class="rounded bg-slate-200 px-3 py-2 text-sm text-slate-800">bg-200 + text-800 — хорошо</p>
</div>

Ошибка 2. Пять разных синих в одном экране

Как ломается: интерфейс выглядит неаккуратно, хотя каждый цвет по отдельности красивый.

Как правильно: заведите три роли — акцент, нейтраль, опасность — и берите оттенки только из них. Всё остальное — оттенки нейтрального. Проверить легко: посчитайте, сколько разных имён оттенков встречается на экране. Больше четырёх — сигнал.

Ошибка 3. Цвет как единственный признак

❌ Только цвет

<span class="text-rose-600">●</span>

✅ Цвет плюс текст

Ошибка
<span class="inline-flex items-center gap-1.5 rounded-full bg-rose-100 px-2.5 py-0.5 text-xs font-medium text-rose-800">
  <span aria-hidden="true">●</span> Ошибка
</span>

Почему: около 8% мужчин хуже различают красный и зелёный, а скринридер не читает цвет вовсе. Подпись решает обе задачи сразу.

Ошибка 4. opacity вместо прозрачного цвета

Как ломается: вместе с фоном бледнеет и текст, и рамка, и иконки — блок выглядит выключенным.

❌ Прозрачным становится всё

<div class="bg-slate-900 opacity-50">Текст тоже побледнел</div>

✅ Прозрачен только фон

<div class="bg-slate-900/50">Текст остался контрастным</div>

Ошибка 5. Жёсткий цвет вместо токена

Класс bg-[#4f46e5] прекрасно работает — ровно до момента, когда потребуется тёмная тема или смена брендинга. Значение из макета лучше сразу оформить токеном в @theme: тогда смена цвета будет правкой в одном месте, а не поиском по проекту.