Skip to main content
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