KQ-902 · MIC/RING

Mic Ring

Your voice, as a ring. One motion value holds the level and everything reads from it: a halo behind the button grows with it on flick, the rim fills a level arc by strokeDashoffset, and a thinner outer arc holds the recent peak and falls back linearly to the live level. Muting closes the ring on snap while a slash draws across the glyph on flick, and unmuting retracts it on the exit ease. The button is a real switch, so Space and Enter toggle it and the level sits beside it as a meter that can be queried but never announces.

KQ-902 · MIC/RING
MicrophoneOnlevel 6 · peak 0

Mic on · level 6 · peak 0

Install

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

$ pnpm dlx shadcn@latest add @kinetiq/mic-ring

Props

level
number
default
Input level, 0 to 1, clamped. Supplied by the host; the component never reads a device.
muted / defaultMuted
boolean
default false
Controlled or initial mute state.
onMutedChange
(muted: boolean) => void
default
Fires from the button, from Space and from Enter.
onPeakChange
(peak: number) => void
default
Fires when the held peak changes, as a rounded percentage 0 to 100.
peakDecay
number
default 0.6
How fast a held peak falls back towards the live level, in level per second.
name
string
default "You"
Whose voice it is; owns the spoken sentences and the meter's label.
showReadout
boolean
default true
Draws the level and peak figures beside the button instead of the band word.
disabled
boolean
default false
Holds the button; the ring still shows the level.