35 lines
1.2 KiB
JavaScript
35 lines
1.2 KiB
JavaScript
|
function activateDarkMode() {
|
||
|
console.log("activated dark mode");
|
||
|
document.body.classList.add('inverted');
|
||
|
}
|
||
|
|
||
|
function activateLightMode() {
|
||
|
console.log("activated ligth mode");
|
||
|
document.body.classList.remove('inverted');
|
||
|
}
|
||
|
|
||
|
function setColorScheme() {
|
||
|
const isDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches
|
||
|
const isLightMode = window.matchMedia("(prefers-color-scheme: light)").matches
|
||
|
const isNotSpecified = window.matchMedia("(prefers-color-scheme: no-preference)").matches
|
||
|
const hasNoSupport = !isDarkMode && !isLightMode && !isNotSpecified;
|
||
|
|
||
|
window.matchMedia("(prefers-color-scheme: dark)").addListener(e => e.matches && activateDarkMode())
|
||
|
window.matchMedia("(prefers-color-scheme: light)").addListener(e => e.matches && activateLightMode())
|
||
|
|
||
|
if(isDarkMode) activateDarkMode()
|
||
|
if(isLightMode) activateLightMode()
|
||
|
if(isNotSpecified || hasNoSupport) {
|
||
|
console.log('You specified no preference for a color scheme or your browser does not support it. I Schedule dark mode during night time.')
|
||
|
now = new Date();
|
||
|
hour = now.getHours();
|
||
|
if (hour < 4 || hour >= 16) {
|
||
|
activateDarkMode();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
document.addEventListener('DOMContentLoaded', function(event) {
|
||
|
setColorScheme();
|
||
|
})
|