Урок 06. Домашнее задание: цветовая система
⚡ Кратко
Описать цветовую систему проекта: акцент, нейтраль, три статусных цвета — и применить её на странице со списком заказов.
Задание
В проекте курса добавьте страницу «Заказы» и оформите её по цветовой системе:
- шапка с основной кнопкой акцентного цвета;
- таблица или список из пяти заказов;
- у каждого заказа бейдж статуса из вашего набора;
- строка с ошибкой подсвечена фоном 50, но текст остаётся тёмным;
- ни одного произвольного цвета в квадратных скобках.
Подготовка окружения
cd tailwind-course
npm run dev
Пошаговое решение
Шаг 1. Выберите роли
Например: акцент — sky, нейтраль — slate,
успех — emerald, ожидание — amber, ошибка —
rose. Запишите это решение в комментарии к CSS: через месяц
вы забудете, а комментарий останется.
Шаг 2. Бейджи
Одна формула на все статусы: rounded-full bg-{оттенок}-100
text-{оттенок}-800 border border-{оттенок}-200 px-2.5 py-0.5 text-xs
font-medium.
Шаг 3. Подсветка строки
Фон bg-rose-50, текст оставляем text-slate-900.
Так подсветка заметна, но не мешает читать.
Шаг 4. Проверка контраста
Откройте DevTools, выберите текст и посмотрите значение контраста в панели выбора цвета: для мелкого текста нужно не меньше 4.5:1.
Как проверить
- На экране не больше четырёх имён оттенков.
- Каждый статус имеет и цвет, и подпись.
- Контраст основного текста — не ниже 4.5:1.
- Нет классов вида
bg-[#…].
Ориентир
Заказы
- № 1042 · Смирнова Готово
- № 1043 · Ковалёв Ожидает
- № 1044 · Титова Ошибка оплаты
<div class="max-w-2xl overflow-hidden rounded-xl border border-slate-200">
<div class="flex items-center justify-between border-b border-slate-200 bg-white px-4 py-3">
<h3 class="text-sm font-semibold text-slate-900">Заказы</h3>
<button class="rounded-md bg-sky-600 px-3 py-1.5 text-sm font-medium text-white hover:bg-sky-700">Новый заказ</button>
</div>
<ul class="divide-y divide-slate-200 bg-white">
<li class="flex items-center justify-between px-4 py-3 text-sm">
<span class="text-slate-900">№ 1042 · Смирнова</span>
<span class="rounded-full border border-emerald-200 bg-emerald-100 px-2.5 py-0.5 text-xs font-medium text-emerald-800">Готово</span>
</li>
<li class="flex items-center justify-between px-4 py-3 text-sm">
<span class="text-slate-900">№ 1043 · Ковалёв</span>
<span class="rounded-full border border-amber-200 bg-amber-100 px-2.5 py-0.5 text-xs font-medium text-amber-800">Ожидает</span>
</li>
<li class="flex items-center justify-between bg-rose-50 px-4 py-3 text-sm">
<span class="text-slate-900">№ 1044 · Титова</span>
<span class="rounded-full border border-rose-200 bg-rose-100 px-2.5 py-0.5 text-xs font-medium text-rose-800">Ошибка оплаты</span>
</li>
</ul>
</div>