Skip to content

VoiceInputButton

stablev1.0.0

Microphone trigger with integrated waveform animation. States: idle, listening (agency red), processing (temporal blue), done, error. Waveform bars animate to real or simulated audio amplitude while listening; freeze and pulse during STT processing.

ConversationInteractivesince S22/Storybook ↗
import { VoiceInputButton } from "@nodus/design-system/patterns"
Loading demo…
Interactive Preview — StorybookOpen in Storybook ↗

Props

state
Type "idle" | "listening" | "processing" | "done" | "error"Default "idle"

Current voice capture state.

amplitudes
Type number[]Default

7 amplitude values 0–1 from real audio analysis. Falls back to simulation when omitted.

onStart
Type () => voidDefault

Called when user clicks to start recording.

onStop
Type () => voidDefault

Called when user clicks to stop recording.

errorMessage
Type stringDefault

Error message shown in error state.

disabled
Type booleanDefault false

Disable the button entirely.

label
Type stringDefault

Accessible label override.

Metadataidlelisteningprocessingdoneerrorsemantictypebordermotion
Design Rationale

This component was designed to express:

Explore Related

Was this helpful?