Components
Loading preview...
HeroUI v3 ToggleButtonGroup — single/multiple selection toggle buttons with sizes, orientation, detached and controlled modes.
@reapollo
npx shadcn@latest add https://21st.dev/r/larsen66/heroui-toggle-button-group"use client"
import { Bold, Italic, Strikethrough, Underline } from "lucide-react"
import {
ToggleButtonGroup,
ToggleButton,
} from "@/components/ui/heroui-toggle-button-group"
const buttons = (
<>
<ToggleButton isIconOnly aria-label="Bold" id="bold">
<Bold />
</ToggleButton>
<ToggleButton isIconOnly aria-label="Italic" id="italic">
<ToggleButtonGroup.Separator />
<Italic />
</ToggleButton>
<ToggleButton isIconOnly aria-label="Underline" id="underline">
<ToggleButtonGroup.Separator />
<Underline />
</ToggleButton>
<ToggleButton isIconOnly aria-label="Strikethrough" id="strikethrough">
<ToggleButtonGroup.Separator />
<Strikethrough />
</ToggleButton>
</>
)
export default function Sizes() {
return (
<div className="flex flex-col gap-6">
<div className="flex flex-col gap-2">
<span className="text-sm text-muted-foreground">Small</span>
<ToggleButtonGroup selectionMode="multiple" size="sm">
{buttons}
</ToggleButtonGroup>
</div>
<div className="flex flex-col gap-2">
<span className="text-sm text-muted-foreground">Medium (default)</span>
<ToggleButtonGroup selectionMode="multiple" size="md">
{buttons}
</ToggleButtonGroup>
</div>
<div className="flex flex-col gap-2">
<span className="text-sm text-muted-foreground">Large</span>
<ToggleButtonGroup selectionMode="multiple" size="lg">
{buttons}
</ToggleButtonGroup>
</div>
</div>
)
}