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:
@@ -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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user