Pausable countdown
Use elapsedMilliseconds for duration countdowns that must pause and resume.
Pausable duration countdownLive
Pausable countdown
00:20
Duration20s
Elapsed active time0.0s
Pause behaviorfreezes elapsed time
const timer = useTimer({
autoStart: true,
endWhen: snapshot => snapshot.elapsedMilliseconds >= durationMs,
});
const remainingMs = Math.max(0, durationMs - timer.elapsedMilliseconds);