The Toolbar component provides a container for grouping related action buttons and controls.
Installation
import { Toolbar } from "@craftdotui/baseui/components/toolbar";
This component is built on @base-ui/react’s Toolbar primitive. It provides an accessible container for toolbar controls.
<Toolbar>
<Button size="icon" variant="ghost">
<Bold />
</Button>
<Button size="icon" variant="ghost">
<Italic />
</Button>
<Button size="icon" variant="ghost">
<Underline />
</Button>
</Toolbar>
Features
- Horizontal button grouping
- Keyboard navigation
- Separators for logical groups
- Toggle button support
- Accessible toolbar pattern
Examples
Text Editor Toolbar
import { Bold, Italic, Underline, AlignLeft, AlignCenter, AlignRight } from "lucide-react";
<Toolbar className="flex gap-1 border rounded-md p-1">
<div className="flex gap-0.5">
<Toggle size="icon">
<Bold />
</Toggle>
<Toggle size="icon">
<Italic />
</Toggle>
<Toggle size="icon">
<Underline />
</Toggle>
</div>
<Separator orientation="vertical" />
<div className="flex gap-0.5">
<Toggle size="icon">
<AlignLeft />
</Toggle>
<Toggle size="icon">
<AlignCenter />
</Toggle>
<Toggle size="icon">
<AlignRight />
</Toggle>
</div>
</Toolbar>
With Toggle Groups
<Toolbar>
<ToggleGroup type="single">
<ToggleGroupItem value="bold" size="icon">
<Bold />
</ToggleGroupItem>
<ToggleGroupItem value="italic" size="icon">
<Italic />
</ToggleGroupItem>
<ToggleGroupItem value="underline" size="icon">
<Underline />
</ToggleGroupItem>
</ToggleGroup>
</Toolbar>
With Dropdowns
<Toolbar>
<Button size="sm" variant="ghost">File</Button>
<Button size="sm" variant="ghost">Edit</Button>
<Button size="sm" variant="ghost">View</Button>
<Separator orientation="vertical" />
<Button size="icon" variant="ghost">
<Save />
</Button>
<Button size="icon" variant="ghost">
<Undo />
</Button>
<Button size="icon" variant="ghost">
<Redo />
</Button>
</Toolbar>
Accessibility
- Built on @base-ui/react for ARIA compliance
- ARIA toolbar role
- Keyboard navigation (Arrow keys, Home, End)
- Focus management
- Screen reader support