Button

Displays a button or a component that looks like a button.

Examples

Size

Small
Default
Large
View Code
<div class="flex items-start gap-2">
  <c-button size="sm" variant="outline">Small</c-button>
  <c-button size="icon-sm" variant="outline" aria-label="Submit">→</c-button>
</div>
<div class="flex items-start gap-2">
  <c-button variant="outline">Default</c-button>
  <c-button size="icon" variant="outline" aria-label="Submit">→</c-button>
</div>
<div class="flex items-start gap-2">
  <c-button variant="outline" size="lg">Large</c-button>
  <c-button size="icon-lg" variant="outline" aria-label="Submit">→</c-button>
</div>

Default

Button
View Code
<c-button>Button</c-button>

Secondary

Secondary
View Code
<c-button variant="secondary">Secondary</c-button>

Outline

Outline
View Code
<c-button variant="outline">Outline</c-button>

Ghost

Ghost
View Code
<c-button variant="ghost">Ghost</c-button>

Destructive

Destructive
View Code
<c-button variant="destructive">Destructive</c-button>
Link
View Code
<c-button variant="link">Link</c-button>

Icon

View Code
<c-button variant="outline" size="icon" aria-label="Submit">→</c-button>

With Icon

New Branch
View Code
<c-button variant="outline" size="sm">
  <docs-lucide-icon icon="git-branch" size="16"></docs-lucide-icon>
  New Branch
</c-button>

Loading

Submit
View Code
<c-button size="sm" variant="outline" disabled>
  <svg
    class="animate-spin"
    xmlns="http://www.w3.org/2000/svg"
    width="16"
    height="16"
    viewBox="0 0 24 24"
    fill="none"
    stroke="currentColor"
    stroke-width="2"
    stroke-linecap="round"
    stroke-linejoin="round"
  >
    <path d="M21 12a9 9 0 1 1-6.219-8.56" />
  </svg>
  Submit
</c-button>
Go to Components
View Code
<c-button href="/components/button">Go to Components</c-button>

API Reference

Button

The Button component is a wrapper around the button element that adds a variety of styles and functionality.

Prop Type Default
variant 'default' | 'outline' | 'ghost' | 'destructive' | 'secondary' | 'link' 'default'
size 'default' | 'sm' | 'lg' | 'icon' | 'icon-sm' | 'icon-lg' 'default'
button-classes string -
href string -
type 'button' | 'submit' | 'reset' 'button'
disabled boolean false

When href is provided, the button renders as an anchor (<a>) element instead of a <button>.