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();
 |