DemonicButton

A hold-to-summon button that raises ridged devil horns from behind it while a canvas fire builds into a roar.

Preview

Props

Install

npx shadcn@latest add @evilbuttons/demonic-button

Usage

import { DemonicButton } from "@/components/evil-buttons/demonic-button";

export function ButtonDemo() {
  return (
    <DemonicButton holdDuration={1800} onSummon={() => console.log("Summoned")}>
      Corrupt the World
    </DemonicButton>
  );
}

Variants

Quick summon

Shorten holdDuration for a faster ritual.

Props

The component spreads native button props except onClick.

PropTypeDefaultDescription
childrenReact.ReactNode-Button label. Falls back to label.
labelReact.ReactNode"Summon"Label used when no children are provided.
holdDurationnumber2200Milliseconds of holding needed to fully summon.
onSummon() => void-Fired once each time the charge reaches 100%.
classNamestring-Extra classes passed to the button.

Good to know

  • Fire is a canvas particle system; horns are inline SVG.
  • Animates without React re-renders.

Search docs

Jump to a button documentation page