

<InteractiveDemo
  name="toggle-button"
  controls="[
  { name: 'children', type: 'string', defaultValue: 'Pin' },
  'variant',
  'size',
  'isIconOnly',
  'isDisabled',
]"
/>

## Installation [#installation]

<CodeBlockTabs defaultValue="npm">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="npm">
      npm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="pnpm">
      pnpm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="yarn">
      yarn
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="bun">
      bun
    </CodeBlockTabsTrigger>
  </CodeBlockTabsList>

  <CodeBlockTab value="npm">
    ```bash
    npx shadcn@latest add @dotui/toggle-button
    ```
  </CodeBlockTab>

  <CodeBlockTab value="pnpm">
    ```bash
    pnpm dlx shadcn@latest add @dotui/toggle-button
    ```
  </CodeBlockTab>

  <CodeBlockTab value="yarn">
    ```bash
    yarn dlx shadcn@latest add @dotui/toggle-button
    ```
  </CodeBlockTab>

  <CodeBlockTab value="bun">
    ```bash
    bun x shadcn@latest add @dotui/toggle-button
    ```
  </CodeBlockTab>
</CodeBlockTabs>

## Usage [#usage]

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

```tsx
import { PinIcon } from 'lucide-react'
import { ToggleButton } from '@/components/ui/toggle-button'
```

```tsx
<ToggleButton>
  <PinIcon data-icon-start="" />
  Pin
</ToggleButton>
```

## Examples [#examples]

<Examples className="grid-cols-2">
  <Example name="toggle-button/demos/default" title="Default" />

  <Example name="toggle-button/demos/variants" title="Variants" />

  <Example name="toggle-button/demos/prefix-and-suffix" title="With Text" />

  <Example name="toggle-button/demos/sizes" title="Sizes" />

  <Example name="toggle-button/demos/shapes" title="Shapes" />

  <Example name="toggle-button/demos/disabled" title="Disabled" />

  <Example name="toggle-button/demos/uncontrolled" title="Uncontrolled" />

  <Example name="toggle-button/demos/controlled" title="Controlled" />
</Examples>

## API Reference [#api-reference]

<Reference name="toggle-button" />
