Toggle Button

A toggle button allows a user to toggle a selection on or off.

<ToggleButton isIconOnly aria-label="Toggle pin">
  <PinIcon className="rotate-45" />
</ToggleButton>

Installation

npx shadcn@latest add @dotui/toggle-button

Usage

Use toggle buttons to allow users to toggle a selection on or off, like pinning or starring an item.

import { PinIcon } from "lucide-react";
import { ToggleButton } from "@/components/ui/toggle-button";
<ToggleButton>
	<PinIcon data-icon-start="" />
	Pin
</ToggleButton>

Playground

Use the controls below to experiment with different toggle button props and see the live preview and code update.

variant
size
<ToggleButton>
  <Pin data-icon-start="" className="rotate-45" />
  Pin
</ToggleButton>

Examples

Default

Variants

With Text

Sizes

Shapes

Disabled

Uncontrolled

Controlled

state: on

API Reference

A toggle button allows a user to toggle a selection on or off, for example switching between two states or modes.

PropType
"default" | "primary" | "quiet"
union
boolean
ReactNode | function
boolean
Key
boolean
boolean
DOMRenderFunction<"button", ToggleButtonRenderProps>
function

Last updated on 5/22/2026