Modern React + Vite + TypeScript application for previewing CSSBattle solutions against battle and daily targets.
- Major architecture refactor into domain-focused modules under
src/packages/* - Reworked application layout with editor, preview, compare, and utility panels
- Improved target workflow with Battle/Daily modes, fast selection, and local caching
- Supabase-backed target source for
battle_targetsanddaily_targets - Theme support with
system,light, anddarkmodes - Expanded utility tooling (color palette, spaces table, Unicode helper)
- Node.js 20+
pnpm(recommended) or npm
Copy-Item .env.example .env
# set VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY
# Recommended toolchain
corepack enable
corepack prepare pnpm@latest --activate
pnpm install
pnpm devIf you prefer npm:
npm install
npm run devpnpm dev
pnpm build
pnpm preview
pnpm lint
pnpm typecheck
pnpm checkThe app expects these tables:
battle_targets(id, name, image_url, battle_number, colors)daily_targets(key, name, image_url, date, colors)
Optional performance indexes are provided in supabase/targets_indexes.sql.
See CHANGELOG.md for release notes.
This project is configured with base: "./" in vite.config.ts.
- Production build assets resolve relative to the deployed
index.html. - Hosting from a subdirectory works without hardcoded root paths.
- Local development with
pnpm dev/npm run devcontinues to work.