{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "evil-buttons",
  "homepage": "http://evilbuttons.radiumcoders.com/docs",
  "items": [
    {
      "name": "click-powerup",
      "type": "registry:ui",
      "title": "ClickPowerUp",
      "description": "An animated button wrapper with corner brackets, patterned fill, and tap feedback.",
      "files": [
        "components/evil-buttons/click-powerup.tsx"
      ]
    },
    {
      "name": "sticky",
      "type": "registry:ui",
      "title": "StickyButton",
      "description": "A magnetic button that follows cursor movement with spring physics.",
      "files": [
        "components/evil-buttons/sticky.tsx"
      ]
    },
    {
      "name": "shiny-button",
      "type": "registry:ui",
      "title": "ShinyButton",
      "description": "A glossy, gradient-styled button with a layered inner glow and press feedback.",
      "files": [
        "components/evil-buttons/shiny-button.tsx"
      ]
    },
    {
      "name": "movie-pass",
      "type": "registry:ui",
      "title": "MoviePassButton",
      "description": "A ticket-style button like a cinema stub.",
      "files": [
        "components/evil-buttons/movie-pass.tsx"
      ]
    },
    {
      "name": "minimal",
      "type": "registry:ui",
      "title": "MinimalButton",
      "description": "A sleek, minimal button with a subtle repeating linear gradient pattern.",
      "files": [
        "components/evil-buttons/minimal.tsx"
      ]
    },
    {
      "name": "grid-button",
      "type": "registry:ui",
      "title": "GridButton",
      "description": "A retro-styled button with a pixelated grid icon and tactile press feedback.",
      "files": [
        "components/evil-buttons/grid-button.tsx"
      ]
    },
    {
      "name": "dither-button",
      "type": "registry:ui",
      "title": "DitherButton",
      "description": "A button with an animated 4x4 ordered-dither wave background and a knockout label.",
      "files": [
        "components/evil-buttons/dither-button.tsx"
      ]
    },
    {
      "name": "evil-eye-button",
      "type": "registry:ui",
      "title": "EvilEyeButton",
      "description": "A button with a React Bits evil eye shader background and a fiery readable label.",
      "files": [
        "components/evil-buttons/evil-eye-button.tsx"
      ]
    },
    {
      "name": "troll-button",
      "type": "registry:ui",
      "title": "TrollButton",
      "description": "A button that flees from the user's cursor.",
      "files": [
        "components/evil-buttons/troll-button.tsx"
      ]
    },
    {
      "name": "chrome-button",
      "type": "registry:ui",
      "title": "ChromeButton",
      "description": "A button with an animated liquid chrome background.",
      "files": [
        "components/evil-buttons/chrome-button.tsx"
      ]
    },
    {
      "name": "brutal-button",
      "type": "registry:ui",
      "title": "BrutalButton",
      "description": "A NeoBrutalism style button with sharp shadows and stark borders.",
      "files": [
        "components/evil-buttons/brutal-button.tsx"
      ]
    },
    {
      "name": "aqua-button",
      "type": "registry:ui",
      "title": "AquaButton",
      "description": "A glossy pill button inspired by Apple's Aqua interface, with layered highlights and a soft inner glow.",
      "files": [
        "components/evil-buttons/aqua-button.tsx"
      ]
    },
    {
      "name": "3d-button",
      "type": "registry:ui",
      "title": "ThreeDButton",
      "description": "A minimal 3D button with a clean deck-style press and sliding click sheen.",
      "files": [
        "components/evil-buttons/3d-button.tsx"
      ]
    },
    {
      "name": "frame-button",
      "type": "registry:ui",
      "title": "FrameButton",
      "description": "A futuristic button with animated corner frames and tactile motion interactions.",
      "files": [
        "components/evil-buttons/frame-button.tsx"
      ]
    },
    {
      "name": "highlight-button",
      "type": "registry:ui",
      "title": "HighlightButton",
      "description": "A button with a mouse-following highlight that darkens light surfaces and expands on click.",
      "files": [
        "components/evil-buttons/highlight-button.tsx"
      ]
    },
    {
      "name": "glitch-button",
      "type": "registry:ui",
      "title": "GlitchButton",
      "description": "A button with randomized RGB-split glitch bursts, a scanline overlay, and a flickering label.",
      "files": [
        "components/evil-buttons/glitch-button.tsx"
      ]
    },
    {
      "name": "command-button",
      "type": "registry:ui",
      "title": "CommandButton",
      "description": "A button that binds a keyboard shortcut globally and pulses with a subtle flash animation when the shortcut fires.",
      "files": [
        "components/evil-buttons/command-button.tsx"
      ]
    },
    {
      "name": "copy-button",
      "type": "registry:ui",
      "title": "CopyButton",
      "description": "A button that copies a value to the clipboard and transitions through idle, copied, and error states with animated icon swaps.",
      "files": [
        "components/evil-buttons/copy-button.tsx"
      ]
    },
    {
      "name": "reveal-button",
      "type": "registry:ui",
      "title": "RevealButton",
      "description": "A button that reveals a hidden secret value on hold or toggle, with a blur-in animation and an eye icon indicator.",
      "files": [
        "components/evil-buttons/reveal-button.tsx"
      ]
    },
    {
      "name": "demonic-button",
      "type": "registry:ui",
      "title": "DemonicButton",
      "description": "A hold-to-charge button: keep pressing to slowly strain the devil horns out while it trembles, spits embers, and flashes between black and blood-red like a filling life meter.",
      "files": [
        "components/evil-buttons/demonic-button.tsx"
      ]
    },
    {
      "name": "hold-button",
      "type": "registry:ui",
      "title": "HoldButton",
      "description": "A hold-to-confirm button whose inner fill grows from 0 to 100%; release early to shake and abort, hold to the end to fire the action.",
      "files": [
        "components/evil-buttons/hold-button.tsx"
      ]
    },
    {
      "name": "captcha-button",
      "type": "registry:ui",
      "title": "CaptchaButton",
      "description": "A button that makes you pass an absurd 'select all the evil' emoji captcha before the real action fires.",
      "files": [
        "components/evil-buttons/captcha-button.tsx"
      ]
    },
    {
      "name": "doubt-button",
      "type": "registry:ui",
      "title": "DoubtButton",
      "description": "An escalating-confirmation button that makes you click through increasingly absurd, guilt-tripping prompts before the real action finally fires.",
      "files": [
        "components/evil-buttons/doubt-button.tsx"
      ]
    },
    {
      "name": "slide-to-detonate",
      "type": "registry:ui",
      "title": "SlideToDetonate",
      "description": "A slide-to-confirm safety gate that makes you drag a handle across a fuse before the real action detonates.",
      "files": [
        "components/evil-buttons/slide-to-detonate.tsx"
      ]
    },
    {
      "name": "morph-status-button",
      "type": "registry:ui",
      "title": "MorphStatusButton",
      "description": "A single button that morphs through idle, loading, success, and error states in place, with no layout shift.",
      "files": [
        "components/evil-buttons/morph-status-button.tsx"
      ]
    },
    {
      "name": "cooldown-button",
      "type": "registry:ui",
      "title": "CooldownButton",
      "description": "A button that locks itself behind a draining radial timer after each click to stop spam and double-submits, taunting you while you wait.",
      "files": [
        "components/evil-buttons/cooldown-button.tsx"
      ]
    },
    {
      "name": "pill-button",
      "type": "registry:ui",
      "title": "PillButton",
      "description": "A compact pill toggle that slides between two labeled faces with a rolling hover label animation.",
      "files": [
        "components/evil-buttons/pill-button.tsx"
      ]
    },
    {
      "name": "confetti-button",
      "type": "registry:ui",
      "title": "ConfettiButton",
      "description": "A plain shadcn button that pops on click and fires a confetti celebration burst.",
      "files": [
        "components/evil-buttons/confetti-button.tsx"
      ]
    },
    {
      "name": "hold-confirm-button",
      "type": "registry:ui",
      "title": "HoldConfirmButton",
      "description": "A hold-to-confirm pill button that shrinks while pressed and draws a circular progress ring around it using Motion styleEffect and svgEffect.",
      "files": [
        "components/evil-buttons/hold-confirm-button.tsx"
      ]
    },
    {
      "name": "dont-press-button",
      "type": "registry:ui",
      "title": "DontPressButton",
      "description": "A reverse-psychology button that begs you not to press it, then grows more tempting the closer your cursor gets.",
      "files": [
        "components/evil-buttons/dont-press-button.tsx"
      ]
    },
    {
      "name": "ash-burst-button",
      "type": "registry:ui",
      "title": "AshBurstButton",
      "description": "A button that burns on click and erupts ash that collides with the button via Matter.js physics, piling onto its surface.",
      "files": [
        "components/evil-buttons/ash-burst-button.tsx"
      ]
    }
  ]
}
