KQ-1106 · PRINT/HOLD
Print Hold
A hold-to-confirm pad drawn as a procedural fingerprint that reads nothing and says so: held, its ridges light along a spiral that unwinds from the press point on a linear read while a hum rises; lifted early they drain back into the press point, and a thumb that slides smears the read, so the pad shakes on a keyframed tween, flashes and buzzes. A complete read runs an optional verify, reports true, and once the value is confirmed every ridge condenses onto one ring on the glide spring while a tick draws inside it or a padlock's shackle springs open on snap. Space or Enter held is the hold, Escape cancels a read, and the caption under the pad says each step in words.
Approve transfer
To Fernworks Supply
1,240.00
Press and hold the pad
transfer pending · hold the pad
Install
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/print-hold
Props
- label
- string
- default —
- What holding the pad confirms, as a sentence: the pad's accessible name.
- confirmed / defaultConfirmed
- boolean
- default false
- Whether a hold has been confirmed. Controlled pads condense only once the host sets it; set it back to false to arm the pad again.
- onConfirmedChange
- (confirmed: boolean) => void
- default —
- Fires with true from the completed hold (after verify, if given).
- verify
- () => boolean | void | Promise<boolean | void>
- default —
- Runs when a hold completes, before anything is confirmed. Return or resolve false to decline the read: the pad shakes, buzzes and drains. While a promise is pending the lit print pulses and the caption says Checking.
- scan
- number
- default 1.6
- Seconds a full read takes, 1 to 3. A re-press during a drain resumes from where the light is.
- ridges
- number
- default 10
- How many ridge lines the print has, 6 to 14: fewer is bolder, more is finer.
- colour
- "cobalt" | "signal" | "amber" | "ink"
- default "cobalt"
- The colour the ridges light in, and the confirmed ring and glyph.
- feedback
- "tick" | "unlock"
- default "tick"
- What the lit ridges condense into: a ring with a tick (Confirmed), or a ring with a padlock whose shackle springs open (Unlocked).
- sound
- boolean
- default false
- Play the rising scan hum, the chime on confirmation and the buzz on a failed read. Nothing plays, and no audio context exists, unless this is on.
- disabled
- boolean
- default false
- Dims the pad, blocks holds and ends one in progress.
- className
- string
- default —
- Merged onto the wrapper that holds the pad and its caption.
| Prop | Type | Default | Description |
|---|---|---|---|
| label | string | — | What holding the pad confirms, as a sentence: the pad's accessible name. |
| confirmed / defaultConfirmed | boolean | false | Whether a hold has been confirmed. Controlled pads condense only once the host sets it; set it back to false to arm the pad again. |
| onConfirmedChange | (confirmed: boolean) => void | — | Fires with true from the completed hold (after verify, if given). |
| verify | () => boolean | void | Promise<boolean | void> | — | Runs when a hold completes, before anything is confirmed. Return or resolve false to decline the read: the pad shakes, buzzes and drains. While a promise is pending the lit print pulses and the caption says Checking. |
| scan | number | 1.6 | Seconds a full read takes, 1 to 3. A re-press during a drain resumes from where the light is. |
| ridges | number | 10 | How many ridge lines the print has, 6 to 14: fewer is bolder, more is finer. |
| colour | "cobalt" | "signal" | "amber" | "ink" | "cobalt" | The colour the ridges light in, and the confirmed ring and glyph. |
| feedback | "tick" | "unlock" | "tick" | What the lit ridges condense into: a ring with a tick (Confirmed), or a ring with a padlock whose shackle springs open (Unlocked). |
| sound | boolean | false | Play the rising scan hum, the chime on confirmation and the buzz on a failed read. Nothing plays, and no audio context exists, unless this is on. |
| disabled | boolean | false | Dims the pad, blocks holds and ends one in progress. |
| className | string | — | Merged onto the wrapper that holds the pad and its caption. |