ShinyButton

A glossy, gradient-styled button with a layered inner glow and a glint that sweeps across on every click.

Preview

Props

Install

npx shadcn@latest add @evilbuttons/shiny-button

Usage

import ShinyButton from "@/components/evil-buttons/shiny-button";

export function ButtonDemo() {
  return <ShinyButton onClick={() => console.log("Shiny")}>Launch</ShinyButton>;
}

Variants

Slow glint

A longer shineDuration gives a lazier, more luxurious sweep.

Props

The component spreads native button props and forwards its ref to the button.

PropTypeDefaultDescription
childrenReact.ReactNode-The button label or content.
shineDurationnumber650Milliseconds the glint takes to sweep across on click.
classNamestring-Extra classes passed to the button.

Good to know

  • No animation library: the glint uses the Web Animations API.
  • Glint is skipped under prefers-reduced-motion.

Search docs

Jump to a button documentation page