カテゴリ: 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
HTML
HTMLとは何か?Webページを作る仕組みを初心者向けに完全解説
New2
Bootstrap
Bootstrap CDNの使い方を完全解説!初心者でもわかる読み込み順とSRIとdeferの設定
New3
Bootstrap
Bootstrapの自動レイアウトと比率指定を完全解説!.colと.col-6の使い分けを初心者向けにやさしく説明
New4
Bootstrap
Bootstrap 5 のカラーと背景色を完全ガイド!初心者向け色の使い分け解説
人気記事
No.1
Java&Spring記事人気No1
CSS
CSSグリッドレイアウト完全入門!display: grid の基本と使い方を初心者向けにやさしく解説
No.2
Java&Spring記事人気No2
CSS
CSSの複数セレクタ指定を完全解説!初心者でもわかるカンマ区切りの使い方
No.3
Java&Spring記事人気No3
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.4
Java&Spring記事人気No4
CSS
CSSでテキストの折り返しを完全解説!初心者でもわかる基本と注意点
No.5
Java&Spring記事人気No5
CSS
CSSのフレックスボックスで要素を左右に寄せる方法を完全ガイド!初心者でもわかるjustify-content: space-between
No.6
Java&Spring記事人気No6
CSS
CSS Gridとは?初心者でもわかるグリッドレイアウトとフレックスとの違いをやさしく解説
No.7
Java&Spring記事人気No7
CSS
CSSフレックスボックス完全解説|Gridとの違いとFlexboxが得意なレイアウトパターンを初心者向けに理解しよう
No.8
Java&Spring記事人気No8
CSS
CSSの画面サイズ対応スタイル完全ガイド!初心者でもわかる相対単位の使い方