<label><input onchange="changeTheme(this.checked)" type="checkbox" /> Включить темную тему </label> <script>
function changeTheme(isChecked) {
if (isChecked) {
document.body.setAttribute('dark', '');
} else {
document.body.removeAttribute('dark');
}
}
</script>
<style type="text/css">:root {
--var-bgcolor: #fff;
--var-fontcolor: #000;
}
[dark] {
--var-bgcolor: #333;
--var-fontcolor: #eee;
}
body {
background-color: var(--var-bgcolor);
color: var(--var-fontcolor);
}
</style>
document.documentElement
.data-theme="dark"
localStorage
:localStorage.setItem('theme', isChecked ? 'dark' : 'light');
head
добавляйте скрипт, который применит атрибут:const theme = localStorage.getItem('theme');
if (mode === 'dark') {
document.documentElement.dataset.theme = 'dark';
}