Orb is the main orb-ui component. It can run in controlled mode with explicit state and volume props, richer signal objects, or through a provider adapter.
Props
States
Use these states consistently across providers so your product has one voice UI language even when the underlying SDK changes.
Themes
debug: visible state and start/stop controls while integrating.
circle: the primary animated voice orb.
bars: waveform-like audio activity.
cloud: a soft atmospheric sphere with opposing input/output scale response.
radial: a four-lobe field with an input-reactive membrane and output-reactive twist.
When an adapter or onStart/onStop handler is provided, visual themes include a <button type="button"> control with native keyboard activation. radial uses a separate phone button while the other clickable visuals use the artwork itself. If there is no visible label, pass aria-label.
The radial control’s cutout defaults to white. Set
--orb-ui-radial-control-surround through the typed style prop when the orb sits on another
surface:
Set interactive={false} when the orb is only a visual status surface. The adapter remains the
session controller, so external buttons can call its existing lifecycle methods.
Adapter interface
Adapters normalize provider SDK events into orb-ui signals. If a provider is not supported yet, use controlled mode first and turn that mapping into an adapter later.
Migrating callback-object adapters
orb-ui 0.5.0 removes the deprecated callback-object adapter API. Pass one complete signal to the
listener whenever state or volume changes.
Custom adapters should implement OrbAdapter; the removed AdapterCallbacks and
LegacyOrbAdapter types are no longer exported.
Last modified on July 16, 2026