KQ-1817 · FLAMBE/PAN

Flambe Pan

A copper pan on a dark range, held by its handle: a drag follows the hand 1:1, up to tip the far lip toward the gas and sideways to slide it over the grate, and a release sets it back level on springs.glide with the throw's velocity. When the lip dips past the catch angle the spirit catches, a front of fire running across the sauce from the low lip, and additive tongues of flame flare up, leaning with the tilt and trailing the pan through the air while the room takes their light; a quick shake gusts them higher before they burn down to a few blue licks and go out. Enter or Space tosses the pan (a tip on springs.snap and back on glide) when it is out and shakes it while it burns.

KQ-1817 · FLAMBE/PAN

Coldbrook Supper Club · tableside

Crêpes in orange butter, flamed at your table

Tableside · Coldbrook

Drag to tip and shake the pan. Enter or Space tips it to catch the spirit, and again to shake it while it burns.

out · tip the pan to catch the spirit

Install

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

$ pnpm dlx shadcn@latest add @kinetiq/flambe-pan

Props

height
number
default 0.7
How tall the flare stands, as a share of the room above the pan, 0.2 to 1.
gust
number
default 0.6
How much a quick shake feeds the flames, 0 to 1.
hue
number
default 52
The flame's OKLCH hue at fixed lightness: 52 brandy orange, 30 deep red, 80 gold, 140 copper green.
burnTime
number
default 3.2
Seconds the spirit burns before the last blue lick goes out, 1 to 8.
catchAngle
number
default 12
Degrees the far lip must dip before it catches, 6 to 24.
maxTilt
number
default 30
The furthest the pan tips before it rubber-bands, 16 to 40 degrees.
lean
number
default 0.6
How far the tongues lean with the tilt and trail the pan's motion, 0 to 1.
density
number
default 0.7
How full the flame is, 0.3 (a few tongues) to 1 (a dense sheet).
metal
"copper" | "steel" | "iron"
default "copper"
The pan's metal.
rangeColor
string
default a dark steel pigment
The cooktop's colour.
trigger
"inView" | "mount" | "manual"
default "inView"
When the pan tips itself once to show the flare (silently): first seen, at mount, or never.
sound
boolean
default false
Play the flare when the visitor catches the spirit or gusts it with a shake.
onFlameChange
(state: "out" | "flaring" | "licks") => void
default —
Fires when the flame catches, burns down to blue licks, or goes out.
label
string
default "Flambé pan"
The scene's accessible name.
paused
boolean
default false
Hold the flame still where it is; the pan can still be moved.
disabled
boolean
default false
No tipping, tossing or shaking.
seed
number
default 1
Seeds the flame's tongues.
dpr
number
default 2
Cap on the canvas's pixel ratio, at most 2.
children
ReactNode
default —
Overlay content drawn above the scene; it never takes the pointer.
className
string
default —
Classes for the root; give it a size (the demo uses aspect-[16/10]).