Components
- AccordionNew
- Alert
- Alert DialogNew
- AutocompleteNew
- AvatarNew
- Badge
- Breadcrumb
- Button
- CalendarNew
- CardNew
- Checkbox
- Checkbox GroupNew
- CollapsibleNew
- ComboboxNew
- CommandNew
- Context MenuNew
- Date PickerNew
- DialogNew
- DrawerNew
- EmptyNew
- FieldNew
- FieldsetNew
- FormNew
- FrameNew
- GroupNew
- Input
- Input GroupNew
- KbdNew
- Label
- MenuNew
- MeterNew
- Number Field
- OTP FieldNew
- Pagination
- PopoverNew
- Preview CardNew
- Progress
- Radio Group
- Scroll AreaNew
- Select
- Separator
- SheetNew
- SkeletonNew
- Slider
- Spinner
- StepperNew
- Switch
- Table
- TabsNew
- Textarea
- ToastNew
- ToggleNew
- Toggle GroupNew
- ToolbarNew
- Tooltip
Toggle Group
Provides a shared state to a series of toggle buttons.
import { BoldIcon, ItalicIcon, UnderlineIcon } from "lucide-react";
import { ToggleGroup, ToggleGroupItem } from "mako-ui/components/toggle-group";
export default function Particle() {
return (
<ToggleGroup defaultValue={["bold"]}>
<ToggleGroupItem aria-label="Toggle bold" value="bold">
<BoldIcon />
</ToggleGroupItem>
<ToggleGroupItem aria-label="Toggle italic" value="italic">
<ItalicIcon />
</ToggleGroupItem>
<ToggleGroupItem aria-label="Toggle underline" value="underline">
<UnderlineIcon />
</ToggleGroupItem>
</ToggleGroup>
);
}
Usage
import { ToggleGroup, ToggleGroupItem } from "mako-ui/components/toggle-group"<ToggleGroup>
<ToggleGroupItem>Bold</ToggleGroupItem>
<ToggleGroupItem>Italic</ToggleGroupItem>
<ToggleGroupItem>Underline</ToggleGroupItem>
</ToggleGroup>API Reference
ToggleGroup
Root component. Provides shared variant and size to child toggles via context.
| Prop | Type | Default | Description |
|---|---|---|---|
variant | "default" | "outline" | "default" | Controls the styling of all child toggles |
size | "default" | "sm" | "lg" | "default" | Controls the size of all child toggles |
ToggleGroupItem
Individual toggle button within the group. Inherits variant and size from parent ToggleGroup context.
ToggleGroupSeparator
Visual separator between toggle buttons.
Examples
Small Toggles
import { BoldIcon, ItalicIcon, UnderlineIcon } from "lucide-react";
import { ToggleGroup, ToggleGroupItem } from "mako-ui/components/toggle-group";
export default function Particle() {
return (
<ToggleGroup defaultValue={["bold"]} size="sm">
<ToggleGroupItem aria-label="Toggle bold" value="bold">
<BoldIcon />
</ToggleGroupItem>
<ToggleGroupItem aria-label="Toggle italic" value="italic">
<ItalicIcon />
</ToggleGroupItem>
<ToggleGroupItem aria-label="Toggle underline" value="underline">
<UnderlineIcon />
</ToggleGroupItem>
</ToggleGroup>
);
}
Large Toggles
import { BoldIcon, ItalicIcon, UnderlineIcon } from "lucide-react";
import { ToggleGroup, ToggleGroupItem } from "mako-ui/components/toggle-group";
export default function Particle() {
return (
<ToggleGroup defaultValue={["bold"]} size="lg">
<ToggleGroupItem aria-label="Toggle bold" value="bold">
<BoldIcon />
</ToggleGroupItem>
<ToggleGroupItem aria-label="Toggle italic" value="italic">
<ItalicIcon />
</ToggleGroupItem>
<ToggleGroupItem aria-label="Toggle underline" value="underline">
<UnderlineIcon />
</ToggleGroupItem>
</ToggleGroup>
);
}
With Outline Toggles
import { BoldIcon, ItalicIcon, UnderlineIcon } from "lucide-react";
import {
ToggleGroup,
ToggleGroupItem,
ToggleGroupSeparator,
} from "mako-ui/components/toggle-group";
export default function Particle() {
return (
<ToggleGroup defaultValue={["bold"]} variant="outline">
<ToggleGroupItem aria-label="Toggle bold" value="bold">
<BoldIcon />
</ToggleGroupItem>
<ToggleGroupSeparator />
<ToggleGroupItem aria-label="Toggle italic" value="italic">
<ItalicIcon />
</ToggleGroupItem>
<ToggleGroupSeparator />
<ToggleGroupItem aria-label="Toggle underline" value="underline">
<UnderlineIcon />
</ToggleGroupItem>
</ToggleGroup>
);
}
Vertical
import { BoldIcon, ItalicIcon, UnderlineIcon } from "lucide-react";
import {
ToggleGroup,
ToggleGroupItem,
ToggleGroupSeparator,
} from "mako-ui/components/toggle-group";
export default function Particle() {
return (
<ToggleGroup
defaultValue={["bold"]}
orientation="vertical"
variant="outline"
>
<ToggleGroupItem aria-label="Toggle bold" value="bold">
<BoldIcon />
</ToggleGroupItem>
<ToggleGroupSeparator orientation="horizontal" />
<ToggleGroupItem aria-label="Toggle italic" value="italic">
<ItalicIcon />
</ToggleGroupItem>
<ToggleGroupSeparator orientation="horizontal" />
<ToggleGroupItem aria-label="Toggle underline" value="underline">
<UnderlineIcon />
</ToggleGroupItem>
</ToggleGroup>
);
}
Disabled
import { BoldIcon, ItalicIcon, UnderlineIcon } from "lucide-react";
import { ToggleGroup, ToggleGroupItem } from "mako-ui/components/toggle-group";
export default function Particle() {
return (
<ToggleGroup defaultValue={["bold"]} disabled>
<ToggleGroupItem aria-label="Toggle bold" value="bold">
<BoldIcon />
</ToggleGroupItem>
<ToggleGroupItem aria-label="Toggle italic" value="italic">
<ItalicIcon />
</ToggleGroupItem>
<ToggleGroupItem aria-label="Toggle underline" value="underline">
<UnderlineIcon />
</ToggleGroupItem>
</ToggleGroup>
);
}
With Disabled Toggle
import { BoldIcon, ItalicIcon, UnderlineIcon } from "lucide-react";
import { ToggleGroup, ToggleGroupItem } from "mako-ui/components/toggle-group";
export default function ParticleItem() {
return (
<ToggleGroup defaultValue={["bold"]}>
<ToggleGroupItem aria-label="Toggle bold" value="bold">
<BoldIcon />
</ToggleGroupItem>
<ToggleGroupItem aria-label="Toggle italic" disabled value="italic">
<ItalicIcon />
</ToggleGroupItem>
<ToggleGroupItem aria-label="Toggle underline" value="underline">
<UnderlineIcon />
</ToggleGroupItem>
</ToggleGroup>
);
}
Multiple selection
import { BoldIcon, ItalicIcon, UnderlineIcon } from "lucide-react";
import { ToggleGroup, ToggleGroupItem } from "mako-ui/components/toggle-group";
export default function Particle() {
return (
<ToggleGroup defaultValue={["bold"]} multiple>
<ToggleGroupItem aria-label="Toggle bold" value="bold">
<BoldIcon />
</ToggleGroupItem>
<ToggleGroupItem aria-label="Toggle italic" value="italic">
<ItalicIcon />
</ToggleGroupItem>
<ToggleGroupItem aria-label="Toggle underline" value="underline">
<UnderlineIcon />
</ToggleGroupItem>
</ToggleGroup>
);
}
With Tooltips
import { BoldIcon, ItalicIcon, UnderlineIcon } from "lucide-react";
import { ToggleGroup, ToggleGroupItem } from "mako-ui/components/toggle-group";
import {
Tooltip,
TooltipPopup,
TooltipProvider,
TooltipTrigger,
} from "mako-ui/components/tooltip";
export default function Particle() {
return (
<TooltipProvider>
<ToggleGroup defaultValue={["bold"]} multiple>
<Tooltip>
<TooltipTrigger
render={<ToggleGroupItem aria-label="Toggle bold" value="bold" />}
>
<BoldIcon />
</TooltipTrigger>
<TooltipPopup>Bold</TooltipPopup>
</Tooltip>
<Tooltip>
<TooltipTrigger
render={
<ToggleGroupItem aria-label="Toggle italic" value="italic" />
}
>
<ItalicIcon />
</TooltipTrigger>
<TooltipPopup>Italic</TooltipPopup>
</Tooltip>
<Tooltip>
<TooltipTrigger
render={
<ToggleGroupItem
aria-label="Toggle underline"
value="underline"
/>
}
>
<UnderlineIcon />
</TooltipTrigger>
<TooltipPopup>Underline</TooltipPopup>
</Tooltip>
</ToggleGroup>
</TooltipProvider>
);
}