カテゴリ: Bootstrap 更新日: 2025/12/09

BootstrapのユーティリティAPIでテーマ色を作る方法を徹底解説!初心者でもわかるダークモード入門

ユーティリティAPIでテーマ用ユーティリティ(色/背景)を生成
ユーティリティAPIでテーマ用ユーティリティ(色/背景)を生成

先生と生徒の会話形式で理解しよう

生徒

「Bootstrapでテーマカラーを作れると聞いたのですが、難しそうで不安です…。色や背景を自分で増やすことってできますか?」

先生

「Bootstrapには“ユーティリティAPI”という仕組みがあり、特別なプログラミングをしなくてもテーマ用の色や背景を増やせますよ。」

生徒

「パソコン初心者でもできるんでしょうか?ダークモードにも対応できますか?」

先生

「もちろんできます。HTMLだけで設定できるので、まずは簡単な例から一緒に進めてみましょう。」

1. BootstrapのユーティリティAPIとは何かを理解しよう

1. BootstrapのユーティリティAPIとは何かを理解しよう
1. BootstrapのユーティリティAPIとは何かを理解しよう

BootstrapのユーティリティAPIは、色や背景などの「便利なクラス(ユーティリティクラス)」を自分で作り足す仕組みです。たとえば、背景色を変えるbg-primaryなどが代表的なユーティリティクラスです。これらを自分で増やすことで、オリジナルのテーマカラーを使うデザインが簡単に作れます。

プログラミング経験がなくても大丈夫です。この仕組みは「設定を書くだけ」で動きます。難しい計算やコードを書く必要はありません。まるで料理のレシピに材料を足すだけで新しい味が作れるのと同じ感覚です。

2. テーマ作成に必要な考え方を初心者向けに解説

2. テーマ作成に必要な考え方を初心者向けに解説
2. テーマ作成に必要な考え方を初心者向けに解説

テーマ作成とは、サイト全体の雰囲気(色や背景、明るさなど)を整えることです。Bootstrapでは、テーマカラーを定義するだけで、ボタン、背景、文字色などに一貫したデザインを適用できます。

とくにBootstrap 5.3から追加されたdata-bs-themeを使うと、ライトモードとダークモードの切り替えもとても簡単です。これはスマホの「ライトモード・ダークモード切り替え」と同じ仕組みだと考えると理解しやすいでしょう。

3. data-bs-themeでライトモードとダークモードを切り替える仕組み

3. data-bs-themeでライトモードとダークモードを切り替える仕組み
3. data-bs-themeでライトモードとダークモードを切り替える仕組み

Bootstrapでは、HTMLタグにdata-bs-theme="dark"と書くだけでページ全体がダークモードになります。これはCSSのテーマ切替が自動で行われる仕組みで、色の指定などを細かく書かなくてもよいのが魅力です。

次は実際にライトモードとダークモードを切り替える簡単なHTMLコードを見てみましょう。


<style>
:root {
    --bs-body-bg: #ffffff;
    --bs-body-color: #212529;
}

[data-bs-theme="dark"] {
    --bs-body-bg: #212529;
    --bs-body-color: #f8f9fa;
}

body, div {
    background-color: var(--bs-body-bg) !important;
    color: var(--bs-body-color) !important;
}
</style>

<div data-bs-theme="dark" class="p-4">
    <h1>ダークモードの見出し</h1>
    <p>この部分はダークモードで表示されます。</p>
</div>
ブラウザ表示

4. ユーティリティAPIでテーマ色を追加する仕組みを知ろう

4. ユーティリティAPIでテーマ色を追加する仕組みを知ろう
4. ユーティリティAPIでテーマ色を追加する仕組みを知ろう

ユーティリティAPIを使うと、特別なプログラムを書かなくても「自分専用の色」をクラスとして増やすことができます。たとえば、bg-mybluetext-sunのようなオリジナル名のクラスを作れば、一度設定したテーマカラーをページ内で何度でも使えます。

これはまるで、色鉛筆のセットに「自分だけの色」を追加するようなイメージです。一度好きな色を登録しておけば、塗りたい場所にいつでもその色を使えます。

