feat: the redesigned Event Clock

The new reader app replaces the old UI: Checklist with a rail (focus
pills, Next to expire, today's dailies, pinned routines), Timeline in a
new and a classic look, Routines, Archive and a Settings area, in a
Structured (default) and a Relaxed interface. It follows the approved
Round 6 B and Round 7 mockups, corrected screen by screen with the owner.

Reader data moves to a v2 store (gacha-tracker:v2:*). Existing v1 data
is migrated on first load, a recovery copy is written first, and the v1
keys are never removed, so a rollback finds them unchanged. Redeem codes
for Genshin arrive as their own feed.

Also: live's urgency ramp, editable per theme; completion and
section-complete fireworks; a returning-user tour; the design mockups,
specs, plans, reviews and handoff record.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Lucas WintherandClaude Opus 5.5 committed 2026-10-18 01:55:16 +02:00
1 parent ddd9673f86
commit 50c6e91b00
284 files changed
+45100 -1628

No files matched your search

+5 -1
View File
@@ -49,6 +49,10 @@
var prefs = JSON.parse(
localStorage.getItem("gacha-tracker:v1:prefs") || "{}",
);
var reader = JSON.parse(localStorage.getItem("gacha-tracker:v2:reader") || "null");
if (reader && reader.version === 2 && reader.prefs) prefs = reader.prefs;
document.documentElement.dataset.interface = prefs.interface === "relaxed" ? "relaxed" : "structured";
document.documentElement.dataset.density = prefs.density === "compact" ? "compact" : "standard";
var light =
prefs.theme === "light" ||
(prefs.theme === "system" &&
@@ -83,7 +87,7 @@
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@500;600;700&family=Public+Sans:ital,wght@0,400;0,500;0,600;1,400&display=swap"
href="https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600;700&amp;family=Barlow+Condensed:wght@500;600;700&amp;family=Bricolage+Grotesque:wght@500;600;700&amp;family=Figtree:wght@400;500;600;700&amp;family=Chakra+Petch:wght@500;600;700&family=Public+Sans:ital,wght@0,400;0,500;0,600;1,400&display=swap"
rel="stylesheet"
/>
<link rel="manifest" href="manifest.webmanifest" />