Knit UI
GitHub

Playground

Loading playground…

Playground
<AudioMesh
  pattern="sine"
/>

Examples

Default

The default mesh: a cyan→indigo→pink field flowing to a travelling sine.

Loading example…

DefaultSourceStorybook

Beat

A kick beat — watch the low-band blob bloom on every hit.

Loading example…

BeatSourceStorybook

Calm

A warmer palette with more, softer points — a slow lava-lamp drift.

Loading example…

CalmSourceStorybook

Custom Palette

A custom two-stop palette over a dark background.

Loading example…

Custom PaletteSourceStorybook

Fft Driven

Loading example…

Fft DrivenSourceStorybook

Props

PropTypeDefaultDescription
attacknumber | undefined—Rise smoothing `0..1` override — lower = snappier. Defaults to `smoothing`.
backgroundColorstring | undefined—Canvas background (shows through where the field is dark/translucent).
colorsstring[] | undefined—Palette spread across the control points — an array of hex colours (`#rgb`/`#rrggbb`). Interpolated so each blob gets a distinct colour even when the palette is short. Default cyan→indigo→pink.
countnumber | undefined—Number of spectrum bands tracked. Default 48.
fftScaleSpectrumInput | undefined—How `input="fft"` magnitudes are scaled. Default `"byte"`.
heightnumber | undefined—Canvas height in px. Default 160.
input"levels" | "fft" | undefined—What pushed data carries: final `"levels"` (default) or raw `"fft"` magnitudes.
labelstring | undefined—Accessible label.
levelsnumber[] | undefined—Declarative fallback: pushed whenever the value changes (re-renders per tick).
maxBinnumber | undefined—`input="fft"`: last magnitude bin to include. Default = pushed length.
maxDbnumber | undefined—`input="fft"`: dB mapped to `1` (ceiling). Default `-10`.
minBinnumber | undefined—`input="fft"`: first magnitude bin to include (skip DC). Default `1`.
minDbnumber | undefined—`input="fft"`: dB mapped to `0` (floor). Default `-90`.
opacitynumber | undefined—Overall opacity `0..1`. Default 1.
pointsnumber | undefined—Colour control points (blobs), `1..6`. Default 5.
releasenumber | undefined—Fall smoothing `0..1` override — higher = a slower tail. Defaults to `smoothing`.
responseTimenumber | undefined—Rise time constant (ms) override; makes a sparse/low-rate FFT feed smooth at 60fps.
smoothingnumber | undefined—Attack/release smoothing, `0..1`. `0` snaps to each target; higher values let the field glide and decay. Default 0.3. Forced to 0 under reduced motion.
softnessnumber | undefined—Base blob radius in normalized canvas units before audio swell. Default 0.45.
speednumber | undefined—Idle-drift rate multiplier. `0` freezes the orbit (blobs still pulse). Default 1.
targetSharedValue<number[]> | undefined—Optional external target SharedValue (continuous loop while mounted).
widthnumber | undefined—Fixed width in px. Omit for a responsive `width: "100%"` canvas.
Accessibility & DOM props (2)
PropType
keyKey | null | undefined
refRef<AudioVisualizerHandle> | undefined

Edit this page on GitHub