SvelteKit single-page experience that renders 24 minimalist analog clocks in a 6×4 grid to visualize how much of today has elapsed. Past hours dim and freeze, the current hour animates live with discrete second ticks, and future hours sit at noon until their time arrives.
pnpm install
pnpm devOpen http://localhost:5173 to view the clock grid. The current hour highlights and advances in real time.
pnpm dev– run the SvelteKit dev serverpnpm check– run type and Svelte checkspnpm lint– prettier check + eslintpnpm test– run Vitest + Testing Library (tests located intests/)
src/lib/components/ClockFace.svelte– renders a hand-only analog clocksrc/lib/stores/dayState.ts– derives hour states and drives per-second updatessrc/lib/time/clockAngles.ts– calculates frozen/live clock hand anglessrc/routes/+page.svelte– page layout with 24-hour gridsrc/app.css– page styling
Document manual verification steps:
- SC-001 current hour recognition – page header shows “Current time”; current clock card raised.
- SC-002 elapsed count – header lists “Elapsed hours: N/24”.
- SC-003 update latency – observe second hand tick; hour transition occurs within 5 seconds after the hour.
- SC-004 load time – on broadband, grid renders within 2 seconds (verify via browser network tools).
- SC-005 state comprehension – confirm that dimmed cards + state labels differentiate past/current/future without extra guidance.
Record findings in docs/acceptance.md if formal validation is required.