Toolbar

A container for grouping a set of buttons and controls.

Accessibility guidelines

To ensure that toolbars are accessible and helpful, follow these guidelines:

  • Use inputs sparingly: Left and right arrow keys are used to both move the text insertion cursor in an input, and to navigate among controls in horizontal toolbars. When using an input in a horizontal toolbar, use only one and place it as the last element of the toolbar.

API reference

Import the component and assemble its parts:

Anatomy

Root

A container for grouping a set of controls, such as buttons, toggle groups, or menus. Renders a <div> element.

PropTypeDefault
cols

number

1

loop

boolean

true

orientation

'horizontal' | 'vertical'

'horizontal'

className

string | (state) => string

undefined

render

| React.ReactElement
| (props, state) => React.ReactElement

undefined

Attribute
Description
data-orientation
data-disabled

Button

A button that can be used as-is or as a trigger for other components. Renders a <button> element.

PropTypeDefault
focusableWhenDisabled

boolean

true

disabled

boolean

false

className

string | (state) => string

undefined

render

| React.ReactElement
| (props, state) => React.ReactElement

undefined

Attribute
Description
data-highlighted
data-orientation
data-disabled
data-focusable

A link component. Renders an <a> element.

PropTypeDefault
className

string | (state) => string

undefined

render

| React.ReactElement
| (props, state) => React.ReactElement

undefined

Attribute
Description
data-highlighted
data-orientation

Input

A native input element that integrates with Toolbar keyboard navigation. Renders an <input> element.

PropTypeDefault
focusableWhenDisabled

boolean

true

disabled

boolean

false

className

string | (state) => string

undefined

render

| React.ReactElement
| (props, state) => React.ReactElement

undefined

Attribute
Description
data-highlighted
data-orientation
data-disabled
data-focusable

Group

Groups several toolbar items or toggles. Renders a <div> element.

PropTypeDefault
disabled

boolean

false

className

string | (state) => string

undefined

render

| React.ReactElement
| (props, state) => React.ReactElement

undefined

Attribute
Description
data-orientation
data-disabled

Separator

A separator element accessible to screen readers. Renders a <div> element.

PropTypeDefault
className

string | (state) => string

undefined

render

| React.ReactElement
| (props, state) => React.ReactElement

undefined

Attribute
Description
data-orientation

Examples

Using with Menu

All Base UI popup components that provide a Trigger component can be integrated with a toolbar by passing the trigger to Toolbar.Button with the render prop:

Using popups with toolbar

This applies to AlertDialog, Dialog, Menu, Popover and Select.

Using with Tooltip

Unlike other popups, the toolbar item should be passed to the render prop of Tooltip.Trigger:

Using popups with toolbar

Using with NumberField

To use a NumberField in the toolbar, pass NumberField.Input to Toolbar.Input using the render prop:

Using NumberField with toolbar