Stopwatch vs. timer: two different clocks with the same buttons
Stopwatch counts up from zero with no target and never finishes on its own — Start, Pause, and Reset are the only controls that matter. Timer counts down from a target duration (5 minutes by default) toward zero, adds a progress bar across the top of the display, and does something the stopwatch never does: it finishes, plays a sound, and shows a distinct finished state. Switching between the two modes resets whichever one was in use, so it is not possible to pause a stopwatch mid-run and pick up a timer countdown in its place.
Both share the exact same time display, which hides the hours field entirely once elapsed or remaining time is under an hour — under sixty minutes only MM:SS shows, with two extra digits of hundredths in a smaller, lighter font beside it.
How a paused-and-forgotten timer knows exactly how much time has passed
Every change to mode, status, and elapsed time is written to localStorage, but what actually gets restored on reload is not a frozen snapshot — it is a live reconciliation. For a timer or stopwatch that was running at the moment the tab closed, the tool takes the wall-clock gap between the stored timestamp and right now, adds it to the time already accumulated, and picks up exactly where it would be had the tab never closed. A timer that would have already reached zero during that gap is marked finished immediately on load, without waiting for another tick; a stopwatch just resumes counting up from the reconciled total.
A paused timer or stopwatch, by contrast, restores its frozen accumulated time with no wall-clock adjustment at all — pausing genuinely stops the clock, and only resuming starts the reconciliation logic again from that point forward.
Voice control's exact vocabulary, and why "stop" sometimes does nothing
Voice control listens for exactly three words as substrings of whatever it hears, checked in this order: reset, then stop, then start — so a phrase containing more than one of them resolves to whichever is checked first. Commands are explicit, not toggles: saying start only takes effect if the clock is not already running, and saying stop only takes effect if it currently is. Saying start while already running, or stop while paused or idle, is a deliberate no-op rather than an error.
The recognizer runs continuously and restarts itself automatically if the browser's speech session ends on its own (Chrome cuts these off periodically) as long as the toggle is still on, and it turns itself off and alerts if microphone access is denied. The on/off preference is remembered in localStorage across reloads, but for privacy reasons the microphone itself is never auto-started — flipping the switch back on after a reload is always a deliberate action.
What happens when a timer actually reaches zero
A finished timer plays one short tone through the Web Audio API — a sine wave sweeping from 880Hz down to 440Hz over half a second with a matching volume fade — once, not on a loop. Nothing plays for a stopwatch, since it has no target to reach. From the finished state, pressing the main button restarts the same duration from the top rather than resuming; the +1/+5/+15-minute and -1-minute buttons in the Add Time menu adjust the target duration directly, and doing that while paused or finished immediately recalculates the remaining time — which can flip a finished timer back to paused if enough time is added, or push a paused one straight to finished if enough is subtracted.
The URL is a remote control: presets, autostart, and how another tool on this site uses it
Mode and duration read from the page's own URL on load (?mode=timer&duration=300), and an autostart=true parameter launches the countdown running immediately with no click required, overriding whatever was previously saved. That is not a hidden feature — the Text Counter tool's speaking-time estimate builds this exact URL itself and links straight into it, so pasting text there and clicking Start Timer lands here already counting down for exactly as long as that text would take to say out loud.
A voice-driven countdown, start to alarm
Landing on a 90-second timer with voice control already switched on, saying "let's start" triggers the substring match on start, moves the clock to running, and begins the countdown. Twenty seconds in, saying "hold on, stop for a second" matches stop before start would even be checked, pausing the clock with 70 seconds still showing. Saying "okay start again" resumes exactly where it paused. When the remaining time reaches zero, the tone plays once and the display switches to its finished state — saying "reset" at any point in that sequence, running or paused, immediately returns it to idle at the original 90 seconds.