Streamline mobile menus and refresh splash logo

This commit is contained in:
wuwi committed 2026-09-07 13:26:17 +02:00
1 parent a399e4929c
commit a09856f8c9
6 files changed
+569 -483

No files matched your search

+77
View File
@@ -4986,6 +4986,83 @@ shot simulations from the recording (20 seeds each, not a deterministic full-mat
return all six soft Champion winners; wide winners against earlier foes and surprise misses remain.
Phone balance still needs Oliver's next recording; no further numeric difficulty increase here.
## Session log: THE MENU HAS ONE FRONT DOOR (2026-09-07, LOCAL PREVIEW ONLY)
Oliver approved the portrait menu audit with two corrections: **Vs a Friend stands on its own**,
and **Other Games needs a prominent splash entrance**. Implemented locally for him to click through
before any deployment; no commit or push made in this pass.
- Splash keeps the direct league fixture and direct Gore start. Other Games and Vs a Friend are
substantial sibling buttons; World Board stays below. Gore's named court link opens its setup.
- Other Games contains only **The Climb, Training, Classic Tennis**, in two poster rows. No duplicate
cup/Gore, no Training/Casual categories, and Arcade is consistently named The Climb.
- Classic's difficulty is selected inside its setup. Training chooses the opponent BEFORE setup;
Serve Up always starts the selected match. The redundant cup setup is removed. First-time cup
identity entry resumes the cup instead of losing the destination in the game picker.
- Player appearance lives in the shared identity editor, accessible from profile or a compact setup
row. Save/Back returns to the caller; existing players see SAVE PLAYER. Swatches and menu back
buttons have 44px targets; the in-game exit retains its HUD art with a larger invisible hit area.
- Available courts show first; locked courts are disabled compact rows inside a native disclosure.
Picks persist immediately. Setup titles name the actual mode and training shows the chosen foe.
- Stats belongs to the profile and returns there. The profile retains career figures and a fold-out
league roster; duplicate lifetime totals live only in Stats. Playtest recording is a collapsed
native details block below the records; ON/FULL is visible in its summary when applicable.
- Play On is the primary action in the exit dialog. The world board correctly selects Cup after a
league match; Classic falls back to Gore, since there is no Classic leaderboard tab.
Validation: `node test.js` — **142 pass**. `tools/check-menu.js` is a local browser-tool regression
(no package, excluded from the served image with the existing tools directory): **34 checks pass**
covering fresh cup onboarding, real mode starts, difficulty/opponent identity, editor returns,
locked courts, profile/stats/recording, room cancellation, and 320×568 / 390×844 portrait geometry.
Manual screenshots reviewed for splash, additional modes, setups, profile, stats and player editor.
No gameplay tuning or court mode-transition code changed. **Await Oliver's local review; not deployed.**
## Session log: MENU PREVIEW POLISH (2026-09-07, LOCAL ONLY)
Oliver's next local review supersedes the collapsed defaults above: **all three disclosures open
by default** (locked courts, profile league, playtest recording), while remaining user-toggleable.
Other Games and Vs a Friend now have truly centred labels, without the offsetting chevrons.
Cup and Gore share a 76px button height and the same title/subtitle layout. Each button fades from
its existing solid colour on the left into its original mode poster on the right, using CSS only.
The menu card's old 370px content-width cap is removed: width 100% with border-box padding fills
both narrow phones and wider preview panes without horizontal overflow; viewport minimum height
and sticky footers are retained.
Validation: **39 browser checks pass**, including equal CTA heights, centred labels, open defaults,
and a full-width/full-height card at 768×1024, alongside the existing 320×568 and 390×844 flows.
Screenshots reviewed at both phone sizes. Still local; no commit, push or deployment.
Local visual follow-up (same day): Oliver prefers roughly **one third colour / two thirds art**.
The Cup/Gore gradient now reveals the poster sooner. Other Games uses the existing arcade poster,
Vs a Friend uses its original multiplayer poster, both with the same soft colour-to-art treatment
and centred, shadowed labels. Button dimensions and navigation are unchanged; still local only.
Local visual follow-up: a small blood drop grows at the Gore button's lower-right edge, falls
across the court link onto Vs a Friend, slowly traces down its face and drops off its bottom edge.
Two synchronized CSS pseudo-element animations repeat every 18 seconds after an initial 3-second
delay; the trail fades between drops. Their geometry shares the responsive friend-button height.
Decorative only (`pointer-events: none`), active only on a loaded splash, disabled for reduced
motion. No new assets, timers or gameplay changes. Browser checks cover alignment, synchronized
clocks, non-interception, reduced motion and stopping off-splash; still local, not deployed.
Local logo follow-up: Oliver approved integrating the generated logo proposal. The splash now
uses `assets/logo-v2.png`, a transparent PNG with brighter red lettering, lime Tennis lettering
and a larger ball in the blood underline. The original `assets/logo.png` is retained. Reviewed
at 320×568 and 390×844: clean transparency, correct loading and no horizontal overflow. Local only.
Logo colour correction: Oliver found the integrated version a little too bright. The splash
now tones it down with CSS `saturate(.78) brightness(.84)`, preserving the exact artwork and alpha.
After trying the proposed ball glow, Oliver decided to remove it entirely: **no tennis-ball glow
or pulse; blood is enough**. Only the small drop from the logo's blood underline remains, every
14 seconds (first after 4 seconds). It is a CSS decoration anchored to the responsive logo,
ignores pointer events, runs only on the loaded, visible splash and respects reduced motion.
The blood version passed all 42 menu browser checks before the glow was removed. Still local only.
Release approval (2026-09-07): Oliver approved this menu/logo revision for staging and production.
Release cache version: `main.js?v=353`. Pre-release validation: 142 game tests and all 42 mobile
menu browser checks pass. Deploy staging first, verify the served release, then promote the same
commit to production. Staging URL: `https://splatter-tennis-staging.wuwi.one`.
# OPEN — leftovers, in rough priority order
Nothing here is broken; these are known gaps and unverified risks.