6baa13dc90bea6d2a3faeb48b2f7f69cb0d0f10d
Pomodoro
A browser-based Pomodoro timer and clock built with React, TypeScript, and Vite.
Stage 1
- Live clock
- 25-minute focus sessions
- 5-minute short breaks and 15-minute long breaks
- Start, pause, resume, and reset controls
- Long break after every four completed focus sessions
- Accurate countdown after background-tab throttling
- Sound notification when a segment ends
Stage 2
- Custom focus, short-break, and long-break durations
- Automatic focus-to-break sequencing, enabled by default with an opt-out setting
- Six built-in backgrounds: three gradients and three local illustrated scenes
- Adjustable background overlay and text color
- Four clock and timer font styles
- Live customization preview with one-click reset
- Automatic settings persistence in IndexedDB
All preferences stay in the browser. No account or backend is required.
Development
npm install
npm run dev
Quality checks:
npm test
npm run lint
npm run build
Architecture
- React and TypeScript for the interface and timer state
- Absolute timestamps for accurate countdowns after tab throttling
- Native IndexedDB for persistent browser settings
- CSS custom properties for live themes, fonts, colors, and overlays
- Vitest and Testing Library for model, persistence, and interface tests
License
Languages
TypeScript
76.5%
CSS
21.8%
JavaScript
0.7%
Dockerfile
0.5%
HTML
0.5%