A clean web-based countdown timer with hours, minutes, seconds, presets, pause and resume controls, and progress tracking.
countdown-timer/
├── index.html # Main app markup
├── styles.css # App styling
├── js/ # JavaScript source files
│ ├── dom.js # DOM element references
│ ├── display.js # Display and UI update helpers
│ ├── audio.js # Timer completion sound
│ ├── timer.js # Timer logic and state handling
│ └── app.js # App startup and event listeners
├── README.md # Project documentation
└── PROGRESS.md # Project progress notes
- Open
index.htmlin a web browser. - Or start a simple local server from the project folder:
python3 -m http.server- Then open
http://localhost:8000in your browser.
- A modern web browser
- JavaScript enabled
- No build tools or installation required
- Enter hours, minutes, and seconds.
- Or choose a quick preset.
- Click
Startto begin the countdown. - Click
Pauseto pause andResumeto continue. - Click
Resetto return to the currently set duration.
- The app converts hours, minutes, and seconds into total seconds internally.
- The display updates every second.
- A progress bar fills as the countdown runs.
- When the timer finishes, the app shows a completion state and plays a sound.
- Hours, minutes, and seconds inputs
- Quick presets:
30s,1m,5m,10m,1h - Start, pause, resume, and reset controls
- Progress bar
H:MM:SStimer display- Keyboard shortcuts
- Completion sound
- Clean SaaS-style interface
- No background persistence after page reload
- Sound volume depends on browser and device settings
- The timer is designed for a single countdown at a time
- The app runs fully in the browser.
- No user data is sent anywhere.
- No account, login, or server is required.
- Dark mode toggle
- Focus mode
- Circular progress ring
- Pomodoro mode
- More sound options
- The timer now starts empty by default.
- The display shows hours when needed.
- Buttons and presets are handled with JavaScript event listeners.
