Введение в плагин Tailwind CSS daisyUI: быстрое создание UI только с помощью классов
\nTailwind CSS предоставляет высокую гибкость благодаря утилитарным классам, но составление кнопок/карт/модальных окон из отдельных утилит может стать утомительным.\ndaisyUI добавляет к Tailwind «компонентные классы + темы», значительно сокращая время проектирования и стилизации.
\n\n\nСпособ установки и настройки может немного отличаться в зависимости от используемого фреймворка (Next.js, Vite, Remix и т.д.). В этой статье предполагается, что установка уже завершена.\nЕсли нужно начать с установки, обратитесь к официальному руководству:
\n\n
Что такое daisyUI?
\ndaisyUI – это плагин для Tailwind CSS, который предоставляет часто используемые UI‑паттерны как «компонентные классы». То есть вместо того, чтобы комбинировать утилиты Tailwind для кнопок, карточек, модальных окон и т.д., вы можете сразу использовать btn, card и т.п.
- \n
- Компонентные классы:
btn,card,navbar,modalи др. – готовые UI‑паттерны \n - Система тем: переключение темы через
data-theme="light"и т.п. \n - Естественная интеграция с Tailwind: можно доработать детали с помощью утилит Tailwind \n
Самое заметное преимущество – это:
\n- \n
- Результат рендеринга почти одинаков, но HTML становится значительно короче \n
Ниже приведены примеры того, как выглядит разница в HTML при создании «Primary кнопки» и «Карточки + кнопки действия» с использованием и без использования daisyUI.
\nСравнение: daisyUI vs без него – одинаковый результат, но разный HTML
\n1) Primary кнопка
\n(A) Только Tailwind – необходимо комбинировать утилиты для стилизации.
\n<button\n class="inline-flex items-center justify-center rounded-lg px-4 py-2 text-sm font-medium\n bg-blue-600 text-white shadow-sm hover:bg-blue-700\n focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2\n disabled:opacity-50 disabled:pointer-events-none"\n>\n Primary\n</button>\n\n(B) С daisyUI – одна строка с компонентным классом.
\n<button class="btn btn-primary">Primary</button>\n\nГлавное здесь не «Tailwind невозможен», а то, что daisyUI объединяет повторяющиеся комбинации в один класс, позволяя быстро заполнять экран и затем дорабатывать детали с помощью Tailwind.
\n2) Карточка + кнопка действия
\n(A) Только Tailwind – комбинируем контейнер, заголовок, текст и кнопку.
\n<div class="w-96 rounded-2xl bg-white shadow-xl">\n <div class="p-6">\n <h2 class="text-lg font-semibold">Card title</h2>\n <p class="mt-2 text-sm text-slate-600">\n Когда такой же шаблон используется в нескольких местах, классы растут и дублируются.\n </p>\n <div class="mt-4 flex justify-end">\n <button\n class="inline-flex items-center justify-center rounded-lg px-4 py-2 text-sm font-medium\n bg-blue-600 text-white shadow-sm hover:bg-blue-700\n focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2"\n >\n 확인\n </button>\n </div>\n </div>\n</div>\n\n(B) С daisyUI – сначала видны роли компонентов, а при необходимости можно дополнить Tailwind.
\n<div class="card w-96 bg-base-100 shadow-xl">\n <div class="card-body">\n <h2 class="card-title">Card title</h2>\n <p>\n daisyUI предоставляет повторяющиеся структуры UI как компонентные классы, делая HTML короче.\n </p>\n <div class="card-actions justify-end">\n <button class="btn btn-primary">확인</button>\n </div>\n </div>\n</div>\n\nИтого, daisyUI:
\n- \n
- Сокращает длину классов и повышает читаемость \n
- Единообразно задаёт базовые значения UI‑паттернов \n
- Включает темы, обеспечивая быстрый и согласованный стиль \n
Следующий раздел покажет, почему система тем особенно удобна.
\nСистема тем: почему переключение тем и брендов стало проще
\ndaisyUI выделяется возможностью переключения тем. По умолчанию он использует CSS‑переменные, позволяя менять цвет, фон и тон текста по всему приложению.
\n
Применение темы в HTML
\n<html data-theme="light">\n <body>\n <button class="btn btn-primary">Hello</button>\n </body>\n</html>\n\nПереключение темы через JavaScript
\nconst html = document.documentElement;\n\nfunction toggleTheme() {\n const next = html.getAttribute("data-theme") === "dark" ? "light" : "dark";\n html.setAttribute("data-theme", next);\n}\n\nПреимущества:
\n- \n
- Переключение темы глобально, без необходимости менять стили каждого компонента \n
- Быстрое стабилизация дизайн‑системы (цвета, тона) в начале проекта \n
Используем Tailwind и daisyUI вместе!
\ndaisyUI отлично подходит для быстрого создания «основной» структуры, а Tailwind – для «деталей».
\nНапример, добавим отступы/выравнивание/адаптивность к кнопке только с Tailwind:
\n<button class="btn btn-primary w-full sm:w-auto px-6">\n 저장\n</button>\n\n- \n
btn btn-primary– стили компонента (согласованность) \nw-full sm:w-auto px-6– макет, адаптивность, мелкие настройки \n
Когда daisyUI особенно полезен?
\n- \n
- MVP/прототипирование: быстро создать красивый экран \n
- Панели управления/админка: много повторяющихся UI‑паттернов (таблицы, карточки, формы) \n
- Маленькая команда/один разработчик: ограниченное время на создание дизайн‑системы \n
- Сервисы, где важна тема: легкое управление светлой/тёмной темой, брендовыми скинами \n
Что учитывать?
\n- \n
- Нейминг классов будет в стиле daisyUI (
btn,card,navbarи т.д.) – проверьте, не конфликтует ли это с вашими конвенциями \n - Если требуется очень специфичная кастомизация, базовые стили daisyUI могут стать ограничением, но большинство случаев решается через утилиты Tailwind или переопределение компонентов \n
Итоги
\ndaisyUI – это практический плагин, который повышает продуктивность Tailwind. Благодаря компонентным классам и системе тем вы быстро создаёте UI и поддерживаете единый стиль.
\nВ следующей статье мы рассмотрим:
\n- \n
- Как выбрать и настроить тему под ваш проект \n
- Что такое темы в daisyUI и почему их переключение так простое \n
и более глубокое погружение в эти темы.
', '/media/editor_temp/6/6ac85d97-48bb-4f3b-8533-b8976e840cdd.png')