Sora UI has moved to ui.soralabs.studio.Learn more
Sora UI

Button

An accessible button component built on Base UI and Motion for React with shadcn/ui variants, comprehensive sizes, and physics-based hover/tap scaling.

Made by Axyl

Default primary button with Motion spring scaling on hover and tap.

Loading...

Installation

File Structure

button.tsx

Usage

import { Button } from "@/components/sora-ui/base/button";

export default function Page() {
  return <Button>Button</Button>;
}

Examples

Variants

All visual button variants: default, secondary, destructive, outline, ghost, and link.

Loading...

Sizes

Button size presets from extra small (xs) to large (lg).

Loading...

With Icon

Button combined with leading or trailing Lucide icons.

Loading...

Loading State

Disabled button showing an animated spinner.

Loading...

Custom Motion Scaling

Customizable hoverScale and tapScale multipliers, with option to disable scaling.

Loading...

Props

PropTypeDefault
variant?
"default" | "outline" | "secondary" | "ghost" | "destructive" | "link"
"default"
size?
"default" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg"
"default"
hoverScale?
number
1.05
tapScale?
number
0.95
disableAnimation?
boolean
false
className?
string
-

Built by Axyl. A motion-first component registry for React.

Last updated: 8/21/2026