diff options
Diffstat (limited to 'code/frontpage/assets/js/darkmode.js')
| -rw-r--r-- | code/frontpage/assets/js/darkmode.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/code/frontpage/assets/js/darkmode.js b/code/frontpage/assets/js/darkmode.js new file mode 100644 index 0000000..e81db47 --- /dev/null +++ b/code/frontpage/assets/js/darkmode.js @@ -0,0 +1,38 @@ +const mode = document.getElementById('mode'); + +if (mode !== null) { + + window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => { + + if (event.matches) { + + localStorage.setItem('theme', 'dark'); + document.documentElement.setAttribute('data-dark-mode', ''); + + } else { + + localStorage.setItem('theme', 'light'); + document.documentElement.removeAttribute('data-dark-mode'); + + } + + }) + + mode.addEventListener('click', () => { + + document.documentElement.toggleAttribute('data-dark-mode'); + localStorage.setItem('theme', document.documentElement.hasAttribute('data-dark-mode') ? 'dark' : 'light'); + + }); + + if (localStorage.getItem('theme') === 'dark') { + + document.documentElement.setAttribute('data-dark-mode', ''); + + } else { + + document.documentElement.removeAttribute('data-dark-mode'); + + } + +} |
