Toggle Button

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

<ToggleButton aria-label="Toggle pin">
  <PinIcon data-icon-start="" className="rotate-45" />
  Pin
</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>

Selection

Use defaultSelected for uncontrolled state, or isSelected with onChange to control it. The value is a boolean.

<ToggleButton defaultSelected>Pin</ToggleButton>

<ToggleButton isSelected={isSelected} onChange={setSelected}>
  Pin
</ToggleButton>

Examples

Default

Favorite Toggle

Wireless Headphones

Wireless Headphones

$129.00

Text Formatting Toolbar

View Switcher

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
function

Last updated on 7/7/2026