tailwind
Tailwind CSS v4 (CSS-first) — установка (Vite `@tailwindcss/vite`, PostCSS, CLI), конфигурация через `@import "tailwindcss"` + `@theme` (дизайн-токены как CSS-переменные, OKLCH), utility-first, вариан
Files1
View on GitHubSKILL.mdskills/tailwind/SKILL.md
GitHubНавык: Tailwind CSS (v4)
Utility-first стилизация. v4 — CSS-first: конфигурация живёт в CSS, а не в tailwind.config.js; контент сканируется автоматически (массив content не нужен).
Установка и интеграция
- Vite (рекомендуемо, самый быстрый путь):
npm install tailwindcss @tailwindcss/vite// vite.config.ts import { defineConfig } from 'vite' import tailwindcss from '@tailwindcss/vite' export default defineConfig({ plugins: [tailwindcss()] })/* главный CSS-файл (напр. src/index.css) */ @import "tailwindcss"; - Next.js / PostCSS: пакет
@tailwindcss/postcssвpostcss.config.mjs(plugins: { '@tailwindcss/postcss': {} }) +@import "tailwindcss";в глобальном CSS. - CLI:
@tailwindcss/cli(npx @tailwindcss/cli -i in.css -o out.css --watch). - В v4
@tailwind base/components/utilitiesзаменены одним@import "tailwindcss";.
Конфигурация (CSS-first, @theme)
- Дизайн-токены объявляй в
@theme— они становятся И утилитами, И CSS-переменными:
В рантайме токены доступны как@import "tailwindcss"; @theme { --color-brand-500: oklch(0.84 0.18 117); /* → bg-brand-500, text-brand-500 */ --font-display: "Satoshi", sans-serif; /* → font-display */ --breakpoint-3xl: 1920px; /* → вариант 3xl: */ --ease-snappy: cubic-bezier(0.2, 0, 0, 1); /* → ease-snappy */ }var(--color-brand-500). Используй семантические токены, не «магические» значения; цвета — в OKLCH (шире gamut, предсказуемое осветление). - Кастомные утилиты —
@utility; кастомные варианты —@custom-variant(напр. тёмная тема через класс:@custom-variant dark (&:where(.dark, .dark *));). - Легаси JS-конфиг в v4 не автодетектится — подключай явно:
@config "../tailwind.config.js";. - Миграция v3→v4:
npx @tailwindcss/upgrade.
Основы (utility-first)
- Стилизуй утилитами прямо в разметке; кастомный CSS — только там, где нет подходящей утилиты.
- Повторяющиеся паттерны извлекай в компоненты, а не в
@apply-классы.
Варианты и композиция
- Варианты компонента — через cva (
class-variance-authority); объединение и дедуп классов —clsx+tailwind-merge, обёрнутые вcn(...). - Условные классы — через
cn(...), без ручной конкатенации строк с дублями.
Адаптивность и темы
- Mobile-first: базовые утилиты + брейкпоинты
sm: md: lg:(свои — через--breakpoint-*в@theme). - Container queries встроены в v4:
@containerна родителе +@sm:/@md:по размеру контейнера (не вьюпорта). - Тёмная тема — вариант
dark:; стратегию (media или class) задай через@custom-variant dark. - Состояния и данные —
hover: focus-visible: disabled: aria-*: data-*:варианты.
Доступность
focus-visibleвместо снятия обводки; достаточный контраст (WCAG); не полагайся только на цвет;sr-only— скрыть визуально, оставив для скринридеров.
RTL и логические свойства
- Для мультиязычных/RTL-локалей используй логические утилиты вместо физических:
ms-*/me-*(margin-inline),ps-*/pe-*(padding-inline),start-*/end-*,text-start/text-end; выставляйdirи зеркаль иконки направления. Детали i18n — скилл i18n.
Совет
- Порядок и дубли утилит держи в узде плагином
prettier-plugin-tailwindcss.