Nusa UINusa UI

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

registry/examples/button-demo.tsx
import { Button } from "@/registry/ui/button"

export default function ButtonDemo() {

Installation

pnpmnpmyarnbun
pnpm dlx shadcn@latest add https://nusa-ui.vercel.app/r/button.json

Usage

import { Button } from "@/components/ui/button"
<Button variant="outline">Button</Button>

Examples

Secondary

registry/examples/button-secondary.tsx
import { Button } from "@/registry/ui/button"

export default function ButtonSecondary() {

Destructive

registry/examples/button-destructive.tsx
import { Button } from "@/registry/ui/button"

export default function ButtonDestructive() {

Outline

registry/examples/button-outline.tsx
import { Button } from "@/registry/ui/button"

export default function ButtonOutline() {

Ghost

registry/examples/button-ghost.tsx
import { Button } from "@/registry/ui/button"

export default function ButtonGhost() {
registry/examples/button-link.tsx
import { Button } from "@/registry/ui/button"

export default function ButtonLink() {

Icon

registry/examples/button-icon.tsx
import { ChevronRight } from "lucide-react"

import { Button } from "@/registry/ui/button"

With Icon

registry/examples/button-with-icon.tsx
import { Mail } from "lucide-react"

import { Button } from "@/registry/ui/button"

Loading

registry/examples/button-loading.tsx
import { Loader2 } from "lucide-react"

import { Button } from "@/registry/ui/button"

API Reference

Button

PropTypeDefault
variant"default" | "outline" | "ghost" | "destructive" | "secondary" | "link""default"
size"default" | "sm" | "lg" | "icon" | "icon-sm" | "icon-lg""default"
asChildbooleanfalse