Bar visualizer

A React component in Beamline's Voice & audio category.

A row of bars that says what a voice agent is doing: a sweep while connecting, the person's voice while listening, a slow breath while thinking, the agent's voice while talking. Bars move only while there is something to show.

Use it for

  • The state indicator of a voice agent: a call screen, a voice button, a conversation bar.
  • Showing that the agent hears you, without a full waveform.

Not for

Anatomy

  • bars (5–40)
  • state caption (optional, visible)
  • reduced-motion level number

Variants

  • align: center, bottom
  • size: sm, md, lg

States

  • idle (still)
  • connecting (a highlight sweeps across)
  • listening (follows the source)
  • thinking (bars breathe together)
  • talking (follows the source, accent)
  • off screen (stopped)
  • reduced motion (still bars by state, a dB number while sound plays)

Keyboard

  • None: a picture of the agent's state (role img named by the state).

Motion

Bars are transforms written straight to the DOM each frame while listening or talking, on screen; connecting and thinking are compositor CSS loops tied to the state; idle runs nothing. Under reduced motion nothing loops: connecting holds every other bar raised, thinking an even row in the accent, both with the state in words; listening and talking show a dB number.

Props

PropTypeDefaultDescription
statenull | "connecting" | "listening" | "thinking" | "talking"nullThe same vocabulary as Orb and useVoiceAgent's agentState.
sourceMediaStream | LevelSource | (() => number) | null—Whose voice to draw: the person's while listening, the agent's while talking.
barsnumber15
align"center" | "bottom""center"
size"sm" | "md" | "lg""md"Heights 24 / 48 / 96 px.
showLabelboolean—A visible caption with the state in words.
labelstring"Agent"Who the bars are about; the accessible name reads "Agent, listening".
classNamesBarVisualizerClassNames—
style / refCSSProperties / native Ref—

Import

import { BarVisualizer } from "@/components/bar-visualizer/bar-visualizer";

Get it

Bar visualizer is part of Beamline: 190 React components and screens your coding agent (Claude Code, Codex, Cursor or any MCP client) installs into your app through Beamline's MCP server, as a ready-built package or as plain React source you can change. $49 one payment (regular $200), no subscription, a year of updates, one licence for your whole team. Get Beamline · Connect your agent

More in Voice & audio

  • Audio player: One audio element and its controls: play with a loading state, a scrub bar with time, skip, speed and a playlist whose rows play into the same player…
  • Conversation bar: The control bar of a voice call with an agent: one button to call and hang up, the agent's state as bars, a call timer, mute, and typing when talking is…
  • Live waveform: Loudness drawn as it happens: a scrolling history of the microphone (or any live source) or its spectrum, a calm processing state while words are…
  • Matrix: A dot-matrix display: animated frame sets (loading, pulse, wave, syncing), text and digits in a 5×7 font, or a VU meter of levels or a live source. One…
  • Microphone selector: Choose the microphone, test it with a live level and mute it, with every permission and device state spelled out: not yet allowed, blocked (and how to…
  • Orb: The agent's presence: a thin ring of light around a lens in the brand's hue that holds still at rest, sends an arc round while thinking and widens with…
  • Scrub bar: A seekable timeline for audio or video: elapsed and total time, what has loaded, chapter marks, a time preview under the pointer, and the full keyboard…
  • Speech input: A text field you can speak into: the mic dictates through any speech-to-text provider, the phrase being heard shows apart from the finished words, and…
  • Transcript viewer: A recording and its words together: the spoken word lights up as it plays and the transcript follows it, any word or paragraph time plays from there…
  • Voice button: The control that starts and stops talking: click to toggle or hold to talk (pointer, Space, Enter or a global shortcut), with a live level while…
  • Voice picker: Choose a text-to-speech voice from a searchable list (name, accent, tone, use) and hear it first: each voice has its own orb, previews play one at a time…
  • Waveform: The shape of a recording: one bar per slice of loudness, fitted to any width, with the played part in the accent, unmeasured slices hatched and a loading…