dev(theme): Try theme switcher

This commit is contained in:
Hactarus 2023-03-14 00:48:31 +01:00
parent 04f10627a9
commit 9d197e1363

21
assets/js/theme.js Normal file
View file

@ -0,0 +1,21 @@
// https://web.dev/building-a-theme-switch-component/
const storageKey = 'theme-preference'
const getColorPreference = () => {
if (localStorage.getItem(storageKey))
return localStorage.getItem(storageKey)
else
return window.matchMedia('(prefers-color-scheme: dark)').matches
? 'dark'
: 'light'
}
const setPreference = () => {
localStorage.setItem(storageKey, theme.value)
reflectPreference()
}
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', ({matches:isDark}) => {
theme.value = isDark ? 'dark' : 'light'
setPreference()
})