---
name: nexu-io/like-burst
source: https://app.decimal.ai/s/nexu-io-like-burst@1/SKILL.md
source_sha256: 1a431c87417b
---

# like-burst

A celebratory particle burst for like / favorite / reaction buttons. Part of
[motion-anything](https://github.com/nexu-io/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
1. Copy `like-burst.css` and `like-burst.js` into the project.
2. Link them, and mark the button:
   ```html
   <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>
   ```
3. It auto-attaches to any `[data-like-burst]`, or call `attachLikeBurst(el)` manually.

## Tuning
- `PARTICLE_COUNT` / `COLORS` in `like-burst.js` (keep particle count modest — taste over spectacle).
- Pop feel: the `lb-pop` keyframe (currently `420ms`, ease-out). Burst spread: `dist` in `spawnParticles`.

## Accessibility & performance
- Honors `prefers-reduced-motion`: particles are suppressed, a quiet color/scale cue remains.
- Animates `transform`/`opacity` only; removes injected particle nodes after ~700ms.

## Framework notes
- React: call `attachLikeBurst(ref.current)` in `useEffect`; or port the click handler into your
  component and keep the CSS as-is.