slowmo
Patches browser time so you can slow, pause or speed up any web animation
Tier A · StrongToolAnimation Libraryslowmo.dev

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 slowmoFor an agent
Pull 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.
Facts
- License
- MIT
- Pricing
- Free, Open source
- Framework
- Vanilla JS, React
- Styling
- Not applicable
- Distribution
- npm package, Browser extension, GitHub repository
- Platform
- Web
- Content type
- Code
- Agent readiness
- Readable open source, Structured documentation
- Accessibility
- Not applicable
- Maturity
- Actively maintained
- GitHub stars
- 173
- Package
- slowmo
Notable for
- 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
Provenance
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.
Also in Motion & Interaction
6- GSAP · JavaScript animation engine with 19 plugins, now free for commercial use
- Lenis · Smooth-scroll engine that keeps native scroll and honours reduced-motion
- Motion · Hybrid JS/React/Vue animation engine with springs, layout and scroll animation
- NumberFlow · Dependency-free animated number component for React, Vue, Svelte and JS
- React Bits · 234 copy-paste animated React components: text effects, cursors, WebGL backgrounds
- React Native Reanimated · UI-thread animation library for React Native, v4 on the New Architecture