Installation
npm install @kuzenbo/core
Usage
import { ActionIcon } from "@kuzenbo/core";
import { PlusIcon } from "lucide-react";
function Example() {
return (
<ActionIcon aria-label="Add item">
<PlusIcon />
</ActionIcon>
);
}
Props
variant
'default' | 'outline' | 'ghost' | 'link' | 'danger' | 'secondary' | 'success' | 'warning' | 'info'
default:"'default'"
The visual style variant.
size
'xs' | 'sm' | 'md' | 'lg' | 'xl'
default:"'md'"
The size of the action icon.
Whether to show a loading spinner.
Whether the button is disabled.
Additional CSS classes to apply.
Examples
Basic Usage
<ActionIcon aria-label="Settings">
<SettingsIcon />
</ActionIcon>
Variants
<div className="flex gap-2">
<ActionIcon variant="default">
<PlusIcon />
</ActionIcon>
<ActionIcon variant="outline">
<PlusIcon />
</ActionIcon>
<ActionIcon variant="ghost">
<PlusIcon />
</ActionIcon>
<ActionIcon variant="danger">
<TrashIcon />
</ActionIcon>
</div>
Sizes
<div className="flex items-center gap-2">
<ActionIcon size="xs">
<PlusIcon />
</ActionIcon>
<ActionIcon size="sm">
<PlusIcon />
</ActionIcon>
<ActionIcon size="md">
<PlusIcon />
</ActionIcon>
<ActionIcon size="lg">
<PlusIcon />
</ActionIcon>
<ActionIcon size="xl">
<PlusIcon />
</ActionIcon>
</div>
Loading State
const [loading, setLoading] = useState(false);
<ActionIcon isLoading={loading} onClick={() => setLoading(true)}>
<SaveIcon />
</ActionIcon>
Disabled State
<ActionIcon disabled>
<DownloadIcon />
</ActionIcon>
As Link
<ActionIcon asChild>
<a href="/settings" aria-label="Settings">
<SettingsIcon />
</a>
</ActionIcon>
import { ButtonGroup } from "@kuzenbo/core";
<ButtonGroup>
<ActionIcon aria-label="Align left">
<AlignLeftIcon />
</ActionIcon>
<ActionIcon aria-label="Align center">
<AlignCenterIcon />
</ActionIcon>
<ActionIcon aria-label="Align right">
<AlignRightIcon />
</ActionIcon>
</ButtonGroup>
import { Tooltip } from "@kuzenbo/core";
<Tooltip>
<Tooltip.Trigger asChild>
<ActionIcon aria-label="Delete">
<TrashIcon />
</ActionIcon>
</Tooltip.Trigger>
<Tooltip.Content>Delete item</Tooltip.Content>
</Tooltip>