Braegn commited on
Commit
20049c0
·
verified ·
1 Parent(s): 54b201f

Delete script.js

Browse files
Files changed (1) hide show
  1. script.js +0 -83
script.js DELETED
@@ -1,83 +0,0 @@
1
- (() => {
2
- "use strict";
3
-
4
- const root = document.documentElement;
5
- const body = document.body;
6
- const header = document.querySelector(".site-header");
7
- const menuToggle = document.getElementById("menuToggle");
8
- const themeToggle = document.getElementById("themeToggle");
9
- const year = document.getElementById("year");
10
-
11
- // Theme ---------------------------------------------------------
12
- const storedTheme = localStorage.getItem("braegn-theme");
13
- const preferredDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
14
- const initialTheme = storedTheme || (preferredDark ? "dark" : "light");
15
-
16
- function applyTheme(theme) {
17
- if (theme === "dark") {
18
- root.setAttribute("data-theme", "dark");
19
- themeToggle?.setAttribute("aria-pressed", "true");
20
- if (themeToggle) themeToggle.querySelector(".theme-icon").textContent = "☼";
21
- } else {
22
- root.removeAttribute("data-theme");
23
- themeToggle?.setAttribute("aria-pressed", "false");
24
- if (themeToggle) themeToggle.querySelector(".theme-icon").textContent = "◐";
25
- }
26
- }
27
-
28
- applyTheme(initialTheme);
29
-
30
- themeToggle?.addEventListener("click", () => {
31
- const next = root.getAttribute("data-theme") === "dark" ? "light" : "dark";
32
- localStorage.setItem("braegn-theme", next);
33
- applyTheme(next);
34
- });
35
-
36
- // Mobile navigation ---------------------------------------------
37
- menuToggle?.addEventListener("click", () => {
38
- const open = header.classList.toggle("menu-open");
39
- body.classList.toggle("menu-open", open);
40
- menuToggle.setAttribute("aria-expanded", String(open));
41
- menuToggle.textContent = open ? "×" : "☰";
42
- });
43
-
44
- document.querySelectorAll(".nav a").forEach((link) => {
45
- link.addEventListener("click", () => {
46
- header.classList.remove("menu-open");
47
- body.classList.remove("menu-open");
48
- menuToggle?.setAttribute("aria-expanded", "false");
49
- if (menuToggle) menuToggle.textContent = "☰";
50
- });
51
- });
52
-
53
- // Reveal-on-scroll ----------------------------------------------
54
- const revealItems = document.querySelectorAll(".reveal");
55
-
56
- if ("IntersectionObserver" in window) {
57
- const observer = new IntersectionObserver((entries, obs) => {
58
- entries.forEach((entry) => {
59
- if (!entry.isIntersecting) return;
60
- entry.target.classList.add("is-visible");
61
- obs.unobserve(entry.target);
62
- });
63
- }, { threshold: 0.12, rootMargin: "0px 0px -35px 0px" });
64
-
65
- revealItems.forEach((item) => observer.observe(item));
66
- } else {
67
- revealItems.forEach((item) => item.classList.add("is-visible"));
68
- }
69
-
70
- // Dynamic year ---------------------------------------------------
71
- if (year) year.textContent = new Date().getFullYear();
72
-
73
- // Respect reduced-motion preferences ---------------------------
74
- if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
75
- document.querySelectorAll(".reveal").forEach((item) => {
76
- item.classList.add("is-visible");
77
- item.style.transition = "none";
78
- });
79
- document.querySelectorAll(".orbit").forEach((item) => {
80
- item.style.animation = "none";
81
- });
82
- }
83
- })();