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

BootstrapでOS設定に合わせたダークモード!初心者でもわかるprefers-color-scheme対応

prefers-color-schemeに対応:OS設定に追従するダークモード
prefers-color-schemeに対応:OS設定に追従するダークモード

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

生徒

「Bootstrapでダークモードを作りたいんですけど、自動で切り替えることってできますか?」

先生

「できますよ。最近のパソコンやスマートフォンは、OSの設定でライトモードやダークモードを選べます。その設定に合わせて自動で切り替える仕組みが prefers-color-scheme です。」

生徒

「へえ!じゃあ自分でボタンを押さなくても勝手に切り替わるんですか?」

先生

「そうです。ユーザーのOSがダークモードなら自動でダーク表示、ライトモードなら通常の明るい表示にできます。CSSだけで実現できるのでとても便利ですよ。」

1. prefers-color-schemeとは?

1. prefers-color-schemeとは?
1. prefers-color-schemeとは?

prefers-color-scheme は、ユーザーがパソコンやスマートフォンで設定しているテーマ(ライト/ダーク)に応じて、ウェブサイトのデザインを切り替えるための仕組みです。これはCSSの「メディアクエリ」と呼ばれる機能の一種です。例えば、スマホの設定で「ダークモード」をオンにしている人には暗い背景のデザインを、自動的に表示することができます。

初心者の方でも難しく考えなくて大丈夫です。「OSの設定をウェブサイトが読み取って、自動で色を切り替えてくれる」と理解すればOKです。

2. Bootstrapとダークモードの関係

2. Bootstrapとダークモードの関係
2. Bootstrapとダークモードの関係

Bootstrap 5はCSS変数(カスタムプロパティ)を使って色や背景を制御しています。このため、ダークモードにも対応しやすくなっています。特に、背景色や文字色をCSS変数で管理することで、テーマを切り替えるときに大きな効果を発揮します。

つまり、Bootstrapの基本的な仕組みを理解しておけば、prefers-color-schemeを使ったテーマ切り替えも簡単にできるようになります。

3. 基本の書き方

3. 基本の書き方
3. 基本の書き方

まずは基本のCSSコードを書いてみましょう。ライトモード用とダークモード用を分けて記述します。


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

@media (prefers-color-scheme: dark) {
    :root {
        --bs-body-bg: #121212;
        --bs-body-color: #ffffff;
    }
}
</style>

<div class="p-3" style="background-color: var(--bs-body-bg); color: var(--bs-body-color);">
    OS設定に応じてライトとダークが切り替わります
</div>
ブラウザ表示

このコードでは、通常は白背景と黒文字、OSがダークモードの場合は黒背景と白文字になるように設定しています。

Windowsで変更する方法

設定 → 個人用設定 → 色 → 「モードを選ぶ」で「ライト」または「ダーク」を切り替えます。

Mac(macOS)で変更する方法

システム設定 → 外観 → 「ライト」「ダーク」を選びます。

iPhone / Androidで変更する方法

設定 → 画面表示と明るさ(またはディスプレイ設定) → 「ライトモード/ダークモード」を切り替えます。

4. ボタンの色をダークモード対応にする

4. ボタンの色をダークモード対応にする
4. ボタンの色をダークモード対応にする

背景や文字だけでなく、ボタンもダークモードに合わせて切り替えられます。Bootstrapの.btn-primaryをカスタマイズしてみましょう。


<style>
.btn-primary {
    --bs-btn-bg: #ff6600;
    --bs-btn-border-color: #ff6600;
}
@media (prefers-color-scheme: dark) {
    .btn-primary {
        --bs-btn-bg: #ffaa66;
        --bs-btn-border-color: #ffaa66;
    }
}
</style>

<button class="btn btn-primary">ダークモード対応ボタン</button>
ブラウザ表示

ライトモードでは元気なオレンジ色、ダークモードでは少し明るいオレンジ色に変わります。

5. 実際の使いどころ

5. 実際の使いどころ
5. 実際の使いどころ

この仕組みは、ブログ記事、会社のホームページ、商品紹介サイトなど、あらゆる場面で使えます。特に夜間にスマホを見る人にとって、ダークモード対応のサイトは目に優しく、滞在時間や好印象につながります。

また、SEO対策としても「ダークモード対応」というキーワードは注目されています。検索エンジンにヒットしやすくなるだけでなく、ユーザー体験の向上にもつながります。

6. 注意点

6. 注意点
6. 注意点

ただし、すべてを自動で切り替えると「自分で選びたい」というユーザーの希望を奪ってしまう場合があります。そのため、prefers-color-schemeで自動切り替えしつつ、ユーザーが手動で切り替えるボタンを追加するのが理想的です。

初心者の方は、まずprefers-color-schemeを体験してみて、必要に応じて切り替えスイッチを追加するとよいでしょう。

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