theme-changer
Version:
The best theme changer ever
37 lines (36 loc) • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isDark = function () { return localStorage.getItem('theme') === 'dark'; };
exports.isLight = function () { return localStorage.getItem('theme') === 'light'; };
exports.loadTheme = function (colors) {
if (exports.isDark()) {
exports.setTheme(colors.dark);
}
else if (exports.isLight()) {
exports.setTheme(colors.light);
}
else if (matchMedia('(prefers-color-scheme:dark)').matches) {
exports.setTheme(colors.dark);
localStorage.setItem('theme', 'dark');
}
else {
exports.setTheme(colors.light);
localStorage.setItem('theme', 'light');
}
};
exports.setTheme = function (color) {
var root = document.querySelector(':root');
Object.keys(color).map(function (key) {
root.style.setProperty(key, color[key]);
});
};
exports.toggleTheme = function (colors) {
if (exports.isDark()) {
localStorage.setItem('theme', 'light');
return exports.setTheme(colors.light);
}
if (exports.isLight()) {
localStorage.setItem('theme', 'dark');
return exports.setTheme(colors.dark);
}
};