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

Bootstrapでテーマ切替スイッチを実装!初心者向けダークモード完全ガイド

テーマ切替スイッチ(トグル)をJS最小コードで実装【保存あり】
テーマ切替スイッチ(トグル)をJS最小コードで実装【保存あり】

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

生徒

「Bootstrapでサイトの見た目を切り替える方法ってありますか?例えば、昼は明るいデザイン、夜は暗いデザインにしたいんです。」

先生

「はい、それがダークモードとライトモードの切り替えですね。Bootstrapにはテーマ切替を簡単に実装できる仕組みがありますよ。」

生徒

「ボタンを押すとデザインが切り替わるようにしたいんですけど、難しいプログラムが必要ですか?」

先生

「大丈夫です。最小限のJavaScript(ジャバスクリプト)を使えば、誰でもすぐに切替スイッチを作れますよ。さらに設定を保存しておけば、次にページを開いたときも切替状態が保たれます。」

1. ダークモードとライトモードとは?

1. ダークモードとライトモードとは?
1. ダークモードとライトモードとは?

ダークモードとは、画面の背景を暗くして文字を明るく表示するデザインのことです。夜や暗い場所で目に優しく、最近はスマートフォンやアプリでもよく使われています。逆に、ライトモードは白を基調とした明るいデザインです。Bootstrapを使えば、どちらのモードにも簡単に対応できます。

2. Bootstrapでテーマ切替スイッチを作る仕組み

2. Bootstrapでテーマ切替スイッチを作る仕組み
2. Bootstrapでテーマ切替スイッチを作る仕組み

Bootstrap 5では、data-bs-theme という属性を使って全体のテーマを指定できます。この属性に「light」や「dark」を切り替えるだけで、デザインが変わる仕組みです。プログラミング初心者でも理解しやすいように、シンプルに説明すると「服を着替えるようにテーマを切り替える」イメージです。

3. HTMLでテーマ切替スイッチを設置する

3. HTMLでテーマ切替スイッチを設置する
3. HTMLでテーマ切替スイッチを設置する

まずはスイッチボタンをHTMLで作ります。Bootstrapのボタンを使うと見た目もきれいで、初心者でもすぐに実装できます。


<!DOCTYPE html>
<html lang="ja" data-bs-theme="light">
<head>
  <meta charset="UTF-8">
  <title>テーマ切替のサンプル</title>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons/font/bootstrap-icons.css" rel="stylesheet">
</head>
<body class="p-3">
  <button id="themeToggle" class="btn btn-primary">
    <i class="bi bi-moon"></i> ダークモード切替
  </button>

  <script>
    const btn = document.getElementById("themeToggle");
    const html = document.documentElement;
    const savedTheme = localStorage.getItem("theme");
    if(savedTheme){
      html.setAttribute("data-bs-theme", savedTheme);
    }
    btn.addEventListener("click", () => {
      const current = html.getAttribute("data-bs-theme");
      const next = current === "light" ? "dark" : "light";
      html.setAttribute("data-bs-theme", next);
      localStorage.setItem("theme", next);
    });
  </script>
</body>
</html>
ブラウザ表示

4. JavaScriptで保存機能を追加する理由

4. JavaScriptで保存機能を追加する理由
4. JavaScriptで保存機能を追加する理由

スイッチを押してテーマが切り替わっても、ページを再読み込みすると元に戻ってしまうと不便です。そこで「localStorage(ローカルストレージ)」というブラウザの保存箱にテーマの状態を記録します。これにより、次回開いたときも同じテーマで表示されるので、利用者に優しい設計になります。

5. 初心者でも理解できるテーマ切替の流れ

5. 初心者でも理解できるテーマ切替の流れ
5. 初心者でも理解できるテーマ切替の流れ

テーマ切替の流れを生活に例えると分かりやすいです。例えば、朝はカーテンを開けて明るく過ごす(ライトモード)、夜はカーテンを閉めて暗く過ごす(ダークモード)、というイメージです。その選択を部屋のノートに書き残しておけば、次の日も同じように過ごせる。これがlocalStorageでテーマを保存する仕組みと似ています。

6. デザインや使い方の応用

6. デザインや使い方の応用
6. デザインや使い方の応用

スイッチのデザインはBootstrapのクラスを変えるだけで簡単に調整できます。例えば、ボタンを丸くしたり、アイコンを太陽や月に変えたりすることも可能です。実際に運用する際は、ユーザーが直感的に「切り替えできる」と分かるようなデザインにすると使いやすいでしょう。

7. ダークモードが求められる理由

7. ダークモードが求められる理由
7. ダークモードが求められる理由

最近のWebサイトやアプリでダークモードが標準的に導入されるのには理由があります。目の疲れを軽減する、バッテリー消費を抑える、夜間の視認性を向上させるなど、多くのメリットがあります。特にスマートフォン利用者にとっては重要な機能ですので、Bootstrapでサイトを作る際は積極的に取り入れることをおすすめします。

カテゴリの一覧へ
新着記事
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の画面サイズ対応スタイル完全ガイド!初心者でもわかる相対単位の使い方