Tailwind CSS — это utility-first фреймворк: вы собираете интерфейс из маленьких утилит прямо в разметке, не переключаясь между HTML и длинными кастомными стилями. Классы вроде flex, pt-4, text-center, text-white, font-medium или даже rotate-90 комбинируются как «лего», позволяя буквально за минуты создавать аккуратные, отзывчивые и доступные компоненты.

Зачем это нужно: преимущества подхода utility-first

  • Вы быстрее видите результат: меняете класс — сразу меняется внешний вид.
  • Дизайн получается предсказуемым: каждый класс делает одну понятную вещь.
  • Меньше «магии» в CSS: композиция утилит избавляет от проблем со специфичностью.
  • Производство кода масштабируется: команды легко договариваются на уровне утилит, а не бесконечных «компонентных» стилей.
  • Сборка вычищает неиспользуемые стили, поэтому итоговый CSS маленький и быстрый.

Как это выглядит на практике

Ниже — кнопка, собранная целиком из утилитных классов. Ни одной строчки «кастомного» CSS:

<button class="px-4 py-2 text-white bg-sky-600 rounded-md shadow hover:bg-sky-700 focus:outline-none focus:ring-2 focus:ring-sky-400" >Нажми меня</button>

Адаптивность без боли: префиксы брейкпоинтов

Tailwind — мобильный по умолчанию. Чтобы применить стиль с определённого размера экрана и выше, добавьте префикс брейкпоинта: sm:, md:, lg:, xl:. Например, меняем внутренние отступы по мере роста экрана:

<div class="p-4 sm:p-6 md:p-8 lg:p-10 xl:p-12">Контент</div>
Префикс Когда срабатывает Пример использования
sm: С маленьких экранов и шире sm:grid-cols-2
md: Со средних экранов и шире md:text-lg
lg: С больших экранов и шире lg:p-10
xl: С очень больших экранов и шире xl:gap-12

Темизация на CSS-переменных: легко и прозрачно

Хочется свой шрифт, скейл типографики или фирменный мятный цвет? Определите переменные — и используйте их в утилитах:

@theme {
  --font-sans: "Inter", sans-serif;
  --font-mono: "IBM Plex Mono", monospace;

  --text-tiny: 0.625rem;
  --text-tiny--line-height: 1.5rem;

  --color-mint-100: oklch(0.97 0.15 145);
  --color-mint-200: oklch(0.92 0.18 145);
  --color-mint-300: oklch(0.85 0.22 145);
  --color-mint-400: oklch(0.78 0.25 145);
  --color-mint-500: oklch(0.7 0.28 145);
  --color-mint-600: oklch(0.63 0.3 145);
  --color-mint-700: oklch(0.56 0.32 145);
  --color-mint-800: oklch(0.48 0.35 145);
  --color-mint-900: oklch(0.4 0.37 145);
  --color-mint-950: oklch(0.3 0.4 145);
}

P3-палитры: более сочные цвета «из коробки»

Цвета в широком охвате (P3) делают интерфейс заметно живее на современных дисплеях — без необходимости разбираться в тонкостях цветовых пространств. Вы используете привычные семейства и градации (50–950), а движок подбирает яркие значения под капотом.

  • Семейства: red, orange, amber, yellow, lime, green, emerald, teal, cyan, sky, blue, indigo, violet, purple, fuchsia, pink, rose.
  • Эти же имена работают с вариантами (например, text-sky-500, bg-emerald-700).

Фильтры и «стеклянность»: blur, контраст, насыщенность

Хотите модный стеклянный фон или акцентную картинку? Наращивайте фильтры слоями — до тех пор, пока дизайнер не попросит остановиться.

<img src="/images/cover.jpg" alt="Обложка" class="rounded-xl shadow-xl blur-sm brightness-150 contrast-150 saturate-200" />

Тёмная тема одним префиксом

Не любите слепящий белый? Любой цвет можно «перекрасить» в тёмном режиме с помощью варианта dark::

<p class="text-gray-800 dark:text-gray-300">Этот текст заботится о ваших глазах.</p>

CSS Grid и сложные раскладки становятся понятнее

Управлять сеткой прямо в HTML намного проще, чем держать ментальную модель из десятков селекторов и модификаторов:

<ul class="grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">
  <li class="p-4 rounded-lg shadow">Treehouses</li>
  <li class="p-4 rounded-lg shadow">Mansions</li>
  <li class="p-4 rounded-lg shadow">Lakefront cottages</li>
  <li class="p-4 rounded-lg shadow">Designer homes</li>
</ul>

Контейнерные запросы: компоненты реагируют на ширину блока, а не окна

