utwordSystem v3.25.7
Patterns

Celebration

Rare wins get a moment, built from the board's own parts: a podium of tile states, a crown that means one thing, and confetti made of tiles. Never during a round.

stableSince 3.20

When it happens

Most moments in Outword are small. Celebration is kept for the rare positive ones, and the size of every moment is set by the moment map.

The moment map

CommonRare
PositiveSmall and quick. Scoring a word, copying a code. The copy icon turns into a check; "Saved". Don't get in the wayCelebrate. Winning the month, getting your account back. The podium and the crown, the update reel, welcome back. Confetti lives here only
NegativePlain and fast. A wrong code, waiting. The slots turn --danger, with no shake and no novelty to fill the gapEmpathy over decoration. A lost account, a forgotten phone. A fresh phone asks "Played before?", and the words do the work

The month's winner

  • On the 1st, last month's final standings open as a sheet for everyone, once: the first time the app lands on Home that day, and only if last month had a scorer. ow_podium_YYYY-MM marks it seen, and it takes that visit's one ask.
  • For the rest of the 1st, a "Today" card sits at the top of Compete: a tiny podium with the crown, who won, and who closed out the podium. Tapping it reopens the sheet. It's gone at midnight.
  • All month, the winner wears the crown on their rank circle, until the next 1st.

Where confetti lives

The 3.22 release notes name four places. In the code at 3.23.6:

PlaceFires whenFromLetters
The podium sheetthe crown lands on the 1st columnthe top of that columnthe winner's name, plus up to two crowns
The daily longest leaderboardyou were the first to find the longest word possible; it fires as the board opens after your roundthe "longest possible" pillyour name; no crowns
The daily trivia summaryyou solved the most todaythe top of the summaryyour name; no crowns
The update reel (3.22)the trivia chapter's solvethe green pillyour name
Welcome backlisted in the 3.22 notesnone: the code shows a card, not confetti

The two daily bursts are removed after 7s; the podium's 9s after the crown lands.

Composition

Every part is a piece the board already owns: the three tile states, the trace line and the brand's flared crown. No new hue.

The crown

PartSpec
GlyphviewBox 24×20; body 1.8,6 7.4,11.2 12,4.6 16.6,11.2 22.2,6 19.6,17 4.4,17; finials r 1.6, 1.9 and 1.6; fill and stroke --fg, stroke 1.2, round joins
Placementon a 28px rank circle: 21px wide (75% of the circle), hung off the top left at -8 and -10, tilted -14° from its bottom centre
Cutthe same shape behind it at stroke 5.6, in the surface colour: --raise-solid by default, --ground on the podium and the Today card
Wherethe season leaderboard row, with "September winner" under the name; your own circle in Home's leaderboard row, if you won; the podium's 1st column (44px); the Today card (18px)
Neveras decoration, as an icon for first place this month, or during a round
Dark
Light
The crown on last month's winner the crown hangs off the rank circle and its cut separates it from the row; the current leader has none

The podium

PartSpec
Columns72 wide, radius 12, 10 apart, in the order 2, 1, 3; heights 150, 104 and 66; numerals in the display face at 24. 1st is solid (--tile), 2nd traced (--select with a 2px --select-stroke), 3rd lit (--lit with a 1.5px --select-stroke)
Platesunder each column: the name, then the points; the viewer's plate reads "You · 4,210"
Build3rd, then 2nd, then 1st, starting at 380, 820 and 1260ms; each grows over 640ms on cubic-bezier(.3,1.25,.55,1); each plate fades up 280ms after its column
Crowndrops onto the 1st column at 1900ms, over 440ms on cubic-bezier(.5,0,.75,0), accelerating
Impactthe 1st column dips to scaleY(.95) and back; the confetti fires from its top; the rows below fade up 110ms later, 50ms apart
Pacethe whole build runs at ×0.62 for anyone who wasn't on the podium, or didn't play
Closethe X and the scrim. There's no action button
Dark
Light
The podium, built three tile states stand in for gold, silver and bronze; the viewer is the winner here

Who sees what

Everyone gets the same podium and the same confetti. What changes is the title, which plate says "You", and the rows under the podium.

ViewerTitleUnder the titleRows under the podium
The winner"You won September"your points, and "October starts at zero for everyone."4th and 5th
2nd or 3rd"Second in September" or "Third in September"your points and your gap to the winner4th and 5th
4th and below"Zuhayr won September""Final standings · N players"4th, a gap, then the player above you, you (outlined) and the player below
Didn't play"Zuhayr won September"the same4th and 5th, with no row of your own

Confetti

