EPIC, charted
+Every song is a star on the voyage home. Every recurring theme is a constellation.
+diff --git a/src/mockups/06-constellation/index.html b/src/mockups/06-constellation/index.html index dd7638d..544a236 100644 --- a/src/mockups/06-constellation/index.html +++ b/src/mockups/06-constellation/index.html @@ -3,12 +3,30 @@
+Every song is a star on the voyage home. Every recurring theme is a constellation.
+stub
`; +const credits = mountCredits(); +const $ =${esc(sel.description)}
+Heard in ${songsWithMotif(sel.id).length} songs:
+Choose a constellation to trace a theme through the voyage. Brighter stars carry more themes.
`} + `; +} + +legend.addEventListener("click", (e) => { + const t = (e.target as HTMLElement).closestScroll or drag to travelArrow keys hop star to starClick a star to open its song
`; + updateCursor(scene?.progress ?? stars[0]!.dist); +} + +function updateCursor(p: number) { + const cur = document.getElementById("ruler-cursor"); + if (!cur) return; + const len = pathLength(stars); + const first = stars[0]!.dist - 10; + cur.style.left = `${Math.max(0, Math.min(100, ((p + 4 - first) / (len - 6 - first)) * 100))}%`; +} + +// keyboard focus on a ruler star shows the same hover label as the pointer does +ruler.addEventListener("focusin", (e) => { + const b = (e.target as HTMLElement).closest${esc(l)}
`).join("")}Star ${song.track} of ${stars.length}, in ${esc(saga.name)}
+${esc(f)}
`).join("")} +Your browser didn’t give this page WebGL, which the flight through the constellation needs. Turn on hardware acceleration in your browser settings, or open the page in another browser.
+Meanwhile, here is the same chart as a flat star catalogue. Every song and theme still works.
+