script.js (838B)
1 // dark/light mode toggle logic 2 document.addEventListener("DOMContentLoaded", () => { 3 const root = document.documentElement; 4 const toggle = document.getElementById("theme-toggle"); 5 6 const saved = localStorage.getItem("theme"); 7 8 if (saved) { 9 root.classList.add(saved); 10 toggle.checked = saved === "dark"; 11 } 12 13 toggle.addEventListener("change", () => { 14 const mode = toggle.checked ? "dark" : "light"; 15 16 root.classList.remove("dark", "light"); 17 root.classList.add(mode); 18 19 localStorage.setItem("theme", mode); 20 }); 21 }); 22 23 // clipboard code blocks 24 document.addEventListener("click", async (e) => { 25 const pre = e.target.closest("pre"); 26 if (!pre) return; 27 28 await navigator.clipboard.writeText(pre.innerText); 29 30 pre.dataset.copied = "true"; 31 32 setTimeout(() => { 33 delete pre.dataset.copied; 34 }, 1200); 35 });