EMZETT.
Войти

Tailwind CSS и utility-first стилизация

Коротко: Tailwind CSS предоставляет множество небольших вспомогательных классов вроде p-4 или text-center, с помощью которых вы стилизуете интерфейсы прямо в HTML вместо написания собственных классов CSS.

Подробнее: Классический CSS разделяет структуру (HTML) и внешний вид (CSS) и требует имён классов («card-title»). Utility-first переворачивает это: каждый класс делает одно дело, а вы их комбинируете.

Подробности

Пример

<button class="rounded-lg bg-blue-600 px-4 py-2 font-semibold text-white hover:bg-blue-700">
  Save
</button>

px-4 = горизонтальный отступ, bg-blue-600 = фон, hover: = при наведении мыши. Вместо написания .btn { … } вы задаёте классы на элементе.

Адаптивность, состояния, тёмная тема

Префиксы управляют условиями: md:flex (от средних экранов), lg:grid-cols-3, dark:bg-slate-900 (тёмная тема), focus:ring, disabled:opacity-50. Действует принцип mobile-first: классы без префикса работают везде, префиксы — от определённой ширины. Центральная конфигурация (цвета, отступы, шрифты) задаёт систему дизайна.

Преимущества и недостатки

Преимущества: быстрое прототипирование, нет проблем с именованием, нет мёртвого CSS (в готовый файл попадают только используемые классы, малый размер файла), единообразные отступы и цвета. Недостатки: длинные списки классов в HTML, усилия на изучение имён классов, меньшее разделение структуры и стиля. Меры: компоненты (React, Vue) объединяют повторяющиеся классы; @apply возможен, но используйте его умеренно.

Сравнение и начало работы

Альтернативы: CSS Modules, styled-components, классическое соглашение об именовании BEM, фреймворки вроде Bootstrap (готовые компоненты вместо строительных блоков) или UnoCSS. Tailwind можно настроить с Next.js, Vite и другими инструментами; следите за доступностью (контраст, стили фокуса), поскольку вспомогательные классы не заменяют размышлений о ней.

См. также: Bootstrap, Sass