KQ-1511 · SLIDE/SEAL

Slide Seal

A slide-to-confirm strip whose handle is a seal stamp: it follows the finger 1:1 along the track and rubber-bands past the ends while the track's words dissolve letter by letter under it, and near the end a wax seal forms on the mark, growing from a dot to just wider than the handle as it closes on the threshold. Released past the threshold (or flicked so the throw would land past it) the handle slams onto the wax on springs.flick with the release velocity and presses it — squashing on springs.flick, the wax splatting out past its rim on springs.recoil — and its face becomes the seal with the monogram pressed in; released short, it springs home on springs.glide with the release velocity. The handle is a native button: Enter or Space runs the whole slide and presses the seal.

KQ-1511 · SLIDE/SEAL

Offer · Coldbrook

Ref 1511

Field engineer

Starts 3 Nov · Ridge office

Drag the seal to the end of the track, or press Enter.

open · slide to seal

Install

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

$ pnpm dlx shadcn@latest add @kinetiq/slide-seal

Props

label
string
default "Slide to seal"
The track's words and the handle's accessible name.
sealedLabel
string
default "Sealed"
Shown once sealed, and the handle's name then.
sealed / defaultSealed
boolean
default — / false
Whether it is sealed, controlled or initial. Setting it back to false breaks the seal and the handle glides home; a host that refuses the seal gets its own state back.
onSealedChange
(sealed: boolean) => void
default —
Fires with true from the release or key that sealed it.
onConfirm
() => void
default —
Called once, when the seal is pressed.
onProgressChange
(progress: number) => void
default —
Fires while the handle is dragged with how far along the track it is, 0 to 1 (two decimals); 0 when it springs back, 1 when sealed.
threshold
number
default 0.85
Where a release commits, as a share of the travel (0.5 to 0.98); also where the wax finishes forming and the track's mark sits.
seal
"crimson" | "forest" | "cobalt" | "amber" | string
default "crimson"
The wax: a named pigment from the theme's hues at a fixed lightness, or any CSS colour.
monogram
string
default ""
One or two letters pressed into the wax; a check when empty.
icon
ReactNode
default —
The handle's icon before it is pressed. Defaults to a stamp.
wobble
number
default 0.5
How organic the wax's edge is, from a coin (0) to a splash (1).
squash
number
default 0.5
How deep the press squashes the handle and how far the wax spreads, 0 to 1.
size
"sm" | "md" | "lg"
default "md"
Track height 48, 56 or 64px with a matching handle; the strip is w-full up to 420px.
sound
boolean
default false
A thock when the seal is pressed, pitched by size; only after the visitor's drag or key.
disabled
boolean
default false
Disables the handle.
className
string
default —
Classes for the root, which keeps 6px round the track for the wax's overhang (pass -m-1.5 to align the track itself).