2019/10/10
Webサイトをダークモードに対応させるには?専用のメディア特性の使い方
みなさんは、「ダークモード」をご存知でしょうか?
ダークモードは黒を基調とした配色なので、暗い場所でiPhoneの画面を見るときに目の負担を軽減する効果やバッテリーの消費も抑えられることができます。
最近ではTwiiterやInstagramなどもダークモードに対応をしています。iOS13の新機能でも実装され、より生活の中でも身近になってきました。
そんなダークモードをWebサイトに対応させる方法を解説していきます。
CSSでWebサイトをダークモードに対応させる方法
ダークモードへの対応はとっても簡単です。prefers-color-scheme というメディア特性を使って、その中にダークモード時に適用したいCSSを書きましょう。
@media (prefers-color-scheme: dark) { body { background-color: #000; color: #fff; } }
こちらの方法が一番導入が簡単ではありますが、この中にCSSの記述を書いていくとなると長くなってしまいますね。
そんな時は、下記のようなプラグインを使用するのも一つの手です!
Darkmode.jsを使おう
Darkmode.jsを使えば、さらに手軽にダークモードを実装できます。
Webサイトに導入する際は、以下のコードをHTMLに追加しましょう。
※CDNによる実装方法です。
<script src="https://cdn.jsdelivr.net/npm/darkmode-js@1.4.0/lib/darkmode-js.min.js"></script> <script> new Darkmode().showWidget(); </script>
実装デモでは、右下にあるボタンをクリックしてみるとダークモードにパチっと切り替わります。
切り替えがされる中で、このボタンの配色は変えたくないな~と思うものも出てきますよね。
そんなときは色を変えたくないHTMLの要素に「darkmode-ignore」クラスを加えましょう。その部分はダークモードが適用されなくなります。
<a class="darkmode-ignore" href="#">Button</a>
切り替えボタンの調整はオプションから可能です。好みのカスタマイズをJavaScriptに記述しましょう。
デフォルトのカラーだとシックなので、Webサイトのカラーイメージに合わせて適宜変えてみましょう。
var options = { bottom: '20px', // default: '32px' right: '20px', // default: '32px' left: 'unset', // default: 'unset' time: '0.5s', // default: '0.3s' mixColor: '#fff', // default: '#fff' backgroundColor: '#fff', // default: '#fff' buttonColorDark: '#100f2c', // default: '#100f2c' buttonColorLight: '#fff', // default: '#fff' saveInCookies: false, // default: true, label: '<img draggable="false" class="emoji" alt="🌓" src="https://s.w.org/images/core/emoji/11.2.0/svg/1f313.svg">', // default: '' autoMatchOsTheme: true // default: true } const darkmode = new Darkmode(options); darkmode.showWidget();
まとめ
Webサイトの閲覧が夜に集中している場合など、どういった場面でダークモードを実装すべきかも考えて、今後のサイト制作に役立てていきたいですね。
コーディング業務のご依頼、ご相談の詳細についてはこちらから
最後までお読みいただき、ありがとうございました。
よろしければシェアしていただければ幸いです。
次の記事へ | 前の記事へ |
WEB業界ならqam!qam(カム)はWEB業界で働く人や興味がある人に役立つ情報サイトです。
マーケティングやデザイン、マークアップ(コーディング)、プログラム、トレンドなどの情報をqamライター陣が執筆。噛めば噛むほど(読めば読むほど)制作・開発や運営・運用、業界知識やノウハウを学ぶことができます。