Kinetic UI
Back to Introduction
Scrollytelling

Scroll Video Scrub

A scrollytelling component where your scroll position perfectly controls the timeline playback of a video.

Quick Actions
CLI Installation
npx kinetic-ui-cli@latest add scroll-video-scrub

The ultimate Apple-style product reveal technique. This component pins a video to your screen and mathematically maps its currentTime to your scroll progress. Scroll down to play forward, scroll up to rewind in real-time.

Tip: For production use, ensure your video is exported with keyframes on every single frame (e.g., using Handbrake or FFmpeg with keyint=1) to guarantee buttery smooth scrubbing, especially when scrolling backward!

Live Preview

scroll-video-scrub-demo

Video Scrubbing

Keep scrolling down. The video below will map its exact timeline to your scrollbar. Scroll up to reverse time.

↓

Built for speed

Hardware accelerated rendering

Pixel Perfect

Frame by frame precision

Ready to launch

Drop it into your project

End of sequence

Scroll back up to rewind the video

Usage Guide

1. Import the Component

Import the component into your React or Next.js page:

import { ScrollVideoScrub } from "@/components/creative/scroll-video-scrub";

2. Implementation Example

Render the component and customize its behavior by passing props:

import { ScrollVideoScrub } from "@/components/creative/scroll-video-scrub";

export default function Example() {
  return (
    <div className="w-full flex items-center justify-center p-8">
      <ScrollVideoScrub
        videoUrl="example"
        fallbackImage="example"
        textNodes{/* value */}
      />
    </div>
  );
}
Performance Notes
  • Uses CSS hardware acceleration via GPU transform-binds.
  • Damped interpolation minimizes paint-redraw flashes.
  • Tree-shakable import: only compiles elements requested.
Accessibility Notes
  • Full keyboard focus-ring navigation support (`Tab`/`Shift+Tab`).
  • ARIA roles mapped correctly for assistive screen readers.
  • Respects `prefers-reduced-motion` system toggles.