ToggleGroup

A set of two-state buttons that share a single value. Use type="single" for mutually-exclusive selection (a radio-like toolbar) or type="multiple" for independent toggles (formatting controls).

Single selection (alignment)

<ToggleGroup type="single" defaultValue="left">
  <ToggleGroupItem value="left" aria-label="Align left"><AlignLeft /></ToggleGroupItem>
  <ToggleGroupItem value="center" aria-label="Align center"><AlignCenter /></ToggleGroupItem>
  <ToggleGroupItem value="right" aria-label="Align right"><AlignRight /></ToggleGroupItem>
</ToggleGroup>

Multiple selection (text formatting)

<ToggleGroup type="multiple" defaultValue={["bold"]}>
  <ToggleGroupItem value="bold" aria-label="Bold"><Bold /></ToggleGroupItem>
  <ToggleGroupItem value="italic" aria-label="Italic"><Italic /></ToggleGroupItem>
  <ToggleGroupItem value="underline" aria-label="Underline"><Underline /></ToggleGroupItem>
</ToggleGroup>

Outline variant

<ToggleGroup type="single" variant="outline" defaultValue="center">
  <ToggleGroupItem value="left" aria-label="Align left"><AlignLeft /></ToggleGroupItem>
  <ToggleGroupItem value="center" aria-label="Align center"><AlignCenter /></ToggleGroupItem>
  <ToggleGroupItem value="right" aria-label="Align right"><AlignRight /></ToggleGroupItem>
</ToggleGroup>

Sizes

<>
  <ToggleGroup type="single" size="sm" defaultValue="left">…</ToggleGroup>
  <ToggleGroup type="single" size="md" defaultValue="left">…</ToggleGroup>
  <ToggleGroup type="single" size="lg" defaultValue="left">…</ToggleGroup>
</>

Disabled item

<ToggleGroup type="single" defaultValue="left">
  <ToggleGroupItem value="left" aria-label="Align left"><AlignLeft /></ToggleGroupItem>
  <ToggleGroupItem value="center" aria-label="Align center" disabled><AlignCenter /></ToggleGroupItem>
  <ToggleGroupItem value="right" aria-label="Align right"><AlignRight /></ToggleGroupItem>
</ToggleGroup>

Props

PropTypeDefault
type"single" | "multiple"
variant"default" | "outline""default"
size"sm" | "md" | "lg""md"
value / defaultValuestring | string[]
onValueChange(value: string | string[]) => void
disabledbooleanfalse
…restRadix ToggleGroup.Root props

Source

packages/react/src/components/toggle.tsx · Figma node 2819:31631