Skip to content

ScratchNode v5 mobile visual reset + integrate scratchnode-public-rooms → main#498

Closed
HomenShum wants to merge 94 commits into
mainfrom
claude/scratchnode-v5-mobile-reset
Closed

ScratchNode v5 mobile visual reset + integrate scratchnode-public-rooms → main#498
HomenShum wants to merge 94 commits into
mainfrom
claude/scratchnode-v5-mobile-reset

Conversation

@HomenShum
Copy link
Copy Markdown
Owner

What this integrates

Brings the codex/scratchnode-public-rooms line into main (92 commits / 56 files), headlined by the ScratchNode v5 mobile visual reset (top commit), plus the public-wiki → NodeBench link and the rest of the scratchnode public-rooms work already on this branch.

Headline change — v5 mobile visual reset (e0e96dc0)

Root cause of the "prototype-y, crowded" mobile feel was not "too many elements" — :root had no type-size tokens (every component hardcoded sizes, nothing ranked) and no accent/mono discipline (accent sprayed everywhere; mono on human prose). Plus a flex-gap bug split the "Scratch Node" wordmark.

  • Type scale added to :root (--fs-display/title/base/sub/label/mono); solid accent reserved for the one primary action (send). Mono reserved for machine IDs only (room code + /ask).
  • Wordmark fixed: .h-logo {flex; gap:6px} was splitting Scratch / <span>Node</span> into two flex items → wrapped → renders ScratchNode.
  • Event strip: removed · 0 FAQ; gated ●Event mode + L0 Manual capture (host/debug controls) to data-role="host"; de-mono'd.
  • De-duped: dropped the hero's joined-count (lives once in the strip); "Disposable event brain" → "Live event log · public wiki when it ends".
  • Composer: placeholder → "Message or /ask…" (fixes the clipped placeholder, which came from JS at the mode-driven default, not static markup); helpline 2 lines → 1; privacy shows "Public" / "Private 🔒" text instead of an ambiguous open-lock glyph.
  • Empty state: removed the giant "Ask the first question →" CTA (the composer is the CTA); "No messages yet" is the one 18px display element.
  • Keyboard-open fix: visualViewport--keyboard-offset pins the fixed composer above the keyboard; footer + welcome collapse while typing → no more footer leaking behind the keyboard.
  • Menu: "Continue in NodeBench" gated to named users; "Keyboard shortcuts" hidden on the mobile sheet.
  • Welcome onboarding banner quieted + hidden on mobile.

Presentational + copy only — send/render path, seenIds dedup, and data-sn-live are untouched. Desktop layout unchanged (composer stays sticky-top).

Verification (local, against the edited file)

  • 49/49 chromium e2e: scratchnode-live-route-honesty (46, incl. home-v5-output-contract) + scratchnode-public-wiki (3). Specs self-serve home-v5.html from disk with Convex mocked.
  • Static launch scan PASS (0 blockers, 0 warnings).
  • Before/after + keyboard-open + menu screenshots verified at 390px; desktop confirmed via computed styles.

Required CI (Typecheck / Runtime smoke / Build) gates this PR.

🤖 Generated with Claude Code

HShuM and others added 20 commits June 3, 2026 07:37
…scipline, cut first-viewport chrome

Root cause was not "too many elements": :root had no type-size tokens (every
component hardcoded sizes, so nothing ranked) and no accent/mono discipline
(accent sprayed on logo/code/CTA/links; mono on human prose, not just IDs).
Plus a flex-gap bug split the "ScratchNode" wordmark into "Scratch Node".

- :root: add --fs-display/title/base/sub/label/mono type scale; reserve
  solid accent for the single primary action
- header: fix wordmark flex-gap split; room code -> quiet muted mono chip;
  borderless menu icon
- event strip: drop "0 FAQ"; gate L0 capture + event-mode to data-role=host
  (host/debug controls that leaked to attendees); de-mono to --ui
- hero: drop duplicate joined count; "Disposable event brain" -> "Live event
  log - public wiki when it ends" (static + JS rewrite)
- welcome banner: quiet (no accent card) + hidden on mobile
- composer: placeholder -> "Message or /ask..." (fixes clipped placeholder,
  which came from JS not static markup); helpline 2 lines -> 1; privacy shows
  "Public" / "Private (lock)" text instead of an ambiguous open-lock glyph
- empty state: remove giant "Ask the first question" CTA (composer is the CTA);
  "No messages yet" is the one 18px display element; copy teaches all 3 actions
- keyboard: visualViewport --keyboard-offset pins the fixed composer above the
  keyboard; footer + welcome collapse while typing (data-input-focused) ->
  no more footer leaking behind the keyboard
- menu: gate "Continue in NodeBench" to named users (was visible to anonymous
  guests under the hidden "Your notes" header); hide "Keyboard shortcuts" on mobile

Presentational + copy only. Send/render path, seenIds dedup, and data-sn-live
are untouched. Desktop layout unchanged (composer stays sticky-top).

Verified: 49/49 chromium e2e (scratchnode-live-route-honesty 46 incl.
home-v5-output-contract, + scratchnode-public-wiki 3); static launch scan PASS
(0 blockers/warnings); before/after/keyboard/menu screenshots at 390px.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented Jun 3, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
nodebench-ai Ready Ready Preview, Comment Jun 3, 2026 7:54pm

Request Review

@HomenShum HomenShum enabled auto-merge (squash) June 3, 2026 19:40
HShuM added 2 commits June 3, 2026 12:51
…-mobile-reset

# Conflicts:
#	AGENT_COORDINATION.md
#	CHANGELOG/pages/proto-home-v5.md
@HomenShum
Copy link
Copy Markdown
Owner Author

Superseded by #499 — the v5 mobile reset is re-landed as a clean 1-commit PR cherry-picked onto current main (no scratchnode-line baggage, no wiki-CTA conflict). This branch had an unresolvable concurrent-edit collision with Codex's live wiki-CTA rewrite.

@HomenShum HomenShum closed this Jun 3, 2026
auto-merge was automatically disabled June 3, 2026 21:10

Pull request was closed

@HomenShum HomenShum deleted the claude/scratchnode-v5-mobile-reset branch June 3, 2026 22:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants