CaTarot
A one-screen web tarot game where mystic cats read your design life — gently or with a roast.
Let’s shuffle
1 screen, 78 cards
- Writing — 78 cards, each with 2 Soft and 2 Spicy readings: 312 lines per language, plus 20 “touch grass” endings
- Interaction — a draggable fan with inertia, in-place card flips and arrow-key controls
- Interface — 1 responsive screen for the art, card name, headline and reading, without scrolling inside the card
- Engineering — React 19, TypeScript, Vite and Tailwind
Soft and Spicy were written separately
Soft and Spicy are written separately, not run through a filter. Every card carries its own headline and 2 readings for each tone — Soft points at what to do next, while Spicy names what the dashboard is hiding. That makes 312 lines per language.
3 blockers, 3 fixes
This was automated QA, not user testing. Playwright covers all 78 cards in both tones and languages, including text fit, keyboard access, language settings and visual regressions.
- 01
BeforeA 3.5-second reveal video
AfterReduced-motion mode reveals the card instantly
WhyThe reading matters more than the trailer, and the system preference should be respected without comment.
- 02
BeforeAn open card with no way out but Shuffle
After“Pick another card”, which keeps the spread
WhyThe escape hatch and the re-roll were the same control, so leaving a reading meant losing it.
- 03
BeforeAn unannounced “Toxic” mode and 7% easter egg
AfterSpicy, with both surprises explained up front
WhyThe surprise was funny in my head and alarming on screen. Both now say what they are before they say anything else.
The whole reading loop
Pick a tone, drag, draw, read, repeat
The reading became accessible
- 78 cards, 2 tones, 2 languages 312 readings per language plus 20 easter-egg endings, all about design work.
- The reading is reachable Keyboard users can reach the card, move focus into the reading and hear the full text as one sentence.
What I learned
- A model can produce a working screen in an evening. Everything that makes it usable by somebody who is not me was still the longer half of the project.
- Reviewing my own silly project with the eye I use on client work found the 3 things a stranger would have hit first.