Overview
A full-screen-friendly countdown timer with a big monospace readout, a progress bar, and one-click presets from 1 to 45 minutes. Give the countdown a label, start it, and when it hits zero it beeps once through your browser's audio and shows a completion toast.
How It Works
Type a label (the default is 'Focus block') and either press a preset — 1, 5, 10, 15, 25, or 45 minutes — or start from the default 5-minute value. Press Start to begin; the display counts down second by second with a shrinking progress bar. Pause freezes it, Reset rewinds to the full duration (the Start button turns into Restart once the countdown reaches zero), and at zero the timer plays a short 880 Hz tone and announces completion in a toast with your label.
Step-by-Step Usage Guide
- Name the timer so the completion toast makes sense.
- Pick a preset length or keep the default.
- Press Start and watch the progress bar drain.
- Pause or Reset as needed; a beep and toast mark zero.
Technical Specifications & Standards
The countdown is wall-clock based: it stores an end timestamp and a 250 ms interval recomputes the remaining time from Date.now(), so it cannot drift or run slow. If the browser heavily throttles a background tab, only the display refresh and the completion beep are delayed — the remaining time stays correct and catches up. The stopwatch uses the same timestamp approach. The completion beep is synthesised with the Web Audio API — an oscillator at 880 Hz for 0.4 seconds at low volume — wrapped in a try block so browsers with audio blocked fail silently rather than erroring; browser autoplay policies generally permit it because it follows a user gesture (pressing Start). The completion toast echoes your label, which is what makes multiple timers distinguishable if you run them in separate tabs. State is not persisted: refreshing resets the timer, and there is no saved history of completed countdowns.
Targeted Use Cases
- Timing a presentation segment or a stand-up turn.
- Pomodoro-adjacent focus sprints when you want a simple timer with a label.
- Kitchen and chore timers on a laptop you keep in sight.
- Timeboxing a difficult email or phone call.
Notes & Gotchas
- A background tab stays accurate, but the beep and toast can arrive a little late if the browser throttles timers, so keep the tab visible for exact alerts.
- Use the label field so you know which timer finished when several tabs run.
- Remember the beep follows user interaction; do not rely on it from a never-touched tab.
- Set the duration before pressing Start — Reset rewinds to whatever the preset set, and picking a preset while running stops the timer.
Frequently Asked Questions
Will the countdown stay accurate in a background tab?
Yes. The remaining time is recomputed from the clock on every tick rather than counted down, so throttling a hidden tab cannot make it run slow. The completion beep and toast may fire a little late in a throttled tab.
What happens when it reaches zero?
The timer plays a short 880 Hz tone generated with the Web Audio API and shows a toast with your label. If the browser blocks audio, the tone fails silently and the toast still appears.
Can I save a timer configuration or history?
No. The label, duration, and progress live in component state only. A refresh resets everything, and completed countdowns are not recorded.
What lengths are available?
One-click presets at 1, 5, 10, 15, 25, and 45 minutes; the tool starts at a 5-minute default. There is no custom-minute entry — the presets cover the common sprint and break lengths.