questionFeed: WTC design repass rules 1/2/3/5/6 - uniform buttons, tap guard, landscape art frame, chip pruning, shared artist credit (#704) - #758
Merged
Conversation
…p guard, landscape art frame, chip pruning, shared artist credit (#704)
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.
Summary
Implements WTC design repass rules 1, 2, 3, 5, 6 (governing doc
docs/proposals/mockups/wtc-rebuild/DESIGN-REPASS-2026-08.md, epic #704) on the question-feed surface:.bigmodifier onBtn(used by the Level 3 confirm action) so every primary decision/action button in the answer rows shares identical sizing, padding, and typography metrics.touch-action: manipulationtoBtnandTriStateChip(opt out of the mobile double-tap-zoom gesture that swallows fast single taps). Add a synchronousvoteInFlightRefguard read at the top of every vote/advance handler and set at entry, closing the React-batch window that let a double-click cast a vote twice. Vote handlers release it in.finally; advance-only handlers (skip, Not sure) hold it until the next item lands via the fetch effect.SubjectArtImagerenders the artist-question subject slot (a harvested Scryfall illustration crop, landscape 584/444) atILLUSTRATION_CROP_ASPECT_RATIOinstead of the portrait card frame that cropped it;$landscape={item.type === "artist"}selects the ratio. Card scans keep the portraitCARD_ASPECT_RATIO.isChipContradicted(chip, chipStates)inattributeChips.tsmirrors the deeper grid logic: an untouched exclusion-group sibling whose group already carries a positive vote is contradicted.AttributeChipPaneltakespruneContradictedand drops those chips from the render (the positive stays; standalone chips are untouched);QuestionFeedwires it to the filter panel. A retracted positive restores the hidden siblings.ArtistCredit(the 220px cap that the illustration cluster credit always used) and apply it to the post-answer artist-support banner too, so theArtistSupportLinkapplet renders identically under both surfaces instead of one tidy line and one full-width button.Test plan
isChipContradictedgroup-consistency, standalone-untouched, retract-restores (attributeChips.test.ts)npx jestfull suite: 664/664 tests pass across 70 suites; 3 suites fail on a pre-existing module-resolution error inkeyrune.ts(missing generated codepoints JSON) — verified identical on the base commit viagit stashnpx tsc --noEmit: no errors in touched files (4 pre-existing errors inkeyrune.ts/ReportCardPanel.test.tsx, present on base)no-img-elementwarnings)