tenzies
- built with
- react 19, vite 8, tailwindcss 4, motion 13, three.js r186
the first version. the first version was a react exercise: ten flat dice in a white card, tap to hold, roll until they match, confetti when they do. the rules were good, so the rebuild keeps every one of them and changes everything around them.
the tray. it's a dice tray now. petrol felt edge to edge, casino red dice with ivory pips, and held dice that turn ivory with ink pips, which is how the first version showed a held die too. each die is a rounded cube in three.js, lit by one light and drawn on one webgl canvas over ten real buttons, so taps, keys and screen readers still work.
held for good. once you roll, held dice stay held, and a held die that doesn't match ends the game. so the line under the dice keeps count, warns you before a roll you'd lose, and the button turns into roll anyway. roll anyway and the odd one gets a red ring.
around it. around it there's a clock that starts on your first move, your best, your last ten games, sounds, space and 1 to 0 on the keyboard, and a game that's still there when you come back. it fits every screen from a 320px phone up without scrolling, and nothing on it moves while you play.