feat(tour): everyone takes the tour once, and tries the layouts in it

The tour now floats over the page it describes and must be finished
before the app can be used: new readers straight after setup, returning
readers on their next visit, and anyone who saw the earlier tour. The
page behind stays visible and scrollable but inert.

"Pick a layout" (on the Checklist) and the Timeline step switch Relaxed /
Structured and New / Classic in place; the selected look is kept.
Returning readers start on Relaxed. A replay from Settings stays
optional and closable.

redesignTourSeen now records new / returning / replay / 2026-10-tour-2;
any other value means not yet taken.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Lucas WintherandClaude Opus 5.5 committed 2026-10-18 04:45:02 +02:00
1 parent 0abca649fa
commit d8ce442cff
11 files changed
+836 -541

No files matched your search

+7
View File
@@ -816,6 +816,13 @@ Prefs add interface (structured/default or relaxed), density (standard/default o
soon or timeline; utility navigation is transient. Future/unreadable records remain exportable even
when this build cannot offer editing controls.
`prefs.redesignTourSeen` (2026-10-18) records where the reader is with the tour. Its values are
`"2026-10-tour-2"` (done), `"new"` or `"returning"` (the tour is forced; the value picks the opening
line), and `"replay"` (optional). Any other value, including the earlier tour's `"2026-10-redesign"`,
means the reader has not taken this tour: the app moves them to `interface: "relaxed"` and stores
`"returning"`. A later tour version changes the done value, so every reader takes it once more. See
`tourMode` in `ReturningTour.tsx`.
The fidelity correction adds `prefs.routineGroup` (`reset`, the absent-value default, or `game`)
for the Routines page's grouping. It changes no routine IDs or placement keys. Structured is the
+14 -3
View File
@@ -631,6 +631,17 @@ legend on the same baseline as "Next: …".
(interface, theme, scheme, urgency colours, default view, game order, timeline design, focus bar,
checklist group), Your own events and games, Backup (tiers plus a manual "Your backups" list), and
per-game Setup / Codes / About.
- **Returning-user tour.** Routines → Checklist → Timeline → Redeem codes → Archive → Settings.
Continue stays in a fixed place, Back sits beside it, and Skip is apart. "Replay the introduction"
starts it at step 1.
- **The tour (2026-10-18, owner).** Every reader takes it once before using the app: new readers
straight after setup, returning readers on their first visit, and readers who saw the earlier tour
once more. Routines → Checklist → Pick a layout → Timeline → Redeem codes → Archive → Settings.
- It floats over the page it describes. While forced, the page behind is `inert` under a light
scrim. It can be scrolled and seen, but not clicked. There is no Skip, and a reload restarts at
step 1.
- "Pick a layout" (on the Checklist) and the Timeline step each hold a two-way switch, Relaxed /
Structured and New / Classic. The switch changes the page behind in place, and the selected one
is kept. Readers are shown the difference rather than told about it, because most never open
Appearance.
- Returning readers are moved to Relaxed as the tour opens. New readers keep the look they chose in
setup.
- Continue stays in a fixed place and Back sits beside it. Only a replay ("Replay the
introduction" in Appearance) has a way out, "Close tour", with no scrim.
+1 -1
View File
@@ -103,7 +103,7 @@ for (const variant of ["structured", "relaxed"])
let s = JSON.parse(
localStorage.getItem("gacha-tracker:v2:reader"),
);
s.prefs.redesignTourSeen = "2026-10-redesign";
s.prefs.redesignTourSeen = "2026-10-tour-2";
s.prefs.interface = variant;
s.prefs.theme = theme;
s.prefs.changelogSeen = "9999-12-31";
@@ -938,3 +938,15 @@ redesign commit.
page. See docs/SOURCES.md § Redeem codes for eight more games.
- **Owner's TODO:** let readers try Relaxed/Structured and the new/classic Timeline live, including
returning readers who've done the tour.
## Round: the forced tour and trying the looks (2026-10-18)
The owner asked for every reader, new and returning, to be put through the tour before they can use
the app, and for returning readers to start on Relaxed. "Pick a layout" (Checklist) and the Timeline
step switch the page behind in place, and the selected look is kept. See `docs/DESIGN.md` → "The tour"
and `docs/DATA-MODEL.md` for the `redesignTourSeen` values.
Schema review: no data-loss or stuck-state path. Accepted, by the owner's rule: a returning reader who
had picked Structured on purpose is moved to Relaxed once, and the previous value isn't kept. The tour's
layout step puts it back in one click. Left as is (low): a stale second tab can re-force the tour
once, and a save-error banner shown during a forced tour can be read but not clicked.