8.4k

Button

A button or a component that looks like a button.

Installation

pnpm dlx shadcn@latest add https://coss.com/ui/r/button.json

Usage

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

You can use the render prop to make another component look like a button. Here's an example of a link that looks like a button.

import Link from "next/link"
 
import { Button } from "@/components/ui/button"
 
export function LinkAsButton() {
  return <Button render={<Link href="/login" />}>Login</Button>
}

Examples

Default

Outline

Secondary

Destructive

Destructive Outline

Ghost

Extra-small Size

Small Size

Large Size

Extra-large Size

Disabled

Icon

Icon Small Size

Icon Large Size

With Icon

Loading

Comparing with Radix / shadcn

If you’re already familiar with Radix UI and shadcn/ui, this guide highlights the small differences and similarities so you can get started with coss.com ui quickly.

Quick Checklist

  • Replace asChildrender on Button

Additional Notes

Size Comparison

coss.com ui button sizes are more compact compared to shadcn/ui, making them better suited for dense applications. We also introduce new sizes (xs, xl, icon-sm, icon-lg) for more granular control:

SizeHeight (shadcn/ui)Height (coss.com ui)
xs-24px
sm32px28px
default36px32px
lg40px36px
xl-40px
icon36px32px
icon-sm-28px
icon-lg-36px

So, for example, if you were using the default size in shadcn/ui and you want to preserve the original height, you should use the lg size in coss.com ui.

New Variants

We've added a new destructive-outline variant for better UX patterns:

  • Primary actions: Use destructive (solid red) for the main destructive action
  • Secondary triggers: Use destructive-outline (outline red) to avoid alarming red buttons in the main interface

Comparison Example

shadcn/ui
<Button asChild>
  <Link href="/login">Login</Link>
</Button>
coss.com ui
<Button render={<Link href="/login" />}>Login</Button>

coss.com ui

Built by and for the team of Cal.com, Inc. — the leading commercial open source company (“coss”).