Урок 03. Домашнее задание: тема проекта
⚡ Кратко
Завести в проекте курса собственную тему: бренд-цвет с несколькими ступенями, именованный размер и свой брейкпоинт. Проверить, что утилиты появились.
Задание
В проекте tailwind-course из урока 02 опишите тему:
- три ступени фирменного цвета:
--color-brand-400/500/600; - именованный размер
--spacing-headerдля высоты шапки; - брейкпоинт
--breakpoint-tablet; - страницу, где всё это используется.
Подготовка окружения
cd tailwind-course
npm run dev
Правки в
@theme подхватываются на лету —
перезапускать сервер не нужно. Если изменения не видны, проверьте, что
редактируете тот же CSS-файл, который импортируется в приложении.Пошаговое решение
Шаг 1. Токены
📄 src/index.css
@import "tailwindcss";
@theme {
--color-brand-400: oklch(0.68 0.16 264);
--color-brand-500: oklch(0.55 0.21 264);
--color-brand-600: oklch(0.48 0.22 264);
--spacing-header: 4rem;
--breakpoint-tablet: 60rem;
}
Шаг 2. Использование в разметке
📄 src/App.tsx
<header className="flex h-header items-center justify-between border-b border-slate-200 px-4">
<span className="text-sm font-semibold text-brand-600">Мой проект</span>
<nav className="hidden gap-4 text-sm tablet:flex">
<a className="text-slate-600 hover:text-brand-500" href="#">Обзор</a>
<a className="text-slate-600 hover:text-brand-500" href="#">Отчёты</a>
</nav>
</header>
Шаг 3. Проверка сгенерированного CSS
npm run build
grep "text-brand-600" dist/assets/*.css
Правило должно найтись. Если его нет — класс не встречается в исходниках целиком либо файл лежит вне сканирования.
Шаг 4. Эксперимент со сбросом
Временно добавьте --color-*: initial; первой строкой блока
@theme и посмотрите, что сломается. Это наглядно показывает,
сколько утилит вы используете «по умолчанию». Затем верните как было.
Как проверить
- Шапка занимает ровно 4rem по высоте (
h-header). - Меню скрыто на узком экране и появляется от 960px (
tablet:flex). - Ссылки при наведении становятся фирменного цвета.
- В DevTools у элемента видно
var(--color-brand-500), а не хардкод.
Ожидаемый результат (кнопка использует бренд-токен курса):
<header class="flex h-16 items-center justify-between rounded-lg border border-slate-200 bg-white px-4">
<span class="text-sm font-semibold text-brand">Мой проект</span>
<nav class="flex gap-4 text-sm">
<a class="text-slate-600 hover:text-brand" href="#">Обзор</a>
<a class="text-slate-600 hover:text-brand" href="#">Отчёты</a>
</nav>
</header>