|
7 | 7 | </div> |
8 | 8 | <div class="navbar-menu"> |
9 | 9 | <div class="navbar-end"> |
| 10 | + <div class="buttons are-small has-addons mr-4"> |
| 11 | + <button class="button is-selected is-success" data-theme-system><span class="theme-icon">☺</span></button> |
| 12 | + <button class="button" data-theme-light><span class="theme-icon">☀</span></button> |
| 13 | + <button class="button" data-theme-dark><span class="theme-icon">☾</span></button> |
| 14 | + </div> |
10 | 15 | </div> |
11 | 16 | </div> |
12 | 17 | </nav> |
13 | 18 | </div> |
| 19 | +<script type="text/javascript"> |
| 20 | +//<![CDATA[ |
| 21 | +const dt_system = document.querySelector("[data-theme-system]"); |
| 22 | +const dt_light = document.querySelector("[data-theme-light]"); |
| 23 | +const dt_dark = document.querySelector("[data-theme-dark]"); |
| 24 | +const dt_on = "button is-selected is-success"; |
| 25 | +const dt_off = "button"; |
| 26 | +const dt_theme = localStorage.getItem("theme"); |
| 27 | +dt_system.setAttribute("class", dt_theme === null ? dt_on : dt_off); |
| 28 | +dt_light.setAttribute("class", dt_theme === "light" ? dt_on : dt_off); |
| 29 | +dt_dark.setAttribute("class", dt_theme === "dark" ? dt_on : dt_off); |
| 30 | +document.querySelector("html").setAttribute("data-theme", dt_theme); |
| 31 | +dt_system.addEventListener("click", () => { |
| 32 | + document.querySelector("html").setAttribute("data-theme", null); |
| 33 | + dt_system.setAttribute("class", dt_on); |
| 34 | + dt_light.setAttribute("class", dt_off); |
| 35 | + dt_dark.setAttribute("class", dt_off); |
| 36 | + localStorage.setItem("theme", null); |
| 37 | +}); |
| 38 | +dt_light.addEventListener("click", () => { |
| 39 | + document.querySelector("html").setAttribute("data-theme", "light"); |
| 40 | + dt_system.setAttribute("class", dt_off); |
| 41 | + dt_light.setAttribute("class", dt_on); |
| 42 | + dt_dark.setAttribute("class", dt_off); |
| 43 | + localStorage.setItem("theme", "light"); |
| 44 | +}); |
| 45 | +dt_dark.addEventListener("click", () => { |
| 46 | + document.querySelector("html").setAttribute("data-theme", "dark"); |
| 47 | + dt_system.setAttribute("class", dt_off); |
| 48 | + dt_light.setAttribute("class", dt_off); |
| 49 | + dt_dark.setAttribute("class", dt_on); |
| 50 | + localStorage.setItem("theme", "dark"); |
| 51 | +}); |
| 52 | +//]]> |
| 53 | +</script> |
14 | 54 | ++++ |
0 commit comments