Rebuild /whatsthat onto SPEC-wtc-rebuild.md: container-first hero, Tokyo-11 tokens - #446
Merged
Conversation
WilfordGrimley
force-pushed
the
wtc-rebuild-tokyo11
branch
from
July 24, 2026 17:54
d853c11 to
af292e3
Compare
…tokens Full visual/layout rewrite of the What's That Card? question feed per SPEC-wtc-rebuild.md: one @container-driven hero (no viewport breakpoints), the page-private --wtc-* identity tokens derived from the (in-flight) Tokyo-11 theme layer, and the three owner rulings (BurstSvg retired, session counter kept, WD3 phone compaction accepted). The Level 1/2/3 interaction contract, auto-tag-chip casting, no-re-presentation, and every data-testid the existing suites key off of are preserved verbatim. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…med tests Every ack retires a test guarding a mechanism the rebuild deliberately deletes (sticky/bounded-height pinning, BurstSvg/HoverBurst, the gold/navy button treatment, the whatsthat-mark.svg glyph, the sliced-word pop animation) or covers a describe-block rename with the assertions kept. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Preserves the binding design artifact permanently in-repo (mirrors the proposal-h mockups/ convention) instead of leaving it only in an ephemeral job tmp dir the code's own comments cite. Records the owner's rulings on the spec's three open questions as an in-file amendment. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
WilfordGrimley
force-pushed
the
wtc-rebuild-tokyo11
branch
from
July 24, 2026 18:08
89b5a55 to
4df048e
Compare
This was referenced Aug 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Full visual/layout rebuild of
/whatsthat(What's That Card?) perSPEC-wtc-rebuild.md, implementing the owner's three rulings on thatspec's open questions:
--wtc-reveal-glowfield glowreplaces the starburst animation entirely; the reveal reads through the
mystery-card flip only (
cardPanel.tsx:BurstSvg/HoverBurst/useStarburstFramedeleted).as the only reward surface (volume-rewarding, direction-neutral — no
streak/score/confetti), incrementing on every real vote cast.
132px-wide horizontal layout below the hero's own 560px
@containerfold point; the open-ended shape (d) expands (dashed "tricky one"
framing) rather than compacting further.
Spec sections → implementation
whatsthat.tsx'sWtcTokenScope— page-scoped--body/--conf/--raised/.../--dangerbridged from the (in-flight) Tokyo-11--bs-*/--theme-*runtime vars, with literal Tokyo-11-value fallbacks so the page renders correctly today AND picks up the real tokens automatically once that branch merges (see "Train sequencing" below)WtcTokenScopeblock + the five--wtc-*identity tokens (--wtc-field/--wtc-mystery-face/--wtc-mystery-glyph/--wtc-reveal-glow/--wtc-wordmark), allcolor-mix()-derived from--accent/--body/--conf— zero invented literalsQuestionFeed.tsx's new styled primitives (WtcHead/WtcHero/Subject/QPanel/ShapePill/Btn/ActionGrid/SuggestedCard/CandidateGrid/NegWrap/OpenWrap/TriStateChip/etc) — every value copied verbatim from the tableQuestionFeedItem.type, visually distinguished per WD7 (shapepill variant + frame colour)@container-driven hero (WtcHero,container-type: inline-size);HeroGrid's 768px breakpoint,MobileButtonRow/MobileCandidateScroller/MobileChipRow, andLevel2NarrowGridall deleted — replaced by flex-wrap +clamp()+auto-fill/auto-fitgrids. The one permitted viewport media query (.wtc-headcolumn-reorder below 520px) is structural onlyAttributeChipPanel/ArtistVotePicker/QueueTagQuestion/NoMatchReasonStripunforked,CandidateGridis the one new shared layout primitivequestion_feed.py's serve-mix ordering is a backend concern; this PR only renders what's servedidentify_printingitem has zero candidates — degrades gracefully with no new backend dependencyTrain sequencing (deviation, reasoned)
This branch is cut off current
master, which does not yet carry theTokyo-11 token layer (that branch,
tokyo-11-retheme, is in-flight andexpected to land before this PR per the orchestrator's train note).
Every inherited token in
WtcTokenScopeisvar(--runtime-name, <exact Tokyo-11 hex>)— once Tokyo-11 merges, the real:rootcustomproperties take over automatically with zero code change here. Measured
live (see Verification):
--bs-primary/--bs-success/--bs-body-coloralready exist pre-merge (Superhero's own values), so 3 colour tokens
render with Superhero's palette today and will self-correct to the exact
Tokyo-11 spec values the moment that branch merges — not a defect, a
sequencing artifact. All 5 genuinely-new
--theme-*tokens (accent,raised-bg, divider, muted, btn-ink, radii) already fall back to my
literal Tokyo-11 values correctly, since nothing else defines them yet.
Other deviations (reasoned)
whatsthat-mark.svggold-gradientmascot asset can't be retinted onto
--wtc-mystery-glyph(its fill isbaked into the SVG file) — replaced with a plain, token-coloured
?text glyph (
data-testid="mystery-card-glyph").WhatsThatWords.tsxdrops the sliced-SVG animatedpop-in sequence entirely (ANNEX C's animation inventory doesn't list
it) in favour of a plain, static, single-tree
<h1>— also retires theWideWordmark/NarrowWordmarkviewport fork per the container-firstpolicy.
whatsthat.tsx'sVisuallyHiddenHeadingis retired alongsideit (this
<h1>is now the page's one real, visible heading).CardPulseWrapper/wtcCardPulse(synced to the now-retired wordmark pop) removed — not in ANNEX C's animation inventory.
added (the mockup shows one, but no backend search-printings endpoint
exists — API surface unchanged per the task's own critical constraint).
The existing Level 2 candidate-grid/"None of these"/Skip flow renders
inside the dashed "tricky one" framing instead.
ChipCard.tsxgains an additive, optionalvariantprop(
"accent" | "danger", default unchanged) soNoMatchReasonStrip'sreason chips can carry the WTC quick-negative danger frame without
touching
ReportCardPanel.tsx's own unrelated use of the component.QueueTagQuestion.tsx/ArtistVotePicker.tsx: left untouched perspec §4 ("no structural change; inherit tokens") — their Bootstrap
Buttonvariants pick up Tokyo-11 automatically once that theme lands,no page-specific work needed.
Self-verification (measured, not by inspection)
Computed-style delta vs the spec's binding token table, extracted at
1400px and 390px via
getComputedStyle()on 8 representative elements(wordmark, solved pill, subject card, shapepill, btn-primary, btn-secondary,
btn-ghost, suggested card) covering colour + sizing:
font-size/padding/border-radius/min-heightvalue matches the spec exactly at bothwidths (wordmark
clamp(26px,4.4cqi,44px)measured 26px@390 / 44px@1400exactly;
.btnbase 44px/15px/600/6px 16px;.btn.big17px/800/10px 20px; solved pill5px 12px/12px/--r-pill; all radii6px/8px/10pxexact).sequencing gap (see above) —
--primary/--success/--textrenderSuperhero's pre-existing values instead of the Tokyo-11 spec hex, since
--bs-primary/--bs-success/--bs-body-colorare already emitted bythe current theme and my fallback never activates for those three. All
5 new
--theme-*-derived tokens (--accent,--wtc-*identity colours,--btn-ink,--divider,--raised,--muted) match the spec exactly,confirmed live (e.g. wordmark
color: rgb(187,154,247)=#bb9af7exactly).
Screenshots — all 8 question shapes × {1400px, 390px} captured against
this build and visually diffed against
wtc-mockup.html(subject cardcompaction, danger-red quick-negative frame, dashed open-ended frame,
Level 3 follow-up chips all match). Screenshots themselves are not
committed (build artifacts, available on request); the binding spec +
mockup HTML they were diffed against is now permanently in-repo at
docs/proposals/mockups/wtc-rebuild/(landed via #441, concurrentlywith this PR — rebased on top; this PR adds an AMENDMENTS block to that
spec recording the three owner rulings above).
Checklist
pre-commitand installed the hooks withpre-commit installbefore creating any commits.QuestionFeed.test.tsx(jest, 14/14 passing),QuestionFeedResponsive.spec.ts(substantially rewritten: kept/adapted still-true invariants, dropped 10 tests guarding now-retired mechanisms with inline justification, added new coverage for container folding at 390/768/1400, shape-b→d fallback, WD3 compaction, and the session counter),WhatsThatWordsAnimation.spec.ts(re-purposed for the retired wordmark animation → ANNEX C reduced-motion coverage),WhatsThatPWA.spec.ts(theme-color assertion updated). All 65 jest suites (573 tests) and the full affected Playwright surface (55 tests acrossQuestionFeed.spec.ts/QuestionFeedResponsive.spec.ts/WhatsThatWordsAnimation.spec.ts/WhatsThatPWA.spec.ts/NoMatchReasonStrip.spec.ts/ModerationTab.spec.ts/ModerationQueue.spec.ts) pass at 4 workers.next build(compiles clean) and drove the rebuilt page through a local dev server via Playwright across all 8 question shapes at 1400px and 390px, screenshotting each againstwtc-mockup.html.tsc --noEmitclean,prettier --checkclean,eslintclean (only pre-existingno-img-elementwarning class, present elsewhere in the codebase too).docs/features/printing-tags.md's "Frontend architecture" section updated in place with a SUPERSEDED note (this doc's own established convention) pointing to the new spec and summarizing what changed; the detailed pre-rebuild "quiz-reveal hero"/starburst/gold-button narrative is kept for history.docs/proposals/mockups/wtc-rebuild/SPEC-wtc-rebuild.md(landed via Commit 4 BINDING design specs into docs/proposals/mockups/ for durability #441) gains an AMENDMENTS block recording the three owner rulings.Wiki:
/whatsthatis user-facing and was rebuilt — the wiki'sWhat's That Card? page needs a screenshot/description refresh to match
the new Tokyo-11 look before merge (not done in this PR — flagging per
the wiki-maintenance convention).