38 lines
807 B
JavaScript
38 lines
807 B
JavaScript
/*!
|
|
* Minimal theme switcher
|
|
*
|
|
* Pico.css - https://picocss.com
|
|
* Copyright 2020 - Licensed under MIT
|
|
*/
|
|
|
|
const themeSwitcher = {
|
|
// Config
|
|
buttonsTarget: "a[data-theme-switcher]",
|
|
buttonAttribute: "data-theme-switcher",
|
|
rootAttribute: "data-theme",
|
|
|
|
// Init
|
|
init() {
|
|
document.querySelectorAll(this.buttonsTarget).forEach(
|
|
function (button) {
|
|
button.addEventListener(
|
|
"click",
|
|
function (event) {
|
|
event.preventDefault();
|
|
document
|
|
.querySelector("html")
|
|
.setAttribute(
|
|
this.rootAttribute,
|
|
event.target.getAttribute(this.buttonAttribute)
|
|
);
|
|
}.bind(this),
|
|
false
|
|
);
|
|
}.bind(this)
|
|
);
|
|
},
|
|
};
|
|
|
|
// Init
|
|
themeSwitcher.init();
|