UNPKG

theme-changer

Version:

The best theme changer ever

37 lines (36 loc) 1.2 kB
"use strict"; 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); } };