undef-dice
2026-01-31
Full React application layer built with Zustand stores, 10 UI components, hooks, and Tailwind CSS
51 files · 8,316+ · 83-
React application shell and state management
12 files changed
UndefDiceApp.tsxMain React application shell with dice rolling, effects, presets, and history (~513 lines)index.tsApp module exportsuseCameraStore.tsCamera state storeuseDiceStore.tsDice state storeuseEffectsStore.tsVisual effects state storeuseHistoryStore.tsRoll history state storeuseModifierStore.tsDice modifier state storeusePhysicsStore.tsPhysics configuration state storeusePresetStore.tsPreset management state storeindex.tsStores module exportstypes.tsStore type definitionsindex.tsReact app barrel exports
- Created
src/react-app/app/UndefDiceApp.tsx(~513 lines) as the main React application shell with dice rolling, effects, presets, and history instantiate architectural1 file
UndefDiceApp.tsx
- Built 7 Zustand stores:
useCameraStore,useDiceStore,useEffectsStore,useHistoryStore,useModifierStore,usePhysicsStore,usePresetStoreinstantiate architectural7 files
useCameraStore.tsuseDiceStore.tsuseEffectsStore.tsuseHistoryStore.tsuseModifierStore.tsusePhysicsStore.tsusePresetStore.ts
UI components and hooks
18 files changed
ActionRow.tsxAction row componentCameraControls.tsxCamera controls UIDiceButtons.tsxDice type selection buttonsEffectsPanel.tsxVisual effects control panelHistoryPanel.tsxRoll history displayModifiers.tsxDice modifier controlsOptionsDrawer.tsxSlide-out options drawerPresets.tsxPreset management UIResultsOverlay.tsxRoll results overlaySliders.tsxNumeric slider controlsindex.tsUI components exportsEffectComposer.tsxPost-processing effect compositorPanelGlow.tsxPanel glow effect componentindex.tsEffects module exportsuseKeyboard.tsKeyboard shortcut hookuseLongPress.tsLong press gesture hookuseTimer.tsTimer hookindex.tsHooks module exports
- Added 10 UI components:
ActionRow,CameraControls,DiceButtons,EffectsPanel,HistoryPanel,Modifiers,OptionsDrawer,Presets,ResultsOverlay,Slidersinstantiate behavioral5 files
ActionRow.tsxDiceButtons.tsxEffectsPanel.tsxHistoryPanel.tsxResultsOverlay.tsx
- Created React effects system:
EffectComposer.tsxandPanelGlow.tsxinstantiate behavioral2 files
EffectComposer.tsxPanelGlow.tsx
- Added custom hooks:
useKeyboard,useLongPress,useTimerinstantiate behavioral3 files
useKeyboard.tsuseLongPress.tsuseTimer.ts
DiceArena component and testing
5 files changed
DiceArena.tsxSelf-contained dice rolling widget componentDiceArena.test.tsxDiceArena unit testsdice-arena.spec.tsDiceArena E2E test specseed-test-app.tsxRNG determinism testing apptest-setup.tsVitest global test setup
- Created
DiceArena.tsxcomponent as a self-contained dice rolling widget instantiate behavioral1 file
DiceArena.tsx
- Added
seed-test-app.tsxandseed-test.htmlfor RNG determinism testing qualify internal2 files
seed-test-app.tsxseed-test.html
- Added
react.htmlandtest-app.htmlentry points qualify internal2 files
react.htmltest-app.html
- Added
DiceArenaE2E test spec (tests/e2e/dice-arena.spec.ts) qualify internal1 file
dice-arena.spec.ts
- Added
DiceArenaunit tests (__tests__/DiceArena.test.tsx) qualify internal1 file
DiceArena.test.tsx
Tailwind CSS and build configuration
7 files changed
tailwind.config.jsTailwind CSS configurationpostcss.config.jsPostCSS configuration for Tailwindundef-dice.cssComplete React app styling (~1260 lines)index.cssReact app index stylesvite.config.tsUpdated Vite configurationvitest.config.tsUpdated Vitest configurationpackage.jsonAdded Zustand, Tailwind, PostCSS, autoprefixer dependencies
- Added
tailwind.config.jsandpostcss.config.jsfor Tailwind CSS baseline internal2 files
tailwind.config.jspostcss.config.js
- Created
src/react-app/styles/undef-dice.css(~1260 lines) with complete styling for the React app instantiate behavioral1 file
undef-dice.css
- Updated
package.jsonwith Zustand, Tailwind, PostCSS, and autoprefixer dependencies baseline internal1 file
package.json