Repository navigation
Releases: vojtech-krupicka/web-roll-the-dice
Release list
v1.0.1 — App icon
A small patch release: the app finally has a proper icon.
Added
- A d20-style gradient hexagon icon matching the home screen logo, used as the browser-tab favicon and as the touch icon for Android/iOS home-screen shortcuts. It replaces the default Next.js favicon.
Changed
- Documented the new development workflow:
mainis production, work happens ondevand lands via PR.
Full Changelog: v1.0.0...v1.0.1
v1.0.0 — Public launch
No functional changes since phase06 — this release retires the phaseNN branch/tag/version scheme in favor of semantic versioning (major.minor.patch), tagged directly on main from here on out. Marks the app's public launch, ahead of connecting it to Vercel.
Full Changelog: phase06...v1.0.0
Phase06 — Launch polish
A grab-bag of polish ahead of the app's public launch — the last release under the phaseNN scheme; from here on the project uses semantic versioning (starting with v1.0.0, once it's live on Vercel).
Added
- Help menu item covering games, hands, rolling, players, and 3D mode
- "Game options" menu item at the top of the settings menu, for quick access to rename/password/delete/leave
- About popup: current version, links to source and release notes, and a Buy Me a Coffee link
- MIT license, crediting @3d-dice/dice-box and Kenney's CC0 Casino Audio pack
Changed
- Bottom-bar Players/Hand buttons padded away from the center Roll button; Hand button's icon swapped for a hand icon
- "Next" pill renamed to "Next player"
Fixed
- Legend/Help/About and the confirm dialog occasionally rendering underneath other UI due to a CSS stacking-context bug
- The settings menu staying open after pressing Roll or the roll-history pill
Full Changelog: phase05...phase06
Phase 05 — 3D Physics Roll Mode (BETA)
A real physics-based dice roll, sitting alongside the existing 2D mode rather than replacing it.
Added
- 3D physics roll mode (
@3d-dice/dice-box), marked BETA, switchable per-game from the settings menu — the choice persists to the game itself, not just your browser - Dice are tinted in the current player's color on every roll; the physics engine's own settled values are the real result
- A landing sound per die as it individually settles, instead of one sound lumped at the end
- Respects your OS's "reduce motion" setting — a roll still takes its usual time and plays all its sounds, just without the spatial movement
Changed
- The 3D view is a transient overlay on the existing flat drop area rather than a replacement, so idle state, per-player hand resets, and coin rendering all keep working exactly as before
- Coins (no 3D model exists for them) get their own flip animation and landing sound instead of sitting inert during a 3D roll
- Next-player, Players/Hand navigation, and the roll-mode toggle itself now all disable while a roll is in flight or its result is showing — a physics roll can't be safely interrupted once started
Fixed
- The settings menu staying open after pressing Roll or the roll-history pill
- A second roll briefly showing the previous roll's 3D dice still sitting in their landed spots
- The 3D-to-2D model swap flashing visibly instead of happening underneath the result banner
Full details in CHANGELOG.md.
Phase 04 — Midnight Arcade: UI redesign, dice animation, and sound
A full visual and animation overhaul, plus the app's first sound effects.
Added
- Full "Midnight Arcade" dark UI redesign (no more light mode) — near-black radial-gradient background, cyan→violet gradient accents, Space Grotesk/Space Mono fonts, a large circular Roll button, edge-docked pills for the last roll and next player
- One shared dialog shell and bottom nav used across every dialog (Players, Hand, Roll history, Game edit, Game hash), instead of each rolling its own
- Dice now tumble while rolling — CSS movement and rotation with genuine deceleration as each die settles, then a short pause before the result reveals
- The result reveal is a full-width banner with real die sprites and an avg/median/min/max stat row, blurring the drop area behind it
- Sound effects throughout — button taps, a roll press sound, per-die tumble/landing sounds (randomized, pitched by die size), and a fanfare on the result — real audio clips with synthesized fallbacks if a file's missing
- A Sound on/off switch in the settings menu, remembered across sessions
Fixed
- Bottom bar disappearing/unusable while a roll result was showing
- The last-roll pill overlapping the Roll button with long player names
- A dialog's whole screen sliding (including a duplicate bottom bar) instead of just its own content
Full details in CHANGELOG.md.
Phase 03 — Games, players, and roll history
Everything now persists to Postgres — games, players, and roll history.
Added
- Postgres persistence (Drizzle ORM): games, players, and rolls tables
- Home page rebuilt as a join/create screen — join by 5-character hash (protected games prompt once for a password), or create a new game (name + optional password)
- Password-protected games gated by a signed session cookie; a one-time "here's your hash" dialog after joining/creating
- Game top bar gains a Settings menu (Leave game / Legend / About) and a clickable name (rename, change password, delete, leave)
- Multiple players per game: name, auto-distinct random color, icon, enabled flag; drag-to-reorder player list
- A player bar shows who's active; "Next player" cycles forward (confirmed), picking a specific player from the list goes anywhere (also confirmed); each player's hand is saved and restored independently; dice tint in the current player's color
- Roll history: every roll's sum, per-die breakdown, average, median, min, and max are recorded; a footer bar shows the latest roll, a full history dialog lets you mark rolls invalid without deleting them
See CHANGELOG.md for the complete list.
Phase 02 — A hand of dice
Build a custom hand of dice and roll all of them at once.
Added
- Top bar with a "Hand" toggle button that opens/closes the Hand pane
- Hand pane: one row per die type (enable checkbox, shape icon, minus/count/plus), plus an "Add die" popup listing all 8 types (d4/d6/d8/d10/d12/d20/d100 and a d2 coin flip) in a 2x4 grid, disabling types already in the hand
- Drop area now renders every die in the hand, each labeled with its type, instead of a single fixed d6
- Distinct 2D shape per die type (triangle, diamond, kite, pentagon, hexagon, octagon, plus the existing pip d6 and a coin) so a mixed hand is readable at a glance
- Rolling now covers the whole hand: each die animates for an independent random duration (0.5-2s) and settles on its own; the result popup shows the sum once every die has stopped
Changed
- Unchecking a die type in the hand only excludes it from rolls; its count is preserved and restored when re-enabled (previously reset to zero)
- Newly added die types start at count 1 instead of 0
See CHANGELOG.md for details.
Phase 01 — Single d6 roller
First iteration of the dice roller — a local, single-die interaction with no backend yet.
Added
- Next.js app scaffold (App Router, TypeScript, Tailwind v4, ESLint)
- Drop area displaying a single d6 face as an SVG pip sprite
- Roll button with a ~500ms random face-swap animation, settling on a
Math.random()result - Result popup shown in front of the Roll button; dismissible with any click, which re-enables the button
No persistence or multiplayer yet — purely local, client-side state. See CHANGELOG.md for details.