utwordSystem v3.25.7
Decisions

The question card

Questions vary in length, so the question sits centred in a card as tall as the run's longest question, and the board never moves.

D-004 · 3.23.6 · 2026-10-12

Context

Trivia questions run 1 to 4 lines on a phone. Each new question changed the height of everything above the board, so the board, the answer slot and the buttons jumped after every answer or skip. A player who had scrolled a little to put the board under their thumb lost their place every time. iOS Safari has no scroll anchoring to hide it.

Options

VersionApproachResult
3.23.3No reserved spaceBoard jumps up to 71px per question (measured)
3.23.4Reserve the run's longest question; question at the topBoard still; an odd gap under short questions
3.23.5, previewSame space; question at the bottom, on the answerBoard still; the gap moved under the timer and read the same
consideredNo reserved space; the header slides up for long questionsNo gap, but the timer moves; rejected
3.23.6The space becomes a card; label and question centredBoard still; equal space above and below; chosen

Decision

Every question in the run is laid out, hidden, in the card's one grid cell, so the browser sizes the card to the longest one at the player's own width and font size. The visible label and question sit centred in it. The card uses the existing card treatment: --raise fill, 1px --rule, radius 14.

Evidence

Board movement over 14 skips, with scroll anchoring off as on iOS Safari:

WidthBefore (3.23.3)After (3.23.6)
32071px0px
37547px0px
39024px0px
43052px0px

Card height constant within a run; space above and below the question equal to the pixel. Approved on a phone by the owner before it shipped.

Consequences

  • New rules: the play surface never moves, and spare space is padding, not a gap.
  • The card adds about 20px, so on a 390×844 phone the page scrolls slightly.
  • The longest question sets the card, so long clues cost every question space. New clues are capped at 80 characters; 20 existing ones run over.