('

daisyUIテーマ:35色パレットで『色の悩み』を解消

\n

daisyUIのテーマは単に「ダークモード対応」だけではありません。
\n製品レベルでデザインされた35色のパレット(テーマ)を提供し、そのパレットをアプリ全体に一貫して適用できるようにします。

\n

多彩な色のスタイリングブティック画像

\n
\n

本記事はインストールが完了している前提で進めます。
\nインストールから始める場合は公式ガイドを参照してください:
\nhttps://daisyui.com/docs/install/

\n
\n
\n

テーマを理解するコア:『色を直接指定しない』

\n

初心者が最も混乱しやすいポイントはここです。

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
誤った方法結果
Tailwindで bg-whitetext-slate-900bg-blue-600 など色を直接指定するとテーマを変更してもその要素は固定色を維持します。
\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 : 画面/カードの基本背景
  • \n
  • text-base-content : 基本テキスト色
  • \n
  • btn-primary : 製品の代表的な行動(CTA)
  • \n
\n

テーマはこれらの役割に合わせて色を差し替えます。

\n
\n

では『必ず』何を使うべきか?

\n

daisyUIテーマを正しく使うには、以下のうちの一つ(または両方)を習慣的に使用します。

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
使用法
daisyUIコンポーネントクラスbtnbtn-primaryalertbadgecardnavbarinput
daisyUIカラー・トークンクラス(意味ベースの色)背景/テキスト基本:bg-base-100bg-base-200bg-base-300text-base-content
ポイント色:bg-primarytext-primarybg-secondarybg-accentbg-neutral
状態色:bg-infobg-successbg-warningbg-error(それぞれ *-content 付き)
\n

例えば「警告バナー」を作るときも色を直接指定せず、役割で表現します。

\n
<div class="bg-warning text-warning-content p-4 rounded-box">\n  支払い情報が欠落しています。\n</div>\n
\n
\n

テーマ適用:data-theme 1行で全体の雰囲気を変える

\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

この1行(data-theme)がアプリ全体の色変数セットを切り替えます。

\n
\n

テーマは「全体」だけでなく:セクション単位でも可能

\n

製品開発ではこうした要件が頻繁に出てきます。

\n
    \n
  • 「メインページはシンプルだけど、イベントバナーはもっと目立たせたい」
  • \n
  • 「管理者ページはダーク、ユーザーページはライト」
  • \n
\n

daisyUIは特定DOMに data-theme を付けるだけでその領域だけテーマが変わります。ネストも制限なしです。

\n
<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>\n      </section>\n    </main>\n  </body>\n</html>\n
\n

この機能は「テーマトグル」より実務で頻繁に使われます。

\n
\n

テーマ管理:必要なテーマだけをオンにする習慣

\n

インストールが完了したら、テーマの有効化はCSSの @plugin "daisyui" { ... } ブロックで管理します。

\n
@import "tailwindcss";\n\n@plugin "daisyui" {\n  themes: light --default, dark --prefersdark, cupcake;\n}\n
\n
    \n
  • themesカンマ区切りのリストです。
  • \n
  • --default はデフォルトテーマ
  • \n
  • --prefersdark は OS のダークモード好み(prefers-color-scheme: dark)時のデフォルトテーマ
  • \n
\n

「まず全部オンにして選ぶ」場合はこうもできます。

\n
@plugin "daisyui" {\n  themes: all;\n}\n
\n

ただし製品では通常 必要なものだけをオンにするほうが管理しやすいです。

\n
\n

差別化ポイント:『テーマ選択』をデザインではなく製品戦略として見る

\n

35のテーマを「可愛いスキン」だけだと損です。私はテーマをこう使います。

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ステージ活用方法
MVP段階テーマを「ブランド候補」として複数立ち上げ、UI/コンテンツと合うかを迅速に検証
運用段階色をハードコーディングしないので、ブランドリニューアル/シーズンイベントはテーマ切替で完結
チーム協力デザイナーがいなくても「役割ベースのトークン」を守れば一貫性が保てる
\n

結局のところは一つです。

\n
\n

「色を直接書く習慣」をやめるだけで、テーマはアプリ全体を一瞬でアップグレードできるツールになります。

\n
\n
\n

カスタムテーマはいつ必要か?

\n

結論から言うと、ほとんどの場合は基本35テーマだけで十分です。基本テーマはすでに完成度が高く、通常は「基本テーマ選択 + ほんの少しの修正」で実務に投入できます。

\n

それでもカスタム(オーバーライド)を検討するケースがあります。

\n
    \n
  • ブランドカラーが明確な場合:会社/サービスの代表色が既に決まっており、基本35テーマの中から1つを選んでその上にブランドカラーを重ねるようにしたいとき
  • \n
\n

この場合、最初から新テーマを作るより、primarysecondary だけを少しカスタマイズする方が効率的です。ボタン/リンク/CTAなどの主要インタラクションがブランド色で統一され、残りのトーン(背景/テキスト/状態色)は基本テーマのバランスをそのまま引き継げます。

\n

primarysecondary を実際にどうカスタマイズするか(基本テーマをオーバーライドする方法)は 次回の投稿でコードとともに詳しく解説します。

\n
\n

次回予告

\n

次回は以下を取り上げます。

\n
    \n
  • 「テーマは維持しつつコンポーネントだけを少し変える」実務パターン
  • \n
  • テーマをカスタマイズする方法
  • \n
  • daisyUIでサポートされている色変数とクラスの種類をまとめたチートシート
  • \n
\n

また会いましょう!

', '/media/editor_temp/6/80ae2ebd-04c4-4f84-b0d2-15666a888080.png')