wizard_website
React + TypeScript frontend (Vite). All component styles are CSS modules
(*.module.css); the design tokens live on the .app root in
src/App.module.css.
npm install
npm run dev # http://localhost:5173, proxies /api (incl. websocket) to localhost:8000
npm run build
npm run lint
Set WIZARD_SERVER_URL to proxy to another server in development, or
VITE_WS_URL at build time to connect to an absolute websocket URL.
Structure
src/api/— protocol types and theuseWizardhook (websocket connection, reconnect with a per-tab session token, game state)src/components/— reusable UI (button, playing card, modal, toasts)src/screens/HomeScreen— enter a name, create or join a lobbysrc/screens/LobbyScreen— lobby code, players, AI players, rule options, startsrc/screens/GameScreen— the table: seats, trick, hand, bidding, trump choice, scoreboard, round summary, game over