Toggle Group
여러 토글 버튼을 그룹으로 묶어 관리하는 컴포넌트
Single Selection
하나만 선택 가능한 토글 그룹입니다.
tsx
<ToggleGroup type="single" defaultValue="center">
<ToggleGroupItem value="left" aria-label="Align left">
<AlignLeft className="size-4" />
</ToggleGroupItem>
<ToggleGroupItem value="center" aria-label="Align center">
<AlignCenter className="size-4" />
</ToggleGroupItem>
<ToggleGroupItem value="right" aria-label="Align right">
<AlignRight className="size-4" />
</ToggleGroupItem>
</ToggleGroup>Multiple Selection
여러 개를 선택할 수 있는 토글 그룹입니다.
tsx
<ToggleGroup type="multiple">
<ToggleGroupItem value="bold" aria-label="Toggle bold">
<Bold className="size-4" />
</ToggleGroupItem>
<ToggleGroupItem value="italic" aria-label="Toggle italic">
<Italic className="size-4" />
</ToggleGroupItem>
<ToggleGroupItem value="underline" aria-label="Toggle underline">
<Underline className="size-4" />
</ToggleGroupItem>
</ToggleGroup>Variants
두 가지 variant를 제공합니다.
tsx
<ToggleGroup type="single" variant="default">
...
</ToggleGroup>
<ToggleGroup type="single" variant="outline">
...
</ToggleGroup>Sizes
세 가지 크기를 제공합니다.
tsx
<ToggleGroup type="single" size="sm">...</ToggleGroup>
<ToggleGroup type="single" size="default">...</ToggleGroup>
<ToggleGroup type="single" size="lg">...</ToggleGroup>Disabled
개별 항목 또는 전체를 비활성화할 수 있습니다.
tsx
<ToggleGroup type="single" disabled>
<ToggleGroupItem value="bold" aria-label="Toggle bold">
<Bold className="size-4" />
</ToggleGroupItem>
<ToggleGroupItem value="italic" aria-label="Toggle italic">
<Italic className="size-4" />
</ToggleGroupItem>
</ToggleGroup>Usage
tsx
import { ToggleGroup, ToggleGroupItem } from '@gpters-internal/ui';
import { AlignLeft, AlignCenter, AlignRight } from 'lucide-react';
function Example() {
return (
<ToggleGroup
type="single"
defaultValue="center"
onValueChange={(value) => console.log(value)}
>
<ToggleGroupItem value="left" aria-label="Align left">
<AlignLeft className="size-4" />
</ToggleGroupItem>
<ToggleGroupItem value="center" aria-label="Align center">
<AlignCenter className="size-4" />
</ToggleGroupItem>
<ToggleGroupItem value="right" aria-label="Align right">
<AlignRight className="size-4" />
</ToggleGroupItem>
</ToggleGroup>
);
}