Measured entry
magicui-confetti
background-effectunclassifiedmotion on file
A client-side React confetti component distributed as a shadcn registry item. It exposes a canvas effect that can fire automatically or through a ref, plus a button that launches canvas-confetti from the click position. It depends on canvas-confetti and its types, and imports the registry's shared Button component.



Measured
Every value below was written by the harness on the run that produced the frames above. None of it is derived from the prose.
| Build | OK |
|---|---|
| Mount | OK |
| Console errors | 0 |
| Uncaught page errors | 0 |
| Horizontal overflow | clean at 375, 768, 1440 |
| Axe critical | 0 |
| Axe serious | 0 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 18.5 KB (83.9 KB build, 65.4 KB baseline) |
| Bare mode | FAIL |
| Provider required | NO |
| Demo used | written from the component source API |
What the harness recorded
BARE BUILD
✗ Build failed in 1.90s error during build: [vite]: Rollup failed to resolve import "class-variance-authority" from "<sandbox>/src/components/ui/button.tsx".
Verdict
A focused celebration effect with useful button and imperative entry points. It builds and mounts cleanly in the prepared environment, but it needs a shadcn-style setup rather than working as a bare drop-in because the shared Button chain requires additional project infrastructure.
Use it if
- You want a brief celebration after a release, purchase, achievement, or other clearly successful action.
- You need both a ready-made trigger button and an imperative API for firing the effect from application logic.
- Your project already uses shadcn conventions and can reuse its shared Button component.
Skip it if
- Your interface must avoid nonessential motion or you do not plan to provide a reduced-motion alternative.
- You only need a static success state and do not want an additional animation dependency.
- Your component system cannot accommodate the shadcn Button import, path alias, and styling conventions.
Install
| Declared dependencies | canvas-confetti, @types/canvas-confetti, radix-ui |
|---|---|
| Missing on install | canvas-confetti, @types/canvas-confetti |
| Bare install | fails once the shadcn-style helpers are removed, so it needs that setup |
| Provider | no provider required in the harness |
In a non-shadcn project, add canvas-confetti and its type package, then provide or replace the imported Button. Keeping the supplied Button also requires class-variance-authority, the relevant Radix UI dependency, the class-name utility, compatible styling, and the configured component path alias.
Source and credit
This page is a review, not a copy. The component source lives with its author and this site does not republish it. Read the license before you use anything.
Author repository
github.com/magicuidesign/magicuiAlternatives
Other published entries for the background-effect pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- ruixen-loading-circlegradient-glow
- Renders
- YES
- A11y
- 0
- Gzip
- 17.7KB
- Bare
- pass
- Prov
- NO
- eldora-hacker-backgrounddark-futuristic
- Renders
- YES
- A11y
- 0
- Gzip
- 17.8KB
- Bare
- pass
- Prov
- NO
- ruixen-ripple-circlesgradient-glow
- Renders
- YES
- A11y
- 0
- Gzip
- 17.9KB
- Bare
- pass
- Prov
- NO
- ruixen-dual-tone-rain-backgroundunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 18.4KB
- Bare
- pass
- Prov
- NO
- cultui-lightboardliquid-glass
- Renders
- YES
- A11y
- 0
- Gzip
- 19.6KB
- Bare
- pass
- Prov
- NO
- ruixen-mouse-sparkunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 20.6KB
- Bare
- pass
- Prov
- NO