Voice orb UI example for React
The orb is the visible state layer for a voice agent. It should communicate activity quickly and stay out of the way while a user is talking.
import { Orb } from 'orb-ui'
export function VoiceOrbExample() {
return <Orb state="listening" volume={0.45} theme="circle" size={260} />
}
Provider-backed orb
Use an adapter when the provider SDK owns the session.
import Vapi from '@vapi-ai/web'
import { Orb } from 'orb-ui'
import { createVapiAdapter } from 'orb-ui/adapters'
const vapi = new Vapi('your-public-key')
const adapter = createVapiAdapter(vapi, {
assistantId: 'your-assistant-id',
})
export function ProviderOrb() {
return <Orb adapter={adapter} theme="circle" aria-label="Start voice assistant" />
}
Custom controlled orb
Use controlled mode when a custom stack supplies state and volume.
export function CustomOrb({ voiceState, outputLevel }) {
return <Orb state={voiceState} volume={outputLevel} theme="bars" />
}
Design notes
- Do not animate aggressively while idle.
- Make listening and speaking visually distinct.
- Keep error states obvious but not alarming.
- Pair the orb with a transcript or status label when users need more precision.
Last modified on June 5, 2026