CSSカスタムプロパティでテーマ切替を簡単実装|ライト&ダーク対応の方法
スポンサーリンク

こんにちは!静岡県浜松市でWEBデザイナーをしています小瀧です。

最近のWebサイトでは、「ダークモード」「ライトモード」といったテーマ切替が標準機能になりつつあります。

ユーザーの環境や好みに応じて色を変えられると、視認性・アクセシビリティの向上やブランドイメージの統一に直結するため、導入メリットは大きいです。

しかし、テーマ切替を従来のCSSで実装しようとすると、複数の色指定をすべて書き換える必要があり、保守性が低いという問題がありました。

そこで注目したいのが CSSカスタムプロパティ(変数) です。

変数化したカラーを使えば、一箇所書き換えるだけでテーマ全体の色が切り替わるため、メンテナンスコストを大幅に削減できます。

今回は、CSSカスタムプロパティを使ったテーマ切替の基本と実装例を、ライトモード/ダークモードのサンプルを交えて解説します。

CSSカスタムプロパティとは?

CSS変数とも呼ばれ、--変数名 という形式で定義し、var(--変数名) で参照します。

 :root {
    --main-bg: #ffffff;
    --main-text: #333333;
  }
  body {
    background: var(--main-bg);
    color: var(--main-text);
  }

この方法なら、テーマカラーを変数として一元管理できるため、複数箇所に同じ色を適用しても変更が容易になります。

テーマ切替の基本構造

  1. デフォルトテーマ(ライト)を :root に定義
  2. ダークテーマ用の変数を .dark-theme クラスで上書き
  3. JavaScriptでクラスを切り替えてテーマ変更

実装例:ライト/ダークテーマ切替

See the Pen
Untitled
by 小瀧賢 (@ekwwawpb-the-styleful)
on CodePen.

ユーザーのOS設定を反映する

CSSだけで、ユーザーのOSがダークモードかどうかを判定可能です。

@media (prefers-color-scheme: dark) {
    :root {
      --bg-color: #121212;
      --text-color: #ffffff;
      --card-bg: #1e1e1e;
    }
  }

これで、最初にページを開いたときにOS設定に合わせてテーマが適用されます。

実運用のポイント

  • CSS変数でカラーや影・ボーダーも一元管理すると保守性向上
  • テーマ切替後のトランジションで自然なUXを実現
  • ユーザー選択をlocalStorageに保存して再訪時も適用可能
  • OS設定(prefers-color-scheme)を初期値に反映するとより自然

まとめ

CSSカスタムプロパティでテーマ切替
・変数管理で一括変更できるため保守性が高い
・ライト/ダーク両対応が容易
・OS設定とも連動可能でUX向上

 

satokotadesignキャンペーン実施中!

浜松市の飲食店限定|ホームページ無料作成サービス
ぶっちゃけ無料相談会!ホームページ制作の悩み話してみませんか?
satokotadesign4周年記念キャンペーン

静岡県浜松市でホームページ制作ならsatokotadesign
静岡県浜松市でホームページ制作ならsatokotadesign

スポンサーリンク
おすすめの記事