KQ-1230 · BOOTH/STRIP

Booth Strip

A photo booth's panel and the strip it prints: for each shot the readout counts down, the reflector charges and fires a white wash over the booth, and the strip feeds out of the slot by one frame on a tween stepped into roller lines, newest shot nearest the slot. A fresh strip is wet — darker and glossy, the gloss shrinking from the edges as it dries — and shaking it dries it faster: it pivots at the slot, follows the finger 1:1 with rubber-banded edges, then swings as a pendulum spring taking the release velocity. Any frame enlarges into a viewer that grows out of the frame's own box on the glide spring and shrinks back on the exit ease; the frames are buttons in one tab stop where Up and Down move, Enter enlarges and Left and Right shake.

KQ-1230 · BOOTH/STRIP
Fernworks 01.10.26

Up and Down move between shots, Enter enlarges one, Left and Right shake the strip to dry it.

ready · strip № 1 dry

Install

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

$ pnpm dlx shadcn@latest add @kinetiq/booth-strip

Props

caption
string
default —
Printed on the strip's tail, e.g. "Fernworks 01.10.26".
photos
React.ReactNode[]
default —
Your own frame contents, used in turn; by default each frame is a drawn booth portrait, new poses every strip.
label
string
default "Photo booth"
The booth's accessible name.
value / defaultValue
number | null
default null
The shot shown enlarged (0 is the first shot), or null; controlled or uncontrolled.
onValueChange
(shot: number | null) => void
default —
Fires from the pick, key or button that opened, stepped or closed a shot.
defaultPrinted
boolean
default true
A dry strip already hangs from the slot at first.
onPrint
() => void
default —
Fires when a new strip has finished printing.
onPhaseChange
(phase: "idle" | "shooting" | "wet" | "dry") => void
default —
Fires as the booth moves between phases.
frames
number
default 4
Shots per strip, 3 or 4.
tone
"bw" | "sepia" | "colour"
default "bw"
The print's chemistry, applied to whatever is in the frames.
flash
boolean
default true
The booth flashes white on each shot (never more than once a second). Off: only the reflector lights.
sound
boolean
default false
A shutter snap on each shot and the print feed's whir while the strip feeds, only during a strip the visitor started.
disabled
boolean
default false
The strip can be looked at but not taken, shaken or enlarged.
className
string
default —
Classes for the root.