Toggle

A two-state button that stays pressed until pressed again.

View as Markdown
<Toggle aria-label="Toggle bold" size="icon">  <HugeiconsIcon icon={TextBoldIcon} /></Toggle>

Installation

$ npx shadcn@latest add @constella/toggle

Usage

import { Toggle } from "@/components/primitives/toggle";
<Toggle>Toggle</Toggle>

Variant

Use the variant prop for an outline toggle. Pressed, both fill.

VariantAt rest
defaultNo fill
outlineA border edge
<Toggle variant="outline">Underline</Toggle>

Size

Use the size prop to match the controls beside it, with Button's sizes. Use an icon size for a square, icon-only toggle.

SizeIcon sizeHeight
smicon-sm28px
defaulticon32px
lgicon-lg36px
<Toggle size="icon-sm" aria-label="Toggle italic">  …</Toggle>

Disabled

<Toggle disabled>…</Toggle>

API Reference

PartAdds
Togglevariant: "default" or "outline"; size: "sm", "default", "lg", "icon-sm", "icon" or "icon-lg"

Toggle takes sx, applied last. toggleStyles gives its styles to another element. For the rest, see Base UI Toggle.