gamma logo

1

Overlay Button

An animated gradient button using Framer Motion with spring physics.

Installation

pnpm dlx shadcn@latest add @gammaui/overlay-button
global.css
.radial-gradient { background: radial-gradient( circle at 50% 0%, rgba(250, 250, 250, 0.05) 0%, transparent 60% ) rgba(15, 15, 15, 1); transition: background 0.3s ease-in-out; } .radial-gradient:hover { background: radial-gradient( circle at 50% 0%, rgba(250, 250, 250, 0.05) 0%, transparent 60% ) rgba(15, 15, 15, 0.5); } .linear-mask { mask-image: linear-gradient( -75deg, white calc(var(--x) + 20%), transparent calc(var(--x) + 30%), white calc(var(--x) + 100%) ); -webkit-mask-image: linear-gradient( -75deg, white calc(var(--x) + 20%), transparent calc(var(--x) + 30%), white calc(var(--x) + 100%) ); } .linear-overlay { background-image: linear-gradient( -75deg, rgba(255, 255, 255, 0.1) calc(var(--x) + 20%), rgba(255, 255, 255, 0.5) calc(var(--x) + 25%), rgba(255, 255, 255, 0.1) calc(var(--x) + 100%) ); mask: linear-gradient(black, black) content-box, linear-gradient(black, black); -webkit-mask: linear-gradient(black, black) content-box, linear-gradient(black, black); mask-composite: exclude; -webkit-mask-composite: xor; padding: 1px; }

Usage

import OverlayButton from "@/components/gammaui/overlay-button"
 
export default function Example() {
  return <OverlayButton label="Gamma UI" />
}

Props

PropTypeDefaultDescription
labelstring-The text content displayed on the button