KQ-745 · SPEED/SCRUB

Speed Scrub

A finished answer whose arrival can be replayed at a chosen pace. The thumb sits inline at the replay position, so it rides the text through every line wrap; play advances by characters from a fixed-step interval, pause holds mid-word with the thumb swelling on snap, and the speed row's indicator glides between stops on snap. Pressing or dragging on the text scrubs to the character under the pointer; on the slider Left and Right step a word, Up and Down five, Home and End jump, and Space toggles play.

KQ-745 · SPEED/SCRUB
Answer from Gaugeworks Reasoner

Renew the crane lease, but for one year rather than three. The yard's own crane returns from repair in the spring, and the north site closes in the autumn, so the second and third years would pay for a machine that mostly stands idle. A single year covers the busy season at the current rate, and the supplier has already agreed to hold it. Review again in March once the repair estimate is final.

Speed

Paused · word 0 of 74 · 1×

Install

One command — the source lands in your repo. Or copy it from the Code tab.

$ pnpm dlx shadcn@latest add @kinetiq/speed-scrub

Props

text
string
default
The finished answer.
position / defaultPosition
number
default 0
Controlled or initial replay position in characters.
onPositionChange
(position: number) => void
default
Fires from the interval, a key press, or a pointer scrub.
playing / defaultPlaying
boolean
default false
Controlled or initial play state.
onPlayingChange
(playing: boolean) => void
default
Fires from the play control, Space, a press on the text, or reaching the end.
speed / defaultSpeed
number
default 1
Controlled or initial multiplier.
onSpeedChange
(speed: number) => void
default
Fires from the speed row.
speeds
number[]
default [0.5, 1, 2, 4]
The multipliers offered.
charsPerSecond
number
default 40
Characters per second at 1×.
label
string
default
Names the answer and the scrubber for assistive technology.
model
string
default
The model's name for the header chip.