52 lines
1.2 KiB
Markdown
52 lines
1.2 KiB
Markdown
# 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
|
|
- 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
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
Quality checks:
|
|
|
|
```bash
|
|
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
|
|
|
|
[MIT](LICENSE)
|