v0.1 public beta early access on GitHub
Home / Components / gradient-button

Gradient ButtoniOS

Brand-gradient CTA pill with spring press, ink wash, and loading crossfade — flat face, no gloss — the Signature checkout/upgrade button.

$ npx lumioui add gradient-button
import { GradientButton } from "@/components/ui/gradient-button/gradient-button";
Props13
from? string Gradient start color (hex). Left/top stop.
to? string Gradient end color (hex). Right/bottom stop.
angle? "horizontal" | "vertical" Gradient direction.
size? "sm" | "md" | "lg" Size preset.
radius? "pill" | "xl" | "lg" | "md" Corner radius. Default "pill".
loading? boolean Crossfade to a spinner and block presses while true.
asyncTracking? boolean Auto-track async onPress — when onPress returns a Promise, the button enters the loading state until it resolves. Default true.
haptic? "light" | "medium" | "heavy" | false Haptic feedback on press. Default "light"; false to disable.
icon? React.ReactNode Icon rendered before the label.
textClassName? string Extra classes for the label — default is white for the opaque fill.
className? string Extra classes for the container.
onPress? | ((e: GestureResponderEvent) => void) | ((e: GestureResponderEvent) => Promise<unknown>) | null
children? React.ReactNode
Gradient Buttongradient-button.tsx
gradient-button/gradient-button.tsx open

Brand-gradient CTA pill with spring press, ink wash, and loading crossfade — flat face, no gloss — the Signature checkout/upgrade button.