docs(welcome): entry button is 'Launch Simulator' (new welcome.launch key)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
BenStullsBets
2026-06-30 10:48:43 -07:00
parent 05328b1b5e
commit b9de6695a0
@@ -9,8 +9,8 @@
Replace the current bare boot flow with a single **Welcome screen**: the
universal entry gate the visitor sees on every load. It carries the
photosensitivity "Heads up" notice, the four output controls (Video, Reduce
motion, Audio, Language) with welcome-appropriate defaults, a **Continue**
button, and the "Loading Universe" progress. The right control panel is hidden
motion, Audio, Language) with welcome-appropriate defaults, a **Launch
Simulator** button, and the "Loading Universe" progress. The right control panel is hidden
until the visitor enters the simulation.
## Why
@@ -55,20 +55,21 @@ The overlay contains three blocks:
control rather than "the panel"). Structured so additional welcome copy can be
added later (see Forward notes).
2. **Controls** — the four output controls (below).
3. **Loading** — the "Loading Universe" title + progress bar.
3. **Launch Simulator** — the single entry button.
4. **Loading** — the "Loading Universe" title + progress bar.
### 2. Two visual states
**State A — Welcome (on load):** welcome messaging + controls + Continue button
shown; the Loading block sits at the **bottom**, its bar filling as phase-1
preload runs in the background.
**State A — Welcome (on load):** welcome messaging + controls + "Launch
Simulator" button shown; the Loading block sits at the **bottom**, its bar
filling as phase-1 preload runs in the background.
**State B — Loading (after Continue, only if not yet loaded):** the welcome
messaging and Continue button **disappear**; the **controls remain**; the Loading
**State B — Loading (after Launch, only if not yet loaded):** the welcome
messaging and Launch button **disappear**; the **controls remain**; the Loading
block moves to **center**. When phase-1 preload completes, auto-enter the
simulation.
**Continue when already loaded** → skip State B; enter the simulation directly.
**Launch when already loaded** → skip State B; enter the simulation directly.
State is driven by a class on `#welcome` (e.g. `.welcoming``.loading`), with
the "loaded yet?" decision made from a flag set when phase-1 preload resolves.
@@ -88,8 +89,8 @@ default.
### 4. Entry into the simulation
Continue is the user gesture that unlocks audio (the role `#run-sim` had). On
Continue → enter (either immediately when loaded, or at end of State B):
"Launch Simulator" is the user gesture that unlocks audio (the role `#run-sim`
had). On Launch → enter (either immediately when loaded, or at end of State B):
1. Copy the four welcome values into the existing panel inputs (`#visual`,
`#reduce-motion`, `#audio`, `#lang-select`).
@@ -108,7 +109,7 @@ are not a parallel system:
- **Language** routes through the global `setLanguage()`, which sets `activeLang`
and runs `applyUiStrings()` over **all** `[data-i18n]` elements — so the
heads-up copy, control labels, and Continue button re-render live, exactly like
heads-up copy, control labels, and Launch button re-render live, exactly like
the panel selector does today. The panel `#lang-select` value is synced to
`activeLang` on entry.
- **Reduce motion** sets the same `reduceMotion` variable + `RM_KEY` localStorage
@@ -123,15 +124,15 @@ are not a parallel system:
**retired**.
- Entry uses the **chosen** Audio level rather than always snapping to 2 (2 is the
default, not a forced value).
- `#run-sim` is removed; **Continue** is the single entry button.
- `#run-sim` is removed; **"Launch Simulator"** is the single entry button.
## i18n
New / changed `UI_STRINGS` keys in `simulator/static/i18n.js` (all four langs —
en/es/fr/ja, matching existing parity):
- A Continue button label (reuse `warn.continue` if suitable, or add
`welcome.continue`).
- A new `welcome.launch` key — **"Launch Simulator"** (the single entry button),
translated in all four languages.
- Reworded `warn.body` (point at the on-screen Reduce-motion control).
- Welcome-screen control labels reuse the existing `output.video`,
`output.audio`, `rm.label` keys (already translated). The language selector
@@ -156,10 +157,11 @@ tests. Plan to:
`#motion-warning` to the new `#welcome` flow.
- **Add** coverage for:
- Welcome defaults (Video on, Reduce motion off, Audio 2, English).
- Language switch re-renders welcome text (heads-up + labels + Continue) live.
- Continue **while loading** → State B (messaging gone, controls remain,
- Language switch re-renders welcome text (heads-up + labels + Launch button)
live.
- Launch **while loading** → State B (messaging gone, controls remain,
progress centered), then auto-enter when loaded.
- Continue **when already loaded** → straight into the simulation.
- Launch **when already loaded** → straight into the simulation.
- `.panel` hidden during welcome + loading; revealed on entry.
- Welcome control values carry into the panel inputs on entry.