Skip to content
RivetUI

Button

Displays an interactive control for actions.

@rivetui/button

Preview

Explore each composition interactively, then open its code in the same context.

Variants

Choose a visual weight that matches the importance and risk of the action.

Sizes

Use explicit text and icon sizes to keep control density predictable.

Unavailable actions

Pair the disabled state with a label that explains whether an action is blocked or still processing.

Registry

Installation

Add the component source and its declared dependencies with the shadcn CLI.

Install component
bunx --bun shadcn@latest add @rivetui/button
Inspect registry item

Public interface

API reference

Component-specific props are listed here. Native element and Base UI props continue to pass through.

PropTypeDefault
variant"primary" | "secondary" | "outline" | "ghost" | "destructive""primary"
size"sm" | "md" | "lg" | "icon-sm" | "icon-md" | "icon-lg""md"
disabledbooleanfalse
nativeButtonbooleantrue
renderReactElement | function—
Rivet UI / ButtonComponents engineered, not decorated.