5. CDNでユーティリティAPIを使ってテーマ色を追加する方法

5. CDNでユーティリティAPIを使ってテーマ色を追加する方法
5. CDNでユーティリティAPIを使ってテーマ色を追加する方法

Bootstrapでは、CDN環境でもユーティリティAPIを簡単に使えます。ユーティリティAPIはCSS変数を使って動くため、HTMLの中で:rootに色変数を書くだけでOKです。

下のサンプルでは、オリジナルの「myblue」というテーマ色を作り、背景色と文字色のユーティリティとして使えるようにしています。


<style>
    :root {
        --bs-myblue: #4a90e2;
        --bs-sun: #ffcc33;
    }

    .bg-myblue {
        background-color: var(--bs-myblue) !important;
    }

    .text-sun {
        color: var(--bs-sun) !important;
    }
</style>

<div class="p-3 bg-myblue text-white">
    オリジナルテーマ色の背景です
</div>
<p class="text-sun">オリジナルの文字色です</p>
ブラウザ表示

6. オリジナルテーマをダークモードにも対応させる方法

6. オリジナルテーマをダークモードにも対応させる方法
6. オリジナルテーマをダークモードにも対応させる方法

ダークモード用のテーマを作るには、data-bs-theme="dark"のときに使われる色変数を書くだけでOKです。これは、ライトモードとダークモードで別々の色鉛筆を用意するイメージです。


<style>
    :root {
        --bs-myblue: #4a90e2;
    }

    [data-bs-theme="dark"] {
        --bs-myblue: #1e64a8;
    }

    .bg-myblue {
        background-color: var(--bs-myblue) !important;
    }
</style>

<div data-bs-theme="light" class="p-3 bg-myblue text-white mb-2">
    ライトモードの背景色
</div>
<div data-bs-theme="dark" class="p-3 bg-myblue text-white">
    ダークモードの背景色
</div>
ブラウザ表示

7. 初心者がテーマ色を作るときに気をつけたいポイント

7. 初心者がテーマ色を作るときに気をつけたいポイント
7. 初心者がテーマ色を作るときに気をつけたいポイント

テーマカラーを増やすとデザインの幅が広がりますが、色を増やしすぎると統一性が失われる可能性があります。Bootstrapの特徴である「シンプルでわかりやすいUI」を保つためにも、まずは2〜3色を追加する程度から始めるとよいでしょう。

また、ダークモードでは明度の違いが強調されるため、ライトモードと同じ色がそのまま使えるとは限りません。ダークモードには「少し暗めの色」を設定すると、より自然に見えます。

カテゴリの一覧へ
新着記事
New1
CSS
CSS Gridテンプレート集!よく使うWebレイアウトの作り方
New2
HTML
HTML head要素とは?meta・titleの役割と基本を解説
New3
Bootstrap
Bootstrap固定比率カラム完全ガイド!.col-6・.col-md-4の使い方とベストプラクティスを初心者向けに解説
New4
CSS
CSS Gridとメディアクエリで作る!レスポンシブデザイン完全入門
人気記事
No.1
Java&Spring記事人気No1
CSS
CSSの入れ子構造セレクタ完全ガイド!初心者でもわかる書き方と使い方
No.2
Java&Spring記事人気No2
HTML
HTMLでできること・できないこと|初心者が迷う点を整理
No.3
Java&Spring記事人気No3
CSS
CSS Gridの配置を視覚的にデザイン!grid-template-areasの設計方法
No.4
Java&Spring記事人気No4
CSS
CSSの文字色と背景色の組み合わせで読みやすさアップ!初心者でもわかる可読性の改善方法
No.5
Java&Spring記事人気No5
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.6
Java&Spring記事人気No6
Bootstrap
Bootstrap5グリッドとは?12分割の基本とrow・col・gutterを初心者向けにやさしく解説
No.7
Java&Spring記事人気No7
HTML
HTML html/head/bodyタグの役割|文書構造の基本を整理
No.8
Java&Spring記事人気No8
CSS
CSS Gridレイアウト設計術!固定幅・自動幅・割合幅を組み合わせる方法