<body>
<div class="content">
<h1 id="text">ライトモード</h1>
</div>
</body>
@charset "UTF-8";
/* 変数 */
:root {
--text: #444444;
--back: #FFFFFF;
--change: 0.5s ease-in-out;
}
/* ダークモードの場合 */
:root.darkmode {
--text: #EBEBEB;
--back: #231802;
}
/* 基本設定 */
body {
font-family: sans-serif;
background: var(--back);
color: var(--text);
transition: var(--change);
height: 100vh;
margin: 0;
}
/* コンテンツ */
.content {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
height: 100%;
}
.content #text {
margin-bottom: 20px;
}
.darkmode .content {
transition: var(--change);
}
// テキストの切り替え
let osDark = window.matchMedia("(prefers-color-scheme: dark)");
let text = document.getElementById("text");
// ダークモードがオンのときに実行する処理
function darkModeOn() {
document.documentElement.classList.add("darkmode");
text.innerText = "ダークモード";
}
// ダークモードがオフのときに実行する処理
function darkModeOff() {
document.documentElement.classList.remove("darkmode");
text.innerText = "ライトモード";
}
// ロード時の状況に応じて切り替え
if (osDark.matches) { // OSでダークモードがオンの場合
darkModeOn();
}
// osの設定が変更されたら実行する
osDark.addListener(function () {
if (osDark.matches) { // ダークモードをオンにした場合
darkModeOn();
} else { // ダークモードをオフにした場合
darkModeOff();
}
})
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.