Этот компонент умеет менять тему в зависимости от установленной темы на вашем устройстве.
Корректно работает на MacOS & Windows. А также на всех мобильных устройствах.
var demo = document.getElementById("demo"); if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { demo.classList.add('dark'); } window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => { const newColorScheme = event.matches ? "dark" : "light"; if (newColorScheme === "dark") { demo.classList.add('dark'); demo.classList.remove('light'); } else { demo.classList.add('light'); demo.classList.remove('dark'); } });
.demo { width: 100%; height: 400px; font-size: 30px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 100px; height: 100vh; } p{ text-align: center; } .demo.dark{ background: black; color: white; } .demo.light{ background: white; color: black; }