---
name: "@evilbuttons"
slug: "evilbuttons"
description: "Evil Buttons is a focused shadcn registry of ~18 Motion-powered (motion.dev) animated button and interactive components. Named variants include aqua-button, brutal-button, chrome-button, click-powerup, command-button, copy-button, dither-button, evil-eye-button, frame-button, glitch-button, grid-button, highlight-button, minimal-button, movie-pass, reveal-button, shiny-button, sticky-button, and troll-button. Each is installable via npx shadcn add @evilbuttons/<name>. Built with React, Tailwind CSS, and TypeScript; dark mode ready. Free, MIT licensed. Use for: injecting punchy, motion-driven button interactions into an existing shadcn/ui project with minimal setup and zero design from scratch."
category: "Animated components"
tags: ["3d", "accessibility", "aesthetic", "animation", "buttons", "cards", "theming"]
framework: "react"
license: "Apache-2.0"
author: "radiumcoders"
website: "https://evilbuttons.radiumcoders.com/docs"
github: "https://github.com/radiumcoders/evil-buttons"
registry: "https://evilbuttons.radiumcoders.com/r/index.json"
pro: false
pro_url: null
github_stars: 247
component_count: 29
generated_at: "2026-10-27T06:34:08.542Z"
---

# @evilbuttons

Evil Buttons is a focused shadcn registry of ~18 Motion-powered (motion.dev) animated button and interactive components. Named variants include aqua-button, brutal-button, chrome-button, click-powerup, command-button, copy-button, dither-button, evil-eye-button, frame-button, glitch-button, grid-button, highlight-button, minimal-button, movie-pass, reveal-button, shiny-button, sticky-button, and troll-button. Each is installable via npx shadcn add @evilbuttons/<name>. Built with React, Tailwind CSS, and TypeScript; dark mode ready. Free, MIT licensed. Use for: injecting punchy, motion-driven button interactions into an existing shadcn/ui project with minimal setup and zero design from scratch.

## Links

- Website: https://evilbuttons.radiumcoders.com/docs
- GitHub: https://github.com/radiumcoders/evil-buttons
- Registry JSON: https://evilbuttons.radiumcoders.com/r/index.json
- Directory page: https://sh4dcn.netlify.app/registry/evilbuttons
- This file: https://sh4dcn.netlify.app/md/evilbuttons.md

## Install

```sh
# add the whole registry (shadcn CLI)
npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/index.json
pnpm dlx shadcn@latest add https://evilbuttons.radiumcoders.com/r/index.json
bunx shadcn@latest add https://evilbuttons.radiumcoders.com/r/index.json
# clone the source repo
git clone https://github.com/radiumcoders/evil-buttons.git
# fetch the raw registry index
curl -s https://evilbuttons.radiumcoders.com/r/index.json
```

## Components (29)

