Starting and pausing
Click Start or press Space to begin. The display counts up in MM:SS.mmm format, switching to H:MM:SS.mmm automatically once the hour mark is passed. Press Space (or click Pause) to freeze the display; the accumulated time is saved so you can resume with no loss.
Recording laps
While the stopwatch is running, click Lap or press L. Each lap records the current cumulative elapsed time. The lap table shows:
- Lap # — sequential lap number (newest at top)
- Lap Time — duration of that lap only
- Total — cumulative elapsed time at the end of the lap
With 2+ laps, the fastest lap is highlighted green and slowest red. The summary bar above the table shows lap count, average lap time, fastest, and slowest.
Keyboard shortcuts
| Key | Action |
|---|---|
Space | Start / Pause |
L | Record lap (running only) |
R | Reset to zero |
The shortcuts are disabled when focus is inside an input field.
Copying results
Click Copy all in the lap table header to copy a TSV-formatted table. Example paste into Google Sheets:
Lap Lap Time Total
1 0:25.312 0:25.312
2 0:24.887 0:50.199
3 0:26.042 1:16.241
Accuracy notes
The stopwatch uses performance.now(), which is a monotonic clock unaffected by system clock adjustments. Elapsed time is computed as (performance.now() − startTime) + accumulatedMs — not by counting ticks. This means:
- Pausing and resuming does not accumulate drift
- Switching browser tabs does not affect accuracy
- Browser throttling (rAF throttled to 1 Hz in background tabs) pauses visual updates but does not affect the measured time
For competition timing, accuracy is limited by your reaction time (±50–200 ms for button clicks), not by the timer itself.