19 lines
706 B
JavaScript
19 lines
706 B
JavaScript
(() => {
|
|
'use strict';
|
|
const getStoredTheme = () => localStorage.getItem('theme');
|
|
const getPreferredTheme = () => {
|
|
const storedTheme = getStoredTheme();
|
|
if (storedTheme) {
|
|
return storedTheme;
|
|
}
|
|
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
|
};
|
|
const setTheme = theme => {
|
|
if (theme === 'auto') {
|
|
document.documentElement.setAttribute('data-bs-theme', (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'));
|
|
} else {
|
|
document.documentElement.setAttribute('data-bs-theme', theme);
|
|
}
|
|
};
|
|
setTheme(getPreferredTheme());
|
|
})();
|