On click, 22 grayscale rectangular particles are spawned from the click point inside a relatively-positioned wrapper. Each particle flies outward in an evenly distributed radial spread with slight randomness, rotating and fading over 500โ900ms via CSS custom properties (--tx, --ty, --rot, --dur) and a single @keyframes rule. Particles are removed from the DOM after animation. No dependencies.
pnpm dlx shadcn@latest add "https://movin.design/r/button-confetti.json"The item is indexed, but its registry document could not be loaded.