Фронтенд
Tailwind CSS
Utility-first CSS-фреймворк: стилі збираються з дрібних класів прямо в розмітці.
Що це
Tailwind CSS створив Адам Уотан (Adam Wathan), нині його розвиває Tailwind Labs, перший реліз вийшов у 2017 році. Замість готових компонентів (як Bootstrap) він дає набір атомарних класів: flex, p-4, text-sm, bg-blue-600.
Стилі пишуться у розмітці, а під час збірки Tailwind залишає в підсумковому CSS лише класи, які реально використані. Тому файл малий. Дизайн-токени (кольори, відступи, шрифти) задаються в конфігурації чи через CSS-змінні в @theme (Tailwind 4).
Підхід добре поєднується з компонентними фреймворками (React, Vue, Svelte): повторювані шматки виносяться в компонент, а не в окремий CSS-клас. Адаптивність і стани задаються префіксами: md:, hover:, dark:.
Коли брати
- Швидко будуєш власний дизайн без перемикання між HTML і CSS-файлами.
- Компонентний фронтенд (React, Vue, Svelte), де стилі живуть разом з компонентом.
- Потрібна консистентна дизайн-система на токенах.
Коли не варто
- Команда не хоче довгих рядків класів у розмітці й віддає перевагу семантичному CSS.
- Потрібні готові стилізовані компоненти без дизайнера: підійде Bootstrap чи бібліотека компонентів.
Ключові поняття
- Utility classes
- Один клас відповідає одній CSS-властивості чи їх невеликій групі.
- Variants
- Префікси
hover:,focus:,md:,dark:додають стани й брейкпоінти. - Design tokens
- Кольори, відступи, шрифти задаються один раз у темі.
- JIT / content scanning
- CSS генерується лише для знайдених у коді класів.
- Arbitrary values
- Довільні значення в квадратних дужках:
w-[320px],bg-[#1da1f2].
Приклад
Питання на співбесіді
1. У чому ідея utility-first?
Замість іменованих CSS-класів ти складаєш вигляд з маленьких класів прямо в розмітці. Це прибирає вигадування назв і розростання CSS, але робить розмітку довшою.
2. Чому підсумковий CSS малий?
Tailwind сканує файли проєкту й генерує правила лише для використаних класів, тож невикористаний CSS не потрапляє у збірку.
3. Як уникнути дублювання довгих рядків класів?
Виносити повторювану розмітку в компонент (React, Vue), а не у
@apply.@applyлишають для рідкісних випадків.4. Як у Tailwind зробити адаптивний дизайн?
Mobile-first префікси: клас без префікса діє завжди, а
md:чиlg:перекриває його від певної ширини екрана.
Схожі технології
- ReactБібліотека для побудови інтерфейсів із компонентів: UI як функція від стану.
- Next.jsФуллстек-фреймворк на React: роутинг, SSR, статична генерація, API-маршрути й сервер-компоненти.
- ViteШвидкий dev-сервер і збирач для фронтенду на нативних ES-модулях.
- AstroФреймворк для контентних сайтів: за замовчуванням відправляє мінімум JavaScript, острови інтерактивності за потребою.
Логотипи належать їхнім власникам і використані лише для ідентифікації. Іконки: Simple Icons (CC0), Devicon (MIT).