website

Portfolio website
git clone https://willem.vanzwol.com/git/website/repo.bundle
Log | Files | Refs | README | LICENSE

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