| name | type | description | install |
| --- | --- | --- | --- |
| click-powerup | registry:ui | A bracketed button that arms on hover and powers up with an accent flash and bracket burst on every click. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/click-powerup.json` |
| sticky | registry:ui | A magnetic button whose body and label are pulled toward the cursor from a wide field, with parallax depth and tilt. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/sticky.json` |
| thruster-button | registry:ui | A magnetic button that rests on the floor of its container, then flies to the cursor anywhere inside it on compressed-air jets, trailing WebGL smoke, and lands… | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/thruster-button.json` |
| shiny-button | registry:ui | A glossy, gradient-styled button with a layered inner glow and a glint that sweeps across on every click. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/shiny-button.json` |
| movie-pass | registry:ui | A cinema ticket button that tears along its perforation on click, hinging open or snapping apart. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/movie-pass.json` |
| minimal | registry:ui | A quiet dark button with a hairline ring, inner highlight, soft drop shadow, and a chevron that nudges on hover. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/minimal.json` |
| dither-button | registry:ui | A button with an animated 4x4 ordered-dither wave background and a knockout label. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/dither-button.json` |
| evil-eye-button | registry:ui | An obsidian pill with a burning evil eye behind its label that tracks the cursor across the page, focuses on hover, and blinks. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/evil-eye-button.json` |
| troll-button | registry:ui | A button that dodges the cursor until it runs out of stamina, then gives up and lets you click it. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/troll-button.json` |
| chrome-button | registry:ui | A metallic pill whose border is a ring of flowing liquid chrome around a solid face that follows the light or dark theme, with pill, compact, and icon sizes. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/chrome-button.json` |
| brutal-button | registry:ui | A NeoBrutalism style button with sharp shadows and stark borders. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/brutal-button.json` |
| aqua-button | registry:ui | A glossy pill button inspired by Apple's Aqua interface, with layered highlights and a soft inner glow. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/aqua-button.json` |
| 3d-button | registry:ui | A minimal 3D button with a clean deck-style press and sliding click sheen. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/3d-button.json` |
| frame-button | registry:ui | A futuristic button with springy corner markers that spread on hover and lock on when pressed, plus a scan sweep. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/frame-button.json` |
| highlight-button | registry:ui | A button with a cursor spotlight, a border that lights up near the pointer, and a ripple from wherever you click. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/highlight-button.json` |
| glitch-button | registry:ui | A button with randomized RGB-split glitch bursts, a scanline overlay, and a flickering label. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/glitch-button.json` |
| command-button | registry:ui | A button with a global keyboard shortcut, shown as keycaps that sink as you hold each key. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/command-button.json` |
| copy-button | registry:ui | A copy button that briefly shows the copied text above itself, so you see exactly what landed on the clipboard. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/copy-button.json` |
| reveal-button | registry:ui | A button that reveals a hidden secret value on hold or toggle, with a blur-in animation and an eye icon indicator. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/reveal-button.json` |
| demonic-button | registry:ui | A hold-to-summon button: keep pressing to raise ridged devil horns from behind it while a canvas fire builds into a roar. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/demonic-button.json` |
| hold-button | registry:ui | 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. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/hold-button.json` |
| doubt-button | registry:ui | An escalating-confirmation button that makes you click through increasingly absurd, guilt-tripping prompts before the real action finally fires. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/doubt-button.json` |
| slide-to-detonate | registry:ui | A slide-to-confirm safety gate that makes you drag a handle across a fuse before the real action detonates. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/slide-to-detonate.json` |
| morph-status-button | registry:ui | A single button that morphs through idle, loading, success, and error states in place, with no layout shift. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/morph-status-button.json` |
| cooldown-button | registry:ui | A button that locks itself behind a draining radial timer after each click to stop spam and double-submits, taunting you while you wait. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/cooldown-button.json` |
| realistic-switch | registry:ui | A latching push switch, a raised box that sinks into its socket when pressed, stays down and glows while on, and springs back up on the next press. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/realistic-switch.json` |
| confetti-button | registry:ui | A ringed dark button with a sparkle icon that fires a restrained confetti burst on click. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/confetti-button.json` |
| ash-burst-button | registry:ui | A ringed dark button that glows like an ember on click and erupts ash that collides with it via Matter.js physics, piling onto its surface. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/ash-burst-button.json` |
| minecraft-button | registry:ui | A pixel stone menu button that cracks every few taps, shatters into chips, and drops itself as a bobbing item you pick up to respawn it. | `npx shadcn@latest add https://evilbuttons.radiumcoders.com/r/minecraft-button.json` |

## For AI agents

```text
You are adding components from @evilbuttons to a shadcn-compatible project.
1. Read this file (https://sh4dcn.netlify.app/md/evilbuttons.md) for the component list.
2. Fetch the machine-readable index: https://evilbuttons.radiumcoders.com/r/index.json
3. Install a single component with its install command from the table above.
4. Full structured record: https://sh4dcn.netlify.app/json (library slug: evilbuttons).
```