📢 Подписывайтесь на наш Telegram-канал.

Там вы найдете анонсы обучающих статей и видео, готовый код для ваших проектов и увлекательные курсы. Ничего лишнего — только практика, вдохновение и развитие.

👉 https://t.me/codelab_channel

Помечаем родителя как контейнер и меняем дочерние элементы в зависимости от его размеров. Синтаксис с @ — наглядный и компактный:

<div class="@container">
  <div class="grid grid-cols-1 gap-4 @sm:grid-cols-2">
    <img src="/img/photo-1.jpg" class="aspect-square @sm:aspect-3/2 object-cover" />
    <img src="/img/photo-2.jpg" class="aspect-square @sm:aspect-3/2 object-cover" />
    <img src="/img/photo-3.jpg" class="aspect-square @sm:aspect-3/2 object-cover" />
    <img src="/img/photo-4.jpg" class="aspect-square @sm:aspect-3/2 object-cover" />
  </div>
</div>

Переходы и анимации «как ожидается»

Достаточно пары утилит, чтобы добавить плавность:

<div class="transition ease-out duration-200 hover:scale-105"> Наведи на меня </div>

3D-трансформации и точность настроек

Иногда двух измерений мало. Включайте GPU и задавайте точные значения через произвольные CSS-выражения:

<div class="transform-gpu [transform:rotateY(18deg)_rotateX(6deg)] transition hover:[transform:rotateY(0)_rotateX(0)]" />

Слои каскада: порядок важен

Tailwind использует CSS cascade layers, чтобы избавить вас от войны специфичностей: сначала тема и базовые стили, затем компоненты, затем утилиты.

@layer theme, base, components, utilities;

@layer theme {
  :root {
    /* переменные темы */
  }
}

@layer base {
  /* базовые (preflight) стили */
}

@layer components {
  /* ваши компоненты */
}

@layer utilities {
  /* при необходимости — свои утилиты */
}
Слой Роль Что обычно находится
theme Фундамент Переменные, токены дизайна
base Нормализация Сбросы, типографика по умолчанию
components Повторно используемые блоки Кнопки, карточки, поля ввода
utilities Точечные стили Отступы, цвета, позиционирование и т. п.

Логические свойства и поддержка направлений текста

Поддержка нескольких направлений письма больше не кошмар. Варианты ltr: и rtl: позволяют менять стили в зависимости от направления текста:

<p class="ltr:text-left rtl:text-right">Hello • مرحبا</p>

Как Tailwind держит бандл маленьким

При сборке в продакшен Tailwind автоматически удаляет все неиспользуемые классы. В результате вы часто отправляете в браузер меньше 10 кБ CSS. Типичная структура проекта выглядит так:

<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Tailwind CSS</title>
  <link rel="stylesheet" href="/build.css" />
</head>
<body>
  <button class=""></button>
</body>
</html>
/* build.css — результат сборки */
@layer utilities {
  /* ...минимальный набор реально используемых утилит... */
}
{
  "name": "tailwind-app",
  "private": true,
  "scripts": {
    "build": "tailwindcss -i ./src/app.css -o ./public/build.css --minify"
  }
}

Мини-пример: карточка контента

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

<div class="flex flex-col items-center p-7 rounded-2xl shadow-xl bg-white/5">
  <div>
    <img class="size-48 shadow-xl rounded-md" alt="" src="/img/cover.png" />
  </div>
  <div class="mt-4 flex items-center gap-3">
    <span class="text-2xl font-medium">Class Warfare</span>
    <span class="font-medium text-sky-500">The Anti-Patterns</span>
    <span class="flex items-center gap-2 text-gray-500">
      <span>No. 4</span><span>·</span><span>2025</span>
    </span>
  </div>
</div>

Готовые блоки, чтобы ускориться ещё сильнее

Если нужно стартовать мгновенно, пригодятся готовые коллекции: полноценные шаблоны, наборы UI-блоков и стартовые UI-киты. Это сотни адаптивных примеров, которые можно брать как есть или использовать в качестве отправной точки.

  • Templates: визуально выразительные шаблоны на React/Next.js.
  • UI Blocks: 500+ профессионально собранных, полностью адаптивных компонентов.
  • UI Kit: заготовки для собственной дизайн-системы на React и Tailwind CSS.

Где Tailwind уже применяют

Благодаря низкому порогу и гибкости подхода, Tailwind используют проекты самых разных масштабов — от стартапов до крупных компаний и медиа. Важно, что утилитарный стиль не навязывает внешний вид: вы не «узнаете» Tailwind по готовым темам, потому что он ни к чему не принуждает — он лишь даёт точные инструменты.

Комментарии

0

Без регистрации и смс