BootstrapでOS設定に合わせたダークモード!初心者でもわかるprefers-color-scheme対応
生徒
「Bootstrapでダークモードを作りたいんですけど、自動で切り替えることってできますか?」
先生
「できますよ。最近のパソコンやスマートフォンは、OSの設定でライトモードやダークモードを選べます。その設定に合わせて自動で切り替える仕組みが prefers-color-scheme です。」
生徒
「へえ!じゃあ自分でボタンを押さなくても勝手に切り替わるんですか?」
先生
「そうです。ユーザーのOSがダークモードなら自動でダーク表示、ライトモードなら通常の明るい表示にできます。CSSだけで実現できるのでとても便利ですよ。」
1. prefers-color-schemeとは?
prefers-color-scheme は、ユーザーがパソコンやスマートフォン(iOS/Android)のシステム設定で選んでいる「ライトモード」や「ダークモード」の情報を、ウェブサイト側がキャッチして自動でデザインを切り替えるためのCSSの仕組みです。
これはCSSの「メディアクエリ」という機能の一つです。メディアクエリは本来「画面の横幅」などによってデザインを変えるために使われますが、この prefers-color-scheme を使えば、「ユーザーがいま、暗い画面で見たいと思っているか」を判断基準にできます。
プログラミング未経験の方でも、「テレビの明るさ自動調節機能」のように、周りの環境やユーザーの好みに合わせてサイトが「おもてなし」をしてくれる機能だと考えれば分かりやすいでしょう。近年、目の疲れを軽減するためにダークモードを常用するユーザーが増えているため、この対応はモダンなウェブ制作において必須級のスキルとなっています。
仕組みを体験してみよう
以下のサンプルは、皆さんの端末(PCやスマホ)の設定を変えると、枠内の色が変わる仕組みです。コードの中にある (prefers-color-scheme: dark) という部分が、「もしダークモード設定だったら」という条件分岐の役割を果たしています。
<style>
/* 通常時(ライトモード)のスタイル */
.color-test-box {
background-color: #f8f9fa;
color: #212529;
border: 2px solid #dee2e6;
padding: 20px;
border-radius: 8px;
}
/* OSがダークモード設定の時だけ適用されるスタイル */
@media (prefers-color-scheme: dark) {
.color-test-box {
background-color: #343a40;
color: #f8f9fa;
border-color: #495057;
}
}
</style>
<div class="color-test-box">
<p class="mb-0">OSの設定を切り替えると、ここの背景色と文字色が変わります!</p>
</div>
ブラウザ表示
特別なJavaScript(プログラム)を書かなくても、CSSだけでこれほどスマートにユーザーの好みに寄り添えるのが prefers-color-scheme の最大の特徴です。
2. Bootstrapとダークモードの関係
Bootstrap 5はCSS変数(カスタムプロパティ)を使って色や背景を制御しています。このため、ダークモードにも対応しやすくなっています。特に、背景色や文字色をCSS変数で管理することで、テーマを切り替えるときに大きな効果を発揮します。
つまり、Bootstrapの基本的な仕組みを理解しておけば、prefers-color-schemeを使ったテーマ切り替えも簡単にできるようになります。
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. ボタンの色をダークモード対応にする
背景や文字だけでなく、ボタンもダークモードに合わせて切り替えられます。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. 実際の使いどころ
この仕組みは、ブログ記事、会社のホームページ、商品紹介サイトなど、あらゆる場面で使えます。特に夜間にスマホを見る人にとって、ダークモード対応のサイトは目に優しく、滞在時間や好印象につながります。
また、SEO対策としても「ダークモード対応」というキーワードは注目されています。検索エンジンにヒットしやすくなるだけでなく、ユーザー体験の向上にもつながります。
6. 注意点
ただし、すべてを自動で切り替えると「自分で選びたい」というユーザーの希望を奪ってしまう場合があります。そのため、prefers-color-schemeで自動切り替えしつつ、ユーザーが手動で切り替えるボタンを追加するのが理想的です。
初心者の方は、まずprefers-color-schemeを体験してみて、必要に応じて切り替えスイッチを追加するとよいでしょう。
【60分集中】CSSを1行も書かない!?Bootstrap 5ユーティリティクラス活用で開発工数を50%削減
「スピード」が武器になる。Bootstrap 5で商用クオリティのWebサイトを高速構築。
本講座では、世界シェアNo.1のフレームワークBootstrap 5を使いこなし、ゼロからレスポンシブサイトを組み上げる「現場最速のワークフロー」を学びます。単なる導入に留まらず、ユーティリティクラスを活用した効率化と、実務で必須となるカスタマイズ技法を60分で完全習得します。
具体的なワークショップ内容と環境
【つくるもの】
モダンなランディングページ(LP)やダッシュボードのプロトタイプを作成します。ナビゲーション、ヒーローセクション、カードレイアウト、フッターなど、Bootstrapのコンポーネントを組み合わせて「一瞬で形にする」感動を体験してください。
【開発環境】
VS CodeにBootstrap 5専用のSnippet(補完機能)を導入し、手入力を最小限にする環境を構築。最新のCDN利用法や、表示速度(Core Web Vitals)を意識した最適な読み込み設定など、プロの初期設定を伝授します。
この60分で得られる3つの革新スキル
スマホ・タブレット・PCでレイアウトを自由自在に切り替える「ブレイクポイント」の極意を学びます。
CSSを1行も書かずに、マージン・パディング・カラーを制御。開発工数を半分以下にする実戦術を習得します。
「Bootstrap感」を消し、独自のブランドイメージに合わせるための、上書きの作法とデザインの整え方を伝授します。
※本講座は、HTML/CSSの基本を理解した方向けの「実践加速講座」です。制作会社のコーダーや副業フリーランスとして「案件の回転率」を上げ、市場価値を最大化させたい方をモクモクがバックアップします。
Bootstrap 5を楽しみながら、一緒に学びましょう!
各回少人数・マンツーマン形式で徹底サポート
このセミナーの詳細・お申し込みはこちら