Webブラウザのスクロールバーをダークモードのカラーに変更するコードを紹介します。
概要
こちらの記事ではシンプルなダークモードの切り替えコードを紹介しました。
紹介したコードでダークモードに切り替えられますが、スクロールバーのカラーは明るい色のままです。
この記事では、スクロールバーのカラーもダークモードに変更するコードを紹介します。
動作確認
以下のコードを準備します。
body {
background-color: #FFFFFF;
color: #000000;
}
@media (prefers-color-scheme: dark) {
body {
background-color: #000000;
color: #FFFFFF;
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link rel="stylesheet" href="ScrollbarDarkColor.css" />
</head>
<body>
<h2>テストページです</h2>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
</body>
</html>
HTMLファイルをWebブラウザで開きます。Webブラウザのカラーがライトカラーのモード場合は下図の表示になります。
Webブラウザのカラーがダークカラーのモードの場合は下図の表示になります。ページはダークカラーで表示されていますが、
ウィンドウの右側のスクロールバーは明るい色で表示されています。
対処法
CSSの
:root
疑似クラスに
color-scheme: dark;
を指定するとスクロールバーもダークモードの表示に切り替わります。
コード
CSSのコードを下記に変更します。
body {
background-color: #FFFFFF;
color: #000000;
}
@media (prefers-color-scheme: dark) {
:root {
color-scheme: dark;
}
body {
background-color: #000000;
color: #FFFFFF;
}
}
解説
メディアクエリでダークモードの場合
@media (prefers-color-scheme: dark)
に以下のコードを追記します。
:root {
color-scheme: dark;
}
実行結果
HTMLファイルをWebブラウザで開きます。Webブラウザのカラーがライトカラーのモード場合は下図の表示になります。ライトモードの場合は変化はありません。
Webブラウザのカラーがダークカラーのモードの場合は下図の表示になります。スクロールバーの色がダークカラーに変わることが確認できます。
スクロールバーのカラーもダークモードに対応できました。
補足
color-scheme: dark;
を指定した場合、スクロールバーのカラー以外に、サブミットボタンのデフォルト色や
ファイル選択コントロールのボタンカラーも変化します。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link rel="stylesheet" href="ScrollbarDarkColor.css" />
</head>
<body>
<h2>テストページです</h2>
<form method="post" enctype="multipart/form-data" action="">
<input name="File01" type="file" /><br />
<input type="submit" value="POST" />
</form>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
<p>コンテンツです。</p>
</body>
</html>
color-scheme: dark; が無い場合
color-scheme: dark; を記述した場合
このページのキーワード
- Web ダークモード スクロールバー
- ダークモード スクロールバー
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。
最終更新日: 2021-09-12
作成日: 2021-09-11