like-burst
A celebratory particle burst for like / favorite / reaction buttons. Part of
motion-anything; obeys MOTION-SPEC.md.
When to use it
- Like / favorite / upvote / reaction buttons.
- A small, earned moment of positive feedback.
When NOT to use it (restraint)
- Destructive or neutral actions (delete, dismiss, close).
- When more than one burst could fire at once — one celebratory moment per screen.
- On load / autoplay. This must be user-triggered.
How to apply
- Copy
like-burst.cssandlike-burst.jsinto the project. - Link them, and mark the button:
<link rel="stylesheet" href="like-burst.css" /> <button class="like-btn" data-like-burst aria-pressed="false" aria-label="Like">♥</button> <script src="like-burst.js"></script> - It auto-attaches to any
[data-like-burst], or callattachLikeBurst(el)manually.
Tuning
PARTICLE_COUNT/COLORSinlike-burst.js(keep particle count modest — taste over spectacle).- Pop feel: the
lb-popkeyframe (currently420ms, ease-out). Burst spread:distinspawnParticles.
Accessibility & performance
- Honors
prefers-reduced-motion: particles are suppressed, a quiet color/scale cue remains. - Animates
transform/opacityonly; removes injected particle nodes after ~700ms.
Framework notes
- React: call
attachLikeBurst(ref.current)inuseEffect; or port the click handler into your component and keep the CSS as-is.