Button

Triggers an action in place — submit a form, open a dialog, run a command. For navigation between pages or to an URL, reach for a link (or variant="link" when it must sit inline in prose). variant sets emphasis (primary = the workhorse CTA, default = neutral secondary action, outline / ghost = low-emphasis, link = inline text); tone sets intent (default, destructive for delete/remove, success for confirm, accent for the one brand moment per view). size follows the shared control scale — sm (28px) for dense rows and toolbars, md (32px, default) for standalone and form actions, lg (36px) for hero CTAs that need presence. Pass iconLeading / iconTrailing for icons, or loading for the spinner.

Variants (default tone)

import { Button } from "@liquidai/react";

<>
  <Button variant="primary">Primary</Button>
  <Button variant="default">Default</Button>
  <Button variant="outline">Outline</Button>
  <Button variant="ghost">Ghost</Button>
  <Button variant="link">Link</Button>
</>

Round (pill)

<>
  <Button round>Primary</Button>
  <Button variant="default" round>Default</Button>
  <Button variant="outline" round>Outline</Button>
  <Button variant="primary" tone="accent" round>Accent</Button>
</>

Destructive tone

<>
  <Button variant="primary" tone="destructive">Filled</Button>
  <Button variant="outline" tone="destructive">Outline</Button>
  <Button variant="link" tone="destructive">Link</Button>
</>

Success tone

<>
  <Button variant="primary" tone="success">Filled</Button>
  <Button variant="outline" tone="success">Outline</Button>
  <Button variant="link" tone="success">Link</Button>
</>

Accent tone (lilac)

<>
  <Button variant="primary" tone="accent">Filled</Button>
  <Button variant="outline" tone="accent">Outline</Button>
  <Button variant="link" tone="accent">Link</Button>
</>

Sizes

<>
  <Button size="sm">Small</Button>
  <Button size="md">Medium</Button>
  <Button size="lg">Large</Button>
</>

Icons

import { Plus, ArrowRight } from "lucide-react";

<>
  <Button iconLeading={<Plus />}>New project</Button>
  <Button iconTrailing={<ArrowRight />}>Continue</Button>
  <Button variant="outline" iconLeading={<Plus />} iconTrailing={<ArrowRight />}>
    Both
  </Button>
</>

States

<>
  <Button>Default</Button>
  <Button disabled>Disabled</Button>
  <Button loading>Loading</Button>
  <Button variant="outline" loading tone="destructive">Submitting</Button>
</>

Props

PropTypeDefault
variant"primary" | "default" | "outline" | "ghost" | "link""primary"
tone"default" | "destructive" | "success" | "accent""default"
size"sm" | "md" | "lg""md"
loadingbooleanfalse
disabledbooleanfalse
iconLeadingReactNode
iconTrailingReactNode
asChildboolean (Radix Slot pattern)false

Source

packages/react/src/components/button.tsx · Figma node 2718:8237