Concrete
control
Component

Toolbar

Atomic toolbar with quiet icon controls, optional chip appearance, tooltip shortcuts, roving arrow-key focus, selected state, and pressed feedback.

Toolbar is for quiet clustered controls. Use icon or subtle appearance for tools, and reserve chip appearance for true labeled toggle choices.

Playground

Props in the URL.

Controls update query params directly. Complex slots use curated fixtures so component states stay deterministic, linkable, and screenshot-ready.

Loading playground.
States

Rendered matrix.

Every state maps to the same component render route through the `state` query param.

Default

Grouped controls with tooltip and shortcut affordances.

/render state
Selected

Selected and keyboard-pressed states for mode controls.

/render state
Compact

Dense rail suitable for editors, inspectors, and composers.

/render state
Props

Public contract.

NameTypeDefaultDescription
labelstringToolbarAccessible toolbar label.
compactbooleanfalseTightens the rail for dense product surfaces.
ToolbarButton.appearance'icon' | 'subtle' | 'chip'iconVisual role for the control.
ToolbarButton.iconIconName-Optional tool glyph.
ToolbarButton.shortcutreadonly string[]-Tooltip or inline shortcut hints.
ToolbarButton.tooltipPlacement'top' | 'right' | 'bottom' | 'left'topTooltip placement for cramped surfaces.
ToolbarButton.selectedbooleanfalsePersistent selected mode state.
ToolbarButton.defaultSelectedbooleanfalseInitial selected state for uncontrolled toggle chips.
ToolbarButton.toggleablebooleanfalseAllows click to update uncontrolled selected state.
ToolbarButton.onSelectedChange(selected: boolean) => void-Back-propagates local toggle state for controlled toolbars.
ToolbarButton.pressedbooleanfalseTransient keyboard activation state.
ToolbarButton.showLabelboolean-Shows the label beside the icon. Defaults to true only for chip appearance or text-only controls.
childrenReactNode-Toolbar groups, buttons, and separators.