daisyUI темы: 35 тем, чтобы решить проблему выбора цвета
\ndaisyUI темы – это не просто поддержка «тёмного режима».
\n35 готовых палитр (тем), которые уже спроектированы на уровне продукта, и возможность применить их к всему приложению единообразно.

\n\nВ этой статье предполагается, что установка завершена.
\n
\nЕсли нужно начать с установки, сначала посмотрите официальное руководство:
\nhttps://daisyui.com/docs/install/
\n
Ключ к пониманию тем: «не задавайте цвет вручную»
\nСамое частое недоразумение новичков – это именно здесь.
\n| Неправильный способ | \nРезультат | \n
|---|---|
Если в Tailwind прописать bg-white, text-slate-900, bg-blue-600 и т.д. | \nПри смене темы элемент остаётся фиксированным цветом. | \n
То есть, чтобы использовать тему, не кодируйте цвета напрямую – используйте токены (семантические имена цветов), которые предоставляет daisyUI.
\n❌ Неправильный пример: игнорирование темы и жёсткое кодирование
\n<div class="bg-white text-slate-900 p-6 rounded-2xl">\n <button class="bg-blue-600 text-white px-4 py-2 rounded-lg">Save</button>\n</div>\n\n✅ Правильный пример: использование токенов daisyUI, чтобы «подстраиваться» под тему
\n<div class="bg-base-100 text-base-content p-6 rounded-box">\n <button class="btn btn-primary">Save</button>\n</div>\n\nВажно не «какой цвет», а «какая роль».
\n- \n
bg-base-100: основной фон экрана/карточки \ntext-base-content: основной цвет текста \nbtn-primary: основное действие продукта (CTA) \n
Тема меняет цвета в соответствии с этими ролями.
\n\n
Что именно нужно использовать?
\nЧтобы правильно использовать темы daisyUI, просто применяйте один из двух вариантов (или оба) в привычном режиме.
\n| Способ | \nПример | \n
|---|---|
| Классы компонентов daisyUI | \nbtn, btn-primary, alert, badge, card, navbar, input … | \n
| Классы токенов цвета daisyUI (семантические) | \nБазовый фон/текст: bg-base-100, bg-base-200, bg-base-300, text-base-content Акцентные цвета: bg-primary, text-primary, bg-secondary, bg-accent, bg-neutral Состояния: bg-info, bg-success, bg-warning, bg-error (+ соответствующие *-content) | \n
Например, при создании «баннера предупреждения» не задавайте цвет напрямую, а указывайте роль.
\n<div class="bg-warning text-warning-content p-4 rounded-box">\n Информация о платеже отсутствует.\n</div>\n\n\n
Применение темы: один data-theme меняет весь вид
\nПрименение темы удивительно простое.
\n<html data-theme="cupcake">\n <body>\n <div class="bg-base-100 text-base-content min-h-screen p-10">\n <button class="btn btn-primary">Primary</button>\n </div>\n </body>\n</html>\n\nЭта одна строка (data-theme) меняет весь набор цветовых переменных приложения.
\n
Тема меняет не только «весь» вид: можно менять и по секциям
\nПри разработке часто встречаются такие требования.
\n- \n
- «Главная страница чистая, но баннер события должен быть ярче» \n
- «Панель администратора в тёмном, пользовательский интерфейс – в светлом» \n
daisyUI позволяет добавить data-theme к конкретному DOM‑элементу, и только эта область будет использовать другую тему. Вложенность ограничений нет.
<html data-theme="dark">\n <body>\n <main class="p-10">\n <h1 class="text-2xl font-bold">Весь сайт в тёмном режиме</h1>\n\n <section data-theme="light" class="mt-8 p-6 rounded-box bg-base-100 text-base-content">\n Эта секция всегда светлая\n <span data-theme="retro" class="ml-2">Этот span в ретро‑стиле</span>\n </section>\n </main>\n </body>\n</html>\n\nЭта функция чаще используется в реальных проектах, чем простое переключение темы.
\n\n
Управление темами: включайте только нужные
\nПосле установки управление активными темами осуществляется в блоке CSS @plugin "daisyui" { ... }.
@import "tailwindcss";\n\n@plugin "daisyui" {\n themes: light --default, dark --prefersdark, cupcake;\n}\n\n- \n
themes– список, разделённый запятыми. \n--default– тема по умолчанию \n--prefersdark– тема по умолчанию, если пользователь предпочитает тёмный режим (prefers-color-scheme: dark) \n
Если хотите «включить всё и потом выбрать», можно сделать так.
\n@plugin "daisyui" {\n themes: all;\n}\n\nНо в большинстве продуктов удобно включать только необходимые темы.
\n\n
Уникальная точка: «выбор темы» как продуктовая стратегия, а не просто дизайн
\n35 тем – это не просто «красивые скины». Я использую их так:
\n| Этап | \nКак применяю | \n
|---|---|
| MVP | \nПускаю несколько тем как «брендовые кандидаты» и быстро проверяю, как они сочетаются с UI/контентом | \n
| Операционный | \nПоскольку цвета не кодируются напрямую, обновление бренда/сезонных акций сводится к «смене темы» | \n
| Командная работа | \nДаже без дизайнера, соблюдая токены ролей, сохраняется согласованность | \n
Идея проста.
\n\n\nЕсли избавиться от привычки «жёстко задавать цвет», тема становится инструментом мгновенного обновления всего приложения.
\n
\n
Когда нужны кастомные темы?
\nВ итоге, для большинства случаев достаточно 35 базовых тем. Они уже высококачественные, и обычно достаточно «выбрать базовую тему + небольшие правки».
\nОднако бывают случаи, когда стоит рассмотреть кастомизацию (переопределение).
\n- \n
- Ясно определённый брендовый цвет: если у компании/сервиса уже есть фирменный цвет, и вы хотите, чтобы он доминировал, выбираете одну из 35 тем и «покрываете» её брендовыми цветами. \n
В таком случае, вместо создания новой темы с нуля, проще переопределить только primary, secondary. Это позволяет сохранить баланс остальных тонов (фон, текст, состояния), а ключевые интерактивные элементы (кнопки, ссылки, CTA) будут окрашены в брендовый цвет.
Как именно переопределять primary, secondary – подробнее в следующем посте с кодом.
\n
Анонс следующей части
\nВ следующей статье планирую рассмотреть:
\n- \n
- Практический паттерн «сохраняем тему, слегка меняем компоненты» \n
- Как кастомизировать тему \n
- Чит‑шит по цветовым переменным и классам, поддерживаемым daisyUI \n
До встречи!
', '/media/editor_temp/6/80ae2ebd-04c4-4f84-b0d2-15666a888080.png')