An audio seek bar that owns no clock: position in, seeks out, so it drops onto any transport you already have.
0
Bookmarks
0
Installs
0
Views
"use client"
import * as React from "react"
import { Pause, Play, SkipBack } from "lucide-react"
import { WaveformScrubber, makePeaks } from "@/components/ui/waveform-scrubber"
const DURATION = 224
/**
* The scrubber owns no clock, so the demo brings one: a plain rAF transport
* standing in for whatever audio element this would really be wired to.
*/
export default function DemoWaveformScrubber() {
const peaks = React.useMemo(() => makePeaks(170, 21), [])
const [position, setPosition] = React.useState(38)
const [playing, setPlaying] = React.useState(false)59 more lines behind a plan
Previews are free to watch. Reading and copying the full source needs a plan.
See plansThat's all 6 components
Part of Flux Motion — browse the full library on Nuxus.