PartSpec
Count36 pieces. Every third is a ribbon; the podium adds up to two crowns; the rest are tiles, traced tiles and letter tiles spelling a name
Depththree layers, painted far to near: far (34% of pieces) at ×0.55–0.7, blur 1.6px, 50% opacity; mid (44%) at ×0.95–1.15, blur 0.3px, 85%; near (22%) at ×1.45–1.8, crisp
Arcone continuous move: a rise of 1.5–1.9s that slows to a stop, then a fall from rest. Each piece starts up to 340ms late, so the burst pours rather than pops
Lifesway of ±22px and ±7° over 3.4 or 4.2s; tiles flip slowly, brightening to 1.18 facing you and dimming to 0.5 edge-on; ribbons draw themselves out over 1.5s
Pieces.cf-tile 12px in --tile; .cf-ring 12px, the selected tile (--select, 1.5px --select-stroke); .cf-let 20px, a board tile scaled down (22% corners, a 500-weight letter at 10.5px); ribbons are the trace stroke at 62%
Colourthe tile, selected-tile and trace tokens, and --fg for the crowns: nothing else, so light mode needs nothing of its own. Never --earned
Layerfixed above the sheet at z 61, so pieces fly out over the scrim; taps pass through
Dark
Light
Every piece is a board part shown flat and at rest; in flight they flip, sway and blur by depth

The Today card

Dark
Light
The Today card, for the rest of the 1st a tiny podium in the same three states, with the crown on the middle column

Flow

The podium, on the 1st:

  1. Home loads and the sheet opens on its own, titled for the viewer.
  2. The columns grow 3rd, 2nd, 1st, each plate fading up behind its column.
  3. At 1900ms the crown drops onto the 1st column. On impact the column dips, the confetti fires from its top, and the rows below fade up.
  4. The X or the scrim closes it. The Today card stays on Home until midnight, and the crown stays on the winner's circle all month.

A daily win: the round ends first. Daily trivia shows its summary, and if you solved the most, "You solved the most" rises in green and the confetti fires 250ms later. On the daily longest, if you were first to the longest word possible, the leaderboard opens and the confetti fires from the "longest possible" pill.

States

StateWhat the player sees
Reduced motionthe sheet opens on its final frame, podium built and crown on, with no confetti. The daily bursts don't fire
Fewer than 3 players last monthonly the columns that exist
Nobody scored last monthnothing opens; that month is cached as empty
Closedthe Today card: "Today", "Zuhayr won September", and "Maya and Ru close out the podium" (or "Maya came second"); "You won September" if it's you
The rest of the monththe crown on the winner's circle; "September winner" under their name on the leaderboard

Why it's built this way

Known issues and gaps

  • Welcome back has no confetti. The 3.22 notes list it as one of the four places confetti lives, and the moment map puts it with the podium and the reel. The code shows a card ("Welcome back, NAME") that enters over 320ms and leaves after 7s.
  • The podium breaks two motion rules. The rules written in 3.21 say rise is a 700–820ms slide out of a mask, ban scaleY on anything with text, a radius or a border, and allow only transform and opacity to animate. The code grows each column by animating height over 640ms and dips the 1st column with scaleY(.95). The spec's §12 timings match the code.
  • The fall runs longer than the spec says. The code's fall is 4.3–7.4s (6.2, 5.2 or 4.3s by layer, plus up to 1.2s); the spec gives 4.3–6.2s, and the motion rules say confetti clears in 4–6s.
  • The crown doesn't scale with the circle. On Home's 40px leaderboard circle it keeps the 28px circle's size and offsets (21px at -8 and -10); the reference page says it scales with the circle. The spec's "--ground on the home banner" refers to the banner Home had before 3.22, which no longer renders; the Home row uses the default --raise-solid.
  • "Never on Home" needs a reading. §16 says confetti is never on Home, while the podium sheet that fires it (§12) opens over Home.

Changelog

VersionChange
3.23.3Confetti letter tiles are board tiles scaled down (22% corners, a 500-weight letter at about 52% of the tile); outlined pieces use the selected-tile tokens
3.23.2The trivia summary says "You solved the most", with the podium confetti
3.23Daily trivia's confetti moves to the end of the run, for whoever solved the most
3.22Confetti for unlocking the daily longest first, fired off the "longest possible" pill as the board opens; the first trivia solver gets it too, built from their name tiles
3.21The motion vocabulary and rules, including "confetti is earned and clears itself", and a reduced-motion design for every move
3.20The monthly podium on the 1st, the crown all month, and confetti made of tiles. New token --raise-solid