CSSを使ってサイトをダークモードに対応させる方法

CSSを使ってサイトをダークモードに対応させる方法

CSSを使ってサイトをダークモードに対応させる方法

OS側の設定がダークモードになっている時に、サイトに適用するスタイルを変更する方法をご紹介いたします。

OSの設定がダークモードになっている場合は背景色と文字色を反転する等、ダークモードを判定してスタイルを変更することが可能です。

ダークモードに設定する方法

最初に、WindowsとMacでダークモードを設定する方法を紹介したいと思います。

Windows10の場合

Windows10でダークモードを設定する場合、まずはスタートメニューから設定画面を開きます。

スタートメニューから設定を開く

設定の中から[個人用設定]を開きます。

個人用設定

左側のメニューから[色]を選択し、「規定のアプリモードを選択します」で[黒]にチェックを入れましょう。

規定のアプリモードを選択します

これでブラウザなどのアプリがダークモードで開かれるようになります。

Macの場合

Macの場合は、システム環境設定で[一般]を開いて、「外観モード」で[ダーク]を選択します。

Apple公式のサポートページがあったので、詳しくは以下ページをご参照ください。

Mac でダークモードを使う方法

CSSを使ってサイトをダークモードに対応させる方法

さて、ここから本題です。

CSSでダークモードになっている場合にスタイルを変更するには、prefers-color-schemeを使います。

具体的には、以下のように指定します。「@media (prefers-color-scheme: dark) {}」で囲われた部分に、ダークモード用のスタイルを記述するだけです。

@media (prefers-color-scheme: dark) {
  body {
    background: #222;
    color: #efefef;
  }
  h1 {
    color: #fdc4ac;
  }
  img {
    filter: grayscale(50%);
  }
}

上記の例では、背景色や文字色だけでなく、画像にもgrayscaleを加えて彩度を抑えています。

こういった調整をサイト全体に施していくので、結構地道な作業ですね。カスタムプロパティSassの変数を活用すればだいぶ楽になるかと思います。

逆に「@media (prefers-color-scheme: light) {}」にすれば、ライトモード用のスタイルを適用できます。

@media (prefers-color-scheme: light) {
  body {
    background: #fff;
    color: #000;
  }
}

ライトモードの時に開いた表示がこちら↓

ライトモードで開いた時

ダークモードに設定して開くと、以下のようになります。

ダークモードで開いた時

なお、残念ながら、prefers-color-schemeはIEには未対応です。ダークモード用のスタイルを指定していても、IEでは表示は切り替わりません。

prefers-color-schemeの対応状況

あとがき

IEには対応していませんがそれ以外の主要ブラウザは対応していますので、IEに対応する必要がない場合は、CSSのみでダークモード用のスタイルを実装できますね。

今や色んなアプリがダークモードを実装しています。私もダークモード派で、色んなアプリをダークモードやダークテーマで利用しています。

OS側でダークモードに設定されていても、Webサイト側が対応していなければ表示はそのままです。白背景のサイトだと明るいままになってしまいます。

Webサイトもダークモードに対応し、全体的に暗い表示に切り替えてあげることで、よりUI/UXの向上に繋がりそうですね。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です