ComponentsToolbar

Toolbar

A container for grouping a set of controls, such as buttons, toggle groups or dropdown menus.


import { LinkButton } from '@immit/ui/link-button'
import {
  Toolbar,
  ToolbarButton,
  ToolbarSeparator,
  ToolbarToggleGroup,
  ToolbarToggleItem
} from '@immit/ui/toolbar'
import * as RadixToolbar from '@radix-ui/react-toolbar'
import {
  AlignCenter,
  AlignLeft,
  AlignRight,
  Bold,
  Italic,
  Strikethrough
} from 'lucide-react'
 
export function ToolbarDemo() {
  return (
    <Toolbar
      aria-label="Formatting options"
      className="bg-muted gap-2 rounded-md border p-2"
    >
      <ToolbarToggleGroup
        type="multiple"
        aria-label="Text formatting"
        className="space-x-1"
      >
        <ToolbarToggleItem value="bold" aria-label="Bold">
          <Bold size={16} />
        </ToolbarToggleItem>
        <ToolbarToggleItem value="italic" aria-label="Italic">
          <Italic size={16} />
        </ToolbarToggleItem>
        <ToolbarToggleItem value="strikethrough" aria-label="Strike through">
          <Strikethrough size={16} />
        </ToolbarToggleItem>
      </ToolbarToggleGroup>
      <ToolbarSeparator orientation="vertical" />
      <ToolbarToggleGroup
        type="single"
        defaultValue="center"
        aria-label="Text alignment"
        className="space-x-1"
      >
        <ToolbarToggleItem value="left" aria-label="Left aligned">
          <AlignLeft size={16} />
        </ToolbarToggleItem>
        <ToolbarToggleItem value="center" aria-label="Center aligned">
          <AlignCenter size={16} />
        </ToolbarToggleItem>
        <ToolbarToggleItem value="right" aria-label="Right aligned">
          <AlignRight size={16} />
        </ToolbarToggleItem>
      </ToolbarToggleGroup>
      <ToolbarSeparator orientation="vertical" />
      <RadixToolbar.Link asChild>
        <LinkButton href="#" size="sm" variant="ghost">
          Edited 2 hours ago
        </LinkButton>
      </RadixToolbar.Link>
      <ToolbarButton className="ml-auto" size="sm" variant="ghost">
        Share
      </ToolbarButton>
    </Toolbar>
  )
}