design-system
Four pixels on the first letter
The Daily word input jumped four pixels when its first letter appeared because one nested row had no height before it held a letter cell.
Thirty-three components in isolation
Adopting a zero-mock Storybook catalog for reusable Svelte components, defining the two-importer scope boundary, and enforcing story coverage in CI.
Three boxes, one shape
A request to declutter the keyboard's panel, the game log's panel, and the board's heavy border turned out to be three separate questions with three separate answers, not one visual fix applied three times.
A deliberate departure from the mockup
Redesigning PvP invitations and Settings meant deciding, up front, where the request diverged from the just-locked design-system mockup rather than treating the gap as an oversight.
Rematching with the same opponent in real-time PvP
Starting another match against the same opponent previously required sharing a new room link. Token-chained authorization and a six-state UI matrix bring instant same-opponent rematches.
Leaderboard chips learn to explain themselves on tap
Native title tooltips were invisible on touch devices. Extracting LeaderboardChip brings tap-to-open DetailTooltip popups and scroll dismiss across all leaderboard tabs.
Seven phases under one umbrella
A complete visual redesign across 18 catalogued surfaces, guided by a token migration plan, oklch contrast math, and a seven-phase base branch umbrella.
Everything looked urgent
Separating primary action from danger, fixing fruit contrast, and making pill controls describe what they actually do.
Four tabs, one question at a time
Restructuring the stats page around mode, scope, and language, with prototypes and typed review catching what the first implementation missed.
The image that repaints itself
The daily share image gets real fruit icons, an OG-ratio canvas, and a gold rank line that fills in the moment a leaderboard submission lands.