ダークモード対応テーブルのスタイル切り替え方法!CSS変数で賢く実装するWebデザイン
生徒
「ウェブサイトにダークモードを取り入れたいのですが、表(テーブル)の色を自動で切り替えるにはどうすればいいですか?」
先生
「それなら『CSS変数』という仕組みを使うのが一番簡単ですよ。これを使えば、一つの設定で明るい画面と暗い画面の両方に対応できます。」
生徒
「CSS変数とは何ですか?私のような初心者でも扱えますか?」
先生
「大丈夫ですよ。色を箱に入れて名前をつけるようなイメージです。では、基本的な実装方法を学んでいきましょう!」
1. ダークモードとは何か?なぜ必要か
ダークモードとは、ウェブサイトの背景を暗い色、文字を明るい色に切り替えて表示する機能のことです。最近のスマートフォンやパソコンのOSには標準で備わっており、夜間に画面を見るときに目が疲れにくくなるため、非常に人気があります。ウェブサイトを作る側にとっても、利用者に配慮した「優しいサイト」としての評価を高めるために欠かせない要素となっています。
ウェブサイトを制作する際、HTMLとCSSでデザインを決めますが、ダークモード対応を個別にすべてのタグに対して書いていくと、膨大な手間がかかります。そこで、「背景色はこの色」「文字はこの色」と色に名前をつけて管理することで、モードの切り替えを一瞬で終わらせる技術が必要になります。プログラミングの経験がない方でも、この「色を箱に入れて管理する」という仕組みさえ覚えてしまえば、驚くほど効率的にデザインを操作できるようになります。
2. CSS変数で色を管理する
CSS変数とは、一度決めた色に名前をつけて、あとから何度も使い回せるようにする機能です。--で始まるのが特徴です。例えば「背景色」という変数を作っておけば、画面全体でその変数を使うだけで、あとから「やっぱり背景色を変えよう」と思ったときに、一箇所の変更だけでサイト中の色を統一して変えることができます。
<style>
:root {
--bg-color: white;
--text-color: black;
}
.dark-mode {
--bg-color: #333;
--text-color: white;
}
body {
background-color: var(--bg-color);
color: var(--text-color);
}
</style>
<p>CSS変数は、サイト全体のデザインを一括で調整するのに最適な道具です。</p>
このように、:rootという場所で基本の色を決め、特定のクラスが付いたときに色を上書きすることで、スムーズな切り替えが実現します。この「箱(変数)の中身を入れ替える」という発想が、ダークモード実装の心臓部となります。
3. テーブルのデザインをダークモード対応にする
次に、テーブルのスタイルをダークモードに対応させましょう。テーブルは背景色と枠線のコントラストが大切です。CSS変数を使えば、明るいモードと暗いモードで、枠線やセルの背景色を最適化することができます。
<style>
.my-table {
background-color: var(--bg-color);
color: var(--text-color);
border: 1px solid var(--text-color);
}
.my-table td {
padding: 10px;
border-bottom: 1px solid var(--text-color);
}
</style>
<table class="my-table">
<tr><td>ダークモード対応の表</td></tr>
</table>
ブラウザ表示
ご覧の通り、テーブルの中身は同じでも、変数の定義を変えるだけで、自動的に黒背景の表に切り替わります。表のデザインにおいて、枠線の色も変数に入れておくことで、背景色に合わせて自動的に見やすい色へ調整できるようになります。これがデザインにおける「変数の強み」です。
4. メディアクエリでOS設定を自動検知する
利用者のパソコンやスマホの設定に合わせて、自動でダークモードを適用する方法もあります。prefers-color-schemeという命令を使えば、利用者の環境がダークモード設定なら、サイトも自動的に暗くすることができます。
<style>
@media (prefers-color-scheme: dark) {
:root {
--bg-color: #1a1a1a;
--text-color: #f0f0f0;
}
}
</style>
<p>OSの設定を読み取って、自動で快適な色味に調整します。</p>
この記述を加えるだけで、夜間にサイトを訪れたユーザーに対して、自動的に暗いテーマを提供できます。利用者がわざわざ「切り替えボタン」を押さなくても、最初から目に優しい表示になるのは、非常に親切なウェブサイトと言えます。これは、最新のCSS技術を駆使した非常に便利な機能です。
5. ボタン操作で切り替えられるようにする
自動検知だけでなく、ボタンを押して切り替えたいというユーザーも多いはずです。これにはJavaScriptというプログラムの助けを借ります。といっても、HTMLに少しコードを追加するだけで、簡単に実装できます。
<button onclick="document.body.classList.toggle('dark-mode')">
モード切替
</button>
<style>
.dark-mode {
background-color: #222;
color: white;
}
</style>
ブラウザ表示
ボタンを押すとbodyタグに「dark-mode」という名前のクラスが追加されたり消えたりする仕組みです。これに合わせてCSSが変わるため、ユーザーは自分の好みに合わせて自由に表示を切り替えることができます。ウェブサイト制作において、利用者に選択肢を与えることは信頼につながります。
6. ダークモード対応時の注意点
ダークモード対応で気をつけるべきは、文字色と背景色の「コントラスト比」です。単に色を暗くすればいいというわけではなく、文字が背景色に溶け込んでしまわないように注意が必要です。例えば、真っ黒な背景に濃い青の文字では、非常に読みにくくなってしまいます。常に、明るい色の上には暗い文字、暗い色の上には明るい文字という原則を守りましょう。
また、テーブルの枠線も重要です。明るいモードでは黒い枠線でも問題ありませんが、暗いモードでは目立ちすぎるかもしれません。少し薄いグレーや、背景に馴染む色を選ぶのがコツです。プログラミングやデザインの世界では、こうした細かい気配りが「読みやすさ」を左右します。最初は難しいと感じるかもしれませんが、様々なサイトを見て、「どういう色使いなら読みやすいか」を考える習慣を身につけることが、一番の近道です。ぜひ、自分のサイトで試行錯誤を楽しんでください。
7. デザインを統一する工夫
最後に、サイト全体のデザインを保つためのポイントです。ダークモードとライトモードで色のバランスが崩れると、別のサイトのように見えてしまうことがあります。これを避けるためには、色の変数を共通のファイルに保存しておくことが大切です。また、テーブルだけでなく、ボタンや見出しも同様に変数で管理すれば、全体が一貫性のある洗練されたデザインになります。
<style>
:root {
--main-border: 1px solid #ccc;
}
.dark-mode {
--main-border: 1px solid #444;
}
.my-table {
border: var(--main-border);
}
</style>
<table class="my-table">
<tr><td>一貫したデザインの表</td></tr>
</table>
ブラウザ表示
このように、細かい境界線の色まで変数で管理できるようになると、デザインの自由度は格段に上がります。初心者の方も、最初は少しずつで良いので、色を「変数」という箱に入れる癖をつけてみてください。これだけで、あなたの書くCSSの品質は、プロレベルに大きく近づきます。ウェブ制作の楽しさを、ぜひその手で体験してみてください。
【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー
「魅せる力」をコードで実現。CSS3でモダンWebデザインのプロトタイピングを。
本講座では、単に色を変えるだけではなく、「ユーザーを迷わせないUIデザイン」と「崩れないレイアウト設計」の本質を学びます。最新のCSS3とモダンなレイアウト手法を通じて、プロの現場で通用する「美しさと機能性を両立した実装力」を最短距離で習得します。
具体的なワークショップ内容と環境
【つくるもの】
HTMLで作成した骨組みに対し、商用サイトでも採用される「スタイリッシュなカード型UI」や「レスポンシブなナビゲーション」を構築します。色の選定基準や余白(ホワイトスペース)の黄金比など、デザインの理論をコードに落とし込む工程を体験してください。
【開発環境】
フロントエンド開発の標準であるVisual Studio Code (VS Code)を継続使用。CSSの記述を効率化するプラグインや、ブラウザのデベロッパーツール(検証機能)を駆使して、リアルタイムでデザインを微調整するプロのワークフローを再現します。
この60分で得られる3つの技術資産
要素の横並びや中央揃えを自由自在に操り、どんなデバイスでも崩れないレスポンシブな配置術を完全理解します。
後から修正しやすい「壊れにくいコード」の書き方を伝授。プロの現場で必須となる命名規則の考え方を学びます。
画像の最適化や軽量な装飾技法など、ページの表示速度を落とさずに高級感のある演出を行うテクニックを習得します。
※本講座は、HTMLの基礎を終えた後のステップアップ講座です。Webデザイナー、UIデザイナー、フロントエンドエンジニアへの道を切り開く「魅せる技術」を、モクモク独自のパーソナル指導で着実に定着させます。
リラックスしながら、学ぶことが大切です。しっかりと基礎を理解しましょう!
各回少人数・マンツーマン形式で徹底サポート
このセミナーの詳細・お申し込みはこちら