Component

Progress

Timeline scrub bar with hover tooltip, buffer indicator, and drag-to-seek.

Features

✓Hover tooltip showing time at cursor position
✓Click to seek to any position
✓Drag to scrub through video
✓Buffer progress indicator
✓Smooth scrubber dot that appears on hover
✓ARIA slider accessibility attributes

Props

currentTime*
number

Current playback position in seconds.

duration*
number

Total video duration in seconds.

loadedFraction*
number

Buffer progress from 0 to 1.

onSeek*
(seconds: number) => void

Called with the target position in seconds when the user seeks.

Implementation notes

Drag behavior

Drag-to-seek uses global window mousemove/mouseup listeners so dragging outside the component still works. Listeners are cleaned up immediately on mouseup. The scrubber position updates in real-time during drag without triggering actual seeks until the user releases the mouse button.