slowmo
Patches browser time so you can slow, pause or speed up any web animation
An MIT library by seflless that intercepts the browser's clock rather than any one animation library: it patches requestAnimationFrame timestamps, performance.now(), Date.now(), setTimeout/setInterval, Web Animations API playbackRate, and media element playback. One call — slowmo(0.5) for half speed, slowmo(0) to pause, slowmo(2) to double — retimes CSS animations and transitions, GSAP, Framer Motion, Three.js, canvas loops and video together, with pause(), play(), reset() and getSpeed() alongside. It ships an optional draggable dial UI, as setupDial()/shutdownDial() for vanilla JS or a <Slowmo /> React component that remembers its position in localStorage, plus a Chrome extension for driving sites you cannot add code to. The README is honest about the limits: frame-counted animations, libraries that cache time functions before slowmo loads, iframes, service workers, WebGL shader clocks and server-synced animation stay at normal speed.
npm install slowmoPull this into a dev-only entry point when you are tuning easing, spring stiffness or a stagger and cannot see what is happening at full speed — it is strictly better than Chrome DevTools' animation slider because one call retimes GSAP, Framer Motion, canvas and video at once instead of only WAAPI. Import it before the animation libraries initialise, or anything that cached performance.now() at module load will ignore it. Never ship it in a production bundle: it monkey-patches global timing primitives, so gate it behind a dev flag, and reach for the Chrome extension when the site is not yours.
Why it is here. Almost every motion bug is invisible at 60fps, and this is the only one-line way to retime an entire page — libraries, canvas and video together — without touching the animation code.
- Patches rAF, performance.now, Date.now and timers
- Retimes GSAP, Framer Motion, Three.js and video together
- Draggable dial UI, vanilla and React
- Chrome extension for third-party sites
- README documents its own blind spots
Verified 2026-08-15. HTTP 200. https://slowmo.dev/, https://github.com/seflless/slowmo, plus a web search confirming the Chrome Web Store listing. slowmo.dev/docs is a 404 and npmjs.com/package/slowmo returned 403 to the fetcher; the GitHub README says the extension is 'coming soon' while the site and the Chrome Web Store list it as live.








