<button class="btn-toggle">Переключатель тёмной темы</button>
<h1>Привет! Это просто заголовок</h1>
<p>Я просто скучный текст, существующий исключительно ради данной демонстрации.</p>
<p>А я ещё один текст, похожий на тот что выше, потому что два лучше, чем один.</p>
<a href="#">Я ссылка, не нажимайте на меня!</a>
body {
--text-color: #222;
--bkg-color: #fff;
}
body.dark-theme {
--text-color: #eee;
--bkg-color: #121212;
}
* {
font-family: Arial, Helvetica, sans-serif;
}
body {
background: var(--bkg-color);
}
h1,
p {
color: var(--text-color);
}
// Выбираем кнопку
const btn = document.querySelector(".btn-toggle");
// Выбираем настройки темы из localStorage
const currentTheme = localStorage.getItem("theme");
// Если текущая тема в localStorage равна "dark"…
if (currentTheme == "dark") {
// …тогда мы используем класс .dark-theme
document.body.classList.add("dark-theme");
}
// Отслеживаем щелчок по кнопке
btn.addEventListener("click", function () {
// Переключаем класс .dark-theme при каждом щелчке
document.body.classList.toggle("dark-theme");
// Допустим, тема светлая
let theme = "light";
// Если <body> содержит класс .dark-theme…
if (document.body.classList.contains("dark-theme")) {
// …тогда делаем тему тёмной
theme = "dark";
}
// После чего сохраняем выбор в localStorage
localStorage.setItem("theme", theme);
});
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.