import { AlignCenter, AlignLeft, AlignRight } from "lucide-react";
import {
ToggleGroup,
ToggleGroupItem,
} from "@/components/ui/toggle-group";
export function ToggleGroupDemo() {
return (
<ToggleGroup variant="outline">
<ToggleGroupItem value="left" aria-label="Toggle left">
<AlignLeft />
</ToggleGroupItem>
<ToggleGroupItem value="center" aria-label="Toggle center">
<AlignCenter />
</ToggleGroupItem>
<ToggleGroupItem value="right" aria-label="Toggle right">
<AlignRight />
</ToggleGroupItem>
</ToggleGroup>
);
}Installation
npx shadcn@latest add @eo-n/toggle-groupUsage
Import all parts and piece them together.
import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group";<ToggleGroup>
<ToggleGroupItem value="1">Option 1</ToggleGroupItem>
<ToggleGroupItem value="2">Option 2</ToggleGroupItem>
<ToggleGroupItem value="3">Option 3</ToggleGroupItem>
</ToggleGroup>Examples
Default
import { AlignCenter, AlignLeft, AlignRight } from "lucide-react";
import {
ToggleGroup,
ToggleGroupItem,
} from "@/components/ui/toggle-group";
export function ToggleGroupDemo() {
return (
<ToggleGroup variant="outline">
<ToggleGroupItem value="left" aria-label="Toggle left">
<AlignLeft />
</ToggleGroupItem>
<ToggleGroupItem value="center" aria-label="Toggle center">
<AlignCenter />
</ToggleGroupItem>
<ToggleGroupItem value="right" aria-label="Toggle right">
<AlignRight />
</ToggleGroupItem>
</ToggleGroup>
);
}Vertical Orientation
import { AlignCenter, AlignLeft, AlignRight } from "lucide-react";
import {
ToggleGroup,
ToggleGroupItem,
} from "@/components/ui/toggle-group";
export function ToggleGroupVertical() {
return (
<ToggleGroup variant="outline" orientation="vertical">
<ToggleGroupItem value="left" aria-label="Toggle left">
<AlignLeft />
</ToggleGroupItem>
<ToggleGroupItem value="center" aria-label="Toggle center">
<AlignCenter />
</ToggleGroupItem>
<ToggleGroupItem value="right" aria-label="Toggle right">
<AlignRight />
</ToggleGroupItem>
</ToggleGroup>
);
}Outline
import { AlignCenter, AlignLeft, AlignRight } from "lucide-react";
import {
ToggleGroup,
ToggleGroupItem,
} from "@/components/ui/toggle-group";
export function ToggleGroupOutline() {
return (
<ToggleGroup variant="outline">
<ToggleGroupItem value="left" aria-label="Toggle left">
<AlignLeft />
</ToggleGroupItem>
<ToggleGroupItem value="center" aria-label="Toggle center">
<AlignCenter />
</ToggleGroupItem>
<ToggleGroupItem value="right" aria-label="Toggle right">
<AlignRight />
</ToggleGroupItem>
</ToggleGroup>
);
}Multiple
import { Bold, Italic, Underline } from "lucide-react";
import {
ToggleGroup,
ToggleGroupItem,
} from "@/components/ui/toggle-group";
export function ToggleGroupMultiple() {
return (
<ToggleGroup multiple>
<ToggleGroupItem value="bold" aria-label="Toggle bold">
<Bold />
</ToggleGroupItem>
<ToggleGroupItem value="italic" aria-label="Toggle italic">
<Italic />
</ToggleGroupItem>
<ToggleGroupItem value="underline" aria-label="Toggle underline">
<Underline />
</ToggleGroupItem>
</ToggleGroup>
);
}Large
import { AlignCenter, AlignLeft, AlignRight } from "lucide-react";
import {
ToggleGroup,
ToggleGroupItem,
} from "@/components/ui/toggle-group";
export function ToggleGroupLarge() {
return (
<ToggleGroup size="lg">
<ToggleGroupItem value="left" aria-label="Toggle left">
<AlignLeft />
</ToggleGroupItem>
<ToggleGroupItem value="center" aria-label="Toggle center">
<AlignCenter />
</ToggleGroupItem>
<ToggleGroupItem value="right" aria-label="Toggle right">
<AlignRight />
</ToggleGroupItem>
</ToggleGroup>
);
}Small
import { AlignCenter, AlignLeft, AlignRight } from "lucide-react";
import {
ToggleGroup,
ToggleGroupItem,
} from "@/components/ui/toggle-group";
export function ToggleGroupSmall() {
return (
<ToggleGroup size="sm">
<ToggleGroupItem value="left" aria-label="Toggle left">
<AlignLeft />
</ToggleGroupItem>
<ToggleGroupItem value="center" aria-label="Toggle center">
<AlignCenter />
</ToggleGroupItem>
<ToggleGroupItem value="right" aria-label="Toggle right">
<AlignRight />
</ToggleGroupItem>
</ToggleGroup>
);
}Disabled
import { AlignCenter, AlignLeft, AlignRight } from "lucide-react";
import {
ToggleGroup,
ToggleGroupItem,
} from "@/components/ui/toggle-group";
export function ToggleGroupDisabled() {
return (
<ToggleGroup disabled variant="outline">
<ToggleGroupItem value="left" aria-label="Toggle left">
<AlignLeft />
</ToggleGroupItem>
<ToggleGroupItem value="center" aria-label="Toggle center">
<AlignCenter />
</ToggleGroupItem>
<ToggleGroupItem value="right" aria-label="Toggle right">
<AlignRight />
</ToggleGroupItem>
</ToggleGroup>
);
}