diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e2ecc8..8cd3db9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and ### Changed +- Source Vault phone menu: one link is always lit with the gradient, like the site's menu. At the top of the page that's PROMPTS, the first section. - Source Vault phone menu: it now opens exactly like the site's menu: full screen with the slat wipe, the SYS::OPEN chip, big outlined poster links with numbered captions (the section you're on fills with the gradient), and the split buttons at the bottom. - Source Vault menu: the links now follow the page, top to bottom: Prompts, Harmonic Map, Tracks, Credits (desktop nav and the phone menu). - Source Vault gate: the ACCESS REQUIRED card is much smaller (270 px: tag, one-line title, and the key field with a → button) and has no box, just four viewfinder corner ticks with the rain fading to dark behind it. The site's digital rain now runs behind it, streaming only public words (track titles and stem types) until the key is in. diff --git a/src/vault/main.js b/src/vault/main.js index a2a43d0..49e1d2b 100644 --- a/src/vault/main.js +++ b/src/vault/main.js @@ -449,7 +449,7 @@ function startNav() { }), ); $$("[data-lock]").forEach((b) => (b.onclick = () => $("#lockBtn").click())); - // scroll spy: the active link is the last section whose top has passed under the menu (none while the header is in view) + // scroll spy: the active link is the last section whose top has passed under the menu (on the desktop bar, none while the header is in view) const spy = () => { const line = parseInt(getComputedStyle(document.documentElement).getPropertyValue("--navh")) + 120; let cur = null; @@ -461,8 +461,9 @@ function startNav() { }); if (document.getElementById("vfoot").getBoundingClientRect().top < innerHeight * 0.5) cur = "vfoot"; $$("[data-nav]").forEach((a) => { - const on = a.dataset.nav === cur, - desk = a.classList.contains("e8-link"); + const desk = a.classList.contains("e8-link"), + // the phone menu always lights one link, like the site's: PROMPTS while the header is in view + on = a.dataset.nav === (desk ? cur : cur || "prompts"); a.classList.toggle("active", on && desk); a.classList.toggle("on", on && !desk); on && desk ? a.setAttribute("aria-current", "location") : a.removeAttribute("aria-current");