Введение в плагин Tailwind CSS daisyUI: быстрое создание UI только с помощью классов
Tailwind CSS предоставляет высокую гибкость благодаря утилитарным классам, но составление кнопок/карт/модальных окон из отдельных утилит может стать утомительным. daisyUI добавляет к Tailwind «компонентные классы + темы», значительно сокращая время проектирования и стилизации.
Способ установки и настройки может немного отличаться в зависимости от используемого фреймворка (Next.js, Vite, Remix и т.д.). В этой статье предполагается, что установка уже завершена. Если нужно начать с установки, обратитесь к официальному руководству:
Что такое daisyUI?
daisyUI – это плагин для Tailwind CSS, который предоставляет часто используемые UI‑паттерны как «компонентные классы». То есть вместо того, чтобы комбинировать утилиты Tailwind для кнопок, карточек, модальных окон и т.д., вы можете сразу использовать btn, card и т.п.
- Компонентные классы:
btn,card,navbar,modalи др. – готовые UI‑паттерны - Система тем: переключение темы через
data-theme="light"и т.п. - Естественная интеграция с Tailwind: можно доработать детали с помощью утилит Tailwind
Самое заметное преимущество – это:
- Результат рендеринга почти одинаков, но HTML становится значительно короче
Ниже приведены примеры того, как выглядит разница в HTML при создании «Primary кнопки» и «Карточки + кнопки действия» с использованием и без использования daisyUI.
Сравнение: daisyUI vs без него – одинаковый результат, но разный HTML
1) Primary кнопка
(A) Только Tailwind – необходимо комбинировать утилиты для стилизации.
<button
class="inline-flex items-center justify-center rounded-lg px-4 py-2 text-sm font-medium
bg-blue-600 text-white shadow-sm hover:bg-blue-700
focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2
disabled:opacity-50 disabled:pointer-events-none"
>
Primary
</button>
(B) С daisyUI – одна строка с компонентным классом.
<button class="btn btn-primary">Primary</button>
Главное здесь не «Tailwind невозможен», а то, что daisyUI объединяет повторяющиеся комбинации в один класс, позволяя быстро заполнять экран и затем дорабатывать детали с помощью Tailwind.
2) Карточка + кнопка действия
(A) Только Tailwind – комбинируем контейнер, заголовок, текст и кнопку.
<div class="w-96 rounded-2xl bg-white shadow-xl">
<div class="p-6">
<h2 class="text-lg font-semibold">Card title</h2>
<p class="mt-2 text-sm text-slate-600">
Когда такой же шаблон используется в нескольких местах, классы растут и дублируются.
</p>
<div class="mt-4 flex justify-end">
<button
class="inline-flex items-center justify-center rounded-lg px-4 py-2 text-sm font-medium
bg-blue-600 text-white shadow-sm hover:bg-blue-700
focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2"
>
확인
</button>
</div>
</div>
</div>
(B) С daisyUI – сначала видны роли компонентов, а при необходимости можно дополнить Tailwind.
<div class="card w-96 bg-base-100 shadow-xl">
<div class="card-body">
<h2 class="card-title">Card title</h2>
<p>
daisyUI предоставляет повторяющиеся структуры UI как компонентные классы, делая HTML короче.
</p>
<div class="card-actions justify-end">
<button class="btn btn-primary">확인</button>
</div>
</div>
</div>
Итого, daisyUI:
- Сокращает длину классов и повышает читаемость
- Единообразно задаёт базовые значения UI‑паттернов
- Включает темы, обеспечивая быстрый и согласованный стиль
Следующий раздел покажет, почему система тем особенно удобна.
Система тем: почему переключение тем и брендов стало проще
daisyUI выделяется возможностью переключения тем. По умолчанию он использует CSS‑переменные, позволяя менять цвет, фон и тон текста по всему приложению.

Применение темы в HTML
<html data-theme="light">
<body>
<button class="btn btn-primary">Hello</button>
</body>
</html>
Переключение темы через JavaScript
const html = document.documentElement;
function toggleTheme() {
const next = html.getAttribute("data-theme") === "dark" ? "light" : "dark";
html.setAttribute("data-theme", next);
}
Преимущества:
- Переключение темы глобально, без необходимости менять стили каждого компонента
- Быстрое стабилизация дизайн‑системы (цвета, тона) в начале проекта
Используем Tailwind и daisyUI вместе!
daisyUI отлично подходит для быстрого создания «основной» структуры, а Tailwind – для «деталей».
Например, добавим отступы/выравнивание/адаптивность к кнопке только с Tailwind:
<button class="btn btn-primary w-full sm:w-auto px-6">
저장
</button>
btn btn-primary– стили компонента (согласованность)w-full sm:w-auto px-6– макет, адаптивность, мелкие настройки
Когда daisyUI особенно полезен?
- MVP/прототипирование: быстро создать красивый экран
- Панели управления/админка: много повторяющихся UI‑паттернов (таблицы, карточки, формы)
- Маленькая команда/один разработчик: ограниченное время на создание дизайн‑системы
- Сервисы, где важна тема: легкое управление светлой/тёмной темой, брендовыми скинами
Что учитывать?
- Нейминг классов будет в стиле daisyUI (
btn,card,navbarи т.д.) – проверьте, не конфликтует ли это с вашими конвенциями - Если требуется очень специфичная кастомизация, базовые стили daisyUI могут стать ограничением, но большинство случаев решается через утилиты Tailwind или переопределение компонентов
Итоги
daisyUI – это практический плагин, который повышает продуктивность Tailwind. Благодаря компонентным классам и системе тем вы быстро создаёте UI и поддерживаете единый стиль.
В следующей статье мы рассмотрим:
- Как выбрать и настроить тему под ваш проект
- Что такое темы в daisyUI и почему их переключение так простое
и более глубокое погружение в эти темы.
Комментариев нет.