Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Своя тема

Готовые темы подходят для старта, но у сайта обычно свои фирменные цвета. Своя тема в daisyUI — это набор CSS-переменных с названием темы. Переменные те же, что у встроенных тем, поэтому все компоненты сразу начинают использовать ваши цвета.

Переменные темы

ПеременнаяЧто задаёт
--color-primary, --color-primary-contentОсновной цвет и текст на нём
--color-secondary, --color-accent, --color-neutralОстальные цвета бренда (каждый со своим -content)
--color-base-100 … --color-base-300, --color-base-contentФоны и основной текст
--color-info, --color-success, --color-warning, --color-errorЦвета состояний
--radius-boxСкругление карточек, модальных окон, уведомлений
--radius-fieldСкругление кнопок, полей ввода, вкладок
--radius-selectorСкругление флажков, переключателей, значков
--depth, --noiseОбъём и зернистость: 0 или 1

Цвета в темах daisyUI записывают в формате oklch(светлота насыщенность оттенок), но подойдёт и привычный #2563eb.

Тема в проекте

В проекте на Vite тему описывают блоком @plugin "daisyui/theme" в src/style.css, после подключения самого daisyUI:

@import "tailwindcss";
@plugin "daisyui";
 
@plugin "daisyui/theme" {
  name: "learnup";
  default: true;
  prefersdark: false;
  color-scheme: light;
 
  --color-base-100: #ffffff;
  --color-base-200: #f1f5f9;
  --color-base-300: #e2e8f0;
  --color-base-content: #1e293b;
  --color-primary: #2563eb;
  --color-primary-content: #ffffff;
  --color-secondary: #f97316;
  --color-secondary-content: #ffffff;
 
  --radius-box: 1rem;
  --radius-field: 2rem;
}

name — название для data-theme, default: true делает тему основной, color-scheme подсказывает браузеру, светлая она или тёмная (от этого зависят полосы прокрутки и стандартные поля). Остальные цвета задают так же; полный набор удобно получить в генераторе тем на сайте daisyUI и скопировать оттуда.

Попробовать в браузере

В CDN-версии тему можно описать обычным CSS-правилом для [data-theme="learnup"] — те же переменные, только без блока @plugin:

<link href="https://cdn.jsdelivr.net/npm/daisyui@5" rel="stylesheet" type="text/css">
<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>
 
<style>
  [data-theme="learnup"] {
    color-scheme: light;
    --color-base-200: #f1f5f9;
    --color-base-content: #1e293b;
    --color-primary: #2563eb;
    --color-primary-content: #ffffff;
    --color-secondary: #f97316;
    --color-secondary-content: #ffffff;
    --radius-box: 1rem;
    --radius-field: 2rem;
  }
</style>
 
<div data-theme="learnup" class="p-4">
  <div class="rounded-box bg-base-200 p-4">
    <p class="mb-3 font-semibold">Курс «Основы HTML» — $19</p>
    <button class="btn btn-primary">Записаться</button>
    <button class="btn btn-secondary">В избранное</button>
  </div>
</div>

Кнопки стали синей и оранжевой и полностью круглыми по краям, а панель — с крупным скруглением. Переменные, которые вы не задали, остаются от темы light.

Правка готовой темы

Если нравится готовая тема, но нужен другой основной цвет, достаточно указать её имя и только изменяемые переменные:

@plugin "daisyui/theme" {
  name: "light";
  default: true;
  --color-primary: #2563eb;
}

Тема light осталась прежней, поменялся лишь primary.

Частая ошибка

Задать --color-primary, но забыть --color-primary-content. Текст на кнопке тогда берётся из старой темы и может слиться с новым фоном — например, светлый текст на светло-жёлтой кнопке. Меняя цвет, всегда задавайте и его пару -content.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.