@egstad/detect-theme
Version:
A micro ES6 module (~0.5KB) for detecting a users preferred-color-scheme and watching for changes.
25 lines (22 loc) • 686 B
JavaScript
import theme from '../index.js'
const currentTheme = document.querySelector('#currentTheme')
const root = document.documentElement
// detect updates
window.addEventListener('colorSchemeUpdated', (e) => {
switch (e.detail.theme) {
case 'dark':
currentTheme.innerHTML = 'dark'
root.style.setProperty('--background', 'black');
root.style.setProperty('--foreground', 'white');
break;
case 'light':
currentTheme.innerHTML = 'light'
root.style.setProperty('--background', 'white');
root.style.setProperty('--foreground', 'black');
break;
default:
currentTheme.innerHTML = 'no-preference'
break;
}
})
theme.watch()