Installation
npm install @kuzenbo/core
Usage
import { Toolbar } from "@kuzenbo/core";
import { BoldIcon, ItalicIcon, UnderlineIcon } from "lucide-react";
function Example() {
return (
<Toolbar>
<Toolbar.Button aria-label="Bold">
<BoldIcon />
</Toolbar.Button>
<Toolbar.Button aria-label="Italic">
<ItalicIcon />
</Toolbar.Button>
<Toolbar.Separator />
<Toolbar.Button aria-label="Underline">
<UnderlineIcon />
</Toolbar.Button>
</Toolbar>
);
}
Props
size
'xs' | 'sm' | 'md' | 'lg' | 'xl'
default:"'md'"
The size of the toolbar and its children.
orientation
'horizontal' | 'vertical'
default:"'horizontal'"
The orientation of the toolbar.
Additional CSS classes to apply.
Whether the button is disabled.
Additional CSS classes to apply.
The URL the link points to.
Additional CSS classes to apply.
Additional CSS classes to apply.
Additional CSS classes to apply.
Additional CSS classes to apply.
Examples
Text Editor Toolbar
<Toolbar>
<Toolbar.Group>
<Toolbar.Button aria-label="Bold">
<BoldIcon />
</Toolbar.Button>
<Toolbar.Button aria-label="Italic">
<ItalicIcon />
</Toolbar.Button>
<Toolbar.Button aria-label="Underline">
<UnderlineIcon />
</Toolbar.Button>
</Toolbar.Group>
<Toolbar.Separator />
<Toolbar.Group>
<Toolbar.Button aria-label="Align left">
<AlignLeftIcon />
</Toolbar.Button>
<Toolbar.Button aria-label="Align center">
<AlignCenterIcon />
</Toolbar.Button>
<Toolbar.Button aria-label="Align right">
<AlignRightIcon />
</Toolbar.Button>
</Toolbar.Group>
</Toolbar>
import { DropdownMenu } from "@kuzenbo/core";
<Toolbar>
<Toolbar.Button>Action</Toolbar.Button>
<Toolbar.Separator />
<DropdownMenu>
<Toolbar.Button asChild>
<DropdownMenu.Trigger>
More
<ChevronDownIcon />
</DropdownMenu.Trigger>
</Toolbar.Button>
<DropdownMenu.Content>
<DropdownMenu.Item>Option 1</DropdownMenu.Item>
<DropdownMenu.Item>Option 2</DropdownMenu.Item>
</DropdownMenu.Content>
</DropdownMenu>
</Toolbar>
<Toolbar>
<Toolbar.Input placeholder="Search..." className="w-64" />
<Toolbar.Separator />
<Toolbar.Button>Search</Toolbar.Button>
</Toolbar>
Different Sizes
<div className="space-y-4">
<Toolbar size="sm">
<Toolbar.Button>Small</Toolbar.Button>
</Toolbar>
<Toolbar size="md">
<Toolbar.Button>Medium</Toolbar.Button>
</Toolbar>
<Toolbar size="lg">
<Toolbar.Button>Large</Toolbar.Button>
</Toolbar>
</div>
Vertical Orientation
<Toolbar orientation="vertical">
<Toolbar.Button aria-label="Cut">
<ScissorsIcon />
</Toolbar.Button>
<Toolbar.Button aria-label="Copy">
<CopyIcon />
</Toolbar.Button>
<Toolbar.Button aria-label="Paste">
<ClipboardIcon />
</Toolbar.Button>
</Toolbar>