ダークモード対応のBootstrapスターター!CSS変数とprefers-color-schemeを完全解説
生徒
「最近、夜になるとWebサイトが暗くなる“ダークモード”をよく見かけますが、自分のサイトでもできますか?」
先生
「はい、BootstrapとCSS変数、さらにprefers-color-schemeを使えば、初心者でも簡単にダークモードの切替ができますよ。」
生徒
「難しそうですけど、具体的にどうやってやるんですか?」
先生
「では、実際のHTMLコードを交えて、丁寧にわかりやすく説明していきましょう!」
1. ダークモードってなに?初心者にもわかりやすく解説
ダークモードとは、画面の背景を暗くして、目にやさしい表示に切り替える機能のことです。最近のスマートフォンやパソコンでは、OSの設定で「ダークモードにする」が選べるようになっています。これに合わせて、Webサイト側も自動でダークテーマに切り替えると、ユーザーにとってとても見やすくなります。
「prefers-color-scheme(プリファーズ・カラー・スキーム)」は、ユーザーの端末がライトモードかダークモードかを教えてくれるCSSの機能です。これを使えば、自動的に色を切り替えることができます。
2. CSS変数を使って色を管理しよう
CSS変数とは、あらかじめ色やサイズを変数のように定義しておき、あとから簡単に変更できる機能です。たとえば、背景色や文字色を--bg-colorや--text-colorのように指定しておけば、ダークモードに切り替えるときにもその値を変更するだけで済みます。
3. Bootstrapスターターにダークモード切替スイッチを追加する
それでは、実際にダークモード対応のスターターテンプレートを作ってみましょう。CSS変数とprefers-color-schemeを活用し、手動でも切替ができるスイッチ付きのレイアウトです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ダークモード対応Bootstrapスターター</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<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">
<style>
:root {
--bg-color: #ffffff;
--text-color: #000000;
}
[data-theme="dark"] {
--bg-color: #121212;
--text-color: #f1f1f1;
}
body {
background-color: var(--bg-color);
color: var(--text-color);
transition: background-color 0.3s, color 0.3s;
}
@media (prefers-color-scheme: dark) {
:root {
--bg-color: #121212;
--text-color: #f1f1f1;
}
}
</style>
</head>
<body>
<div class="container py-5">
<h1 class="mb-4">ダークモード切替スイッチ付きスターター</h1>
<button id="toggleTheme" class="btn btn-secondary">
<i class="bi bi-moon"></i> テーマ切替
</button>
<p class="mt-4">このテンプレートは、ダークモードとライトモードを切り替える機能を備えています。</p>
</div>
<script>
const toggleBtn = document.getElementById('toggleTheme');
toggleBtn.addEventListener('click', () => {
if (document.documentElement.getAttribute('data-theme') === 'dark') {
document.documentElement.removeAttribute('data-theme');
} else {
document.documentElement.setAttribute('data-theme', 'dark');
}
});
</script>
</body>
</html>
ブラウザ表示
4. ダークモード対応のメリットとSEOの効果
ダークモードを導入することによって、ユーザー体験(UX)が向上します。特に夜間や暗い部屋での閲覧が快適になります。また、最近の検索エンジンでは「ダークモード対応」や「モバイルフレンドリーなデザイン」がSEO対策の一部として評価される傾向があり、検索順位の改善にもつながります。
また、Bootstrapを使ったダークモード切替の実装は軽量で高速なため、ページの読み込み速度にも悪影響を与えません。これはGoogleが評価する指標のひとつでもある「PageSpeed」にも好影響を与えます。
5. prefers-color-schemeの注意点と対応方法
ただし、prefers-color-schemeは一部の古いブラウザでは対応していない場合もあります。そのため、今回紹介したように「切替ボタン」を用意することで、ユーザーが自分の好みに応じてテーマを選べるようにしておくのがベストです。
CSSだけに頼らず、JavaScriptを組み合わせることで、より柔軟に制御することが可能になります。特に、企業サイトやブログなど幅広いユーザー層を想定する場合には、このような工夫がとても大切です。
6. BootstrapとCSS変数の組み合わせは初心者にも安心
Bootstrapは、すでにスタイルが整っている便利なパーツがたくさん用意されています。そこに、CSS変数を加えることで、テーマ全体の色を一括で管理できます。つまり、背景色や文字色をそれぞれ設定しなくても、一箇所を変えるだけで全体の見た目を変更できるようになるのです。
このような仕組みを活用することで、Web制作の経験が少ない初心者でも、実用的で見やすいダークモード対応のWebサイトを作ることができます。
まとめ
ダークモード対応Bootstrapスターターの総まとめ
今回の記事では、Bootstrapを使ったダークモード対応のスターターテンプレートについて、初心者にも理解しやすい形で順を追って解説してきました。 ダークモードとは何かという基本的な考え方から始まり、CSS変数を使った色管理の方法、 prefers-color-schemeを利用した自動切替、さらにJavaScriptによる手動切替まで、実践的な内容を一通り学ぶことができました。
ダークモード対応は、単なる見た目の変化ではなく、ユーザー体験を向上させるための重要な工夫です。 特に夜間や暗い環境でWebサイトを閲覧するユーザーにとって、背景が暗く文字が読みやすいデザインは目の負担を減らしてくれます。 最近では、ブログ、コーポレートサイト、管理画面、学習サイトなど、さまざまなWebサイトでダークモードが採用されており、 BootstrapとCSSを組み合わせることで、比較的簡単に導入できる点も大きな魅力です。
CSS変数を使ったテーマ管理は、ダークモード対応をシンプルに保つための重要なポイントです。 背景色や文字色を直接あちこちに書くのではなく、変数としてまとめて定義しておくことで、 ライトモードとダークモードの切替が非常に分かりやすくなります。 これは保守性の高いHTMLとCSSを書くうえでも、とても役立つ考え方です。
prefers-color-schemeと手動切替の使い分け
prefers-color-schemeは、ユーザーの端末設定を尊重できる便利な仕組みですが、 すべての環境で同じように動作するとは限りません。 そのため、今回のスターターテンプレートのように、ボタンでテーマを切り替えられる仕組みを用意しておくことで、 ユーザー自身が好みの表示を選べる柔軟なWebサイトになります。
Bootstrapのボタンやアイコンを使えば、ダークモード切替UIも自然にデザインできます。 見た目が整っていることで、初心者が作ったサイトでも安心感のある印象を与えることができます。 こうした細かな配慮が、結果的に長く使われるWebサイトにつながっていきます。
まとめ用サンプルプログラム
<style>
:root {
--bg-color: #ffffff;
--text-color: #000000;
}
[data-theme="dark"] {
--bg-color: #121212;
--text-color: #f1f1f1;
}
body {
background-color: var(--bg-color);
color: var(--text-color);
}
</style>
<div class="container py-4">
<h1>ダークモード確認サンプル</h1>
<p>CSS変数とBootstrapを使ったシンプルなダークモード例です。</p>
<button class="btn btn-secondary">テーマ切替</button>
</div>
ブラウザ表示
生徒
「ダークモードって難しそうだと思っていましたが、CSS変数を使うと意外と整理しやすいんですね。 Bootstrapと一緒に使えるのも便利だと感じました。」
先生
「そうですね。色の管理を変数にまとめることで、後から修正するのも簡単になります。 ダークモード対応は、初心者でも挑戦しやすいテーマのひとつですよ。」
生徒
「prefers-color-schemeで自動切替しつつ、ボタンで変更できる仕組みがあるのは安心ですね。 実際のサイト制作でも使ってみたいです。」
先生
「ぜひ活用してみてください。Bootstrapのスターターテンプレートとして覚えておくと、 今後のWeb制作や学習でも役に立つはずです。」