The celebration works now (#01M5Z00VJ6215NFZ8F3KJ48FXA, merged), but it looks
wrong: 120 particles at scalar: 1 from a single point read as a small puff on a
full-width page. The point of the effect is that landing a change request feels
like something.
Scope
Use two of canvas-confetti’s own published examples, in the order they are meant to be read:
- the realistic look preset for the opening burst:
particleCount: 500,spread: 180,ticks: 400,gravity: 0.5,decay: 0.92,startVelocity: 30,scalar: 1.2; - the fireworks volley from both edges (
angle: 60atx: 0,angle: 120atx: 1,spread: 55), with the count tapering as its clock runs out.
The example’s volley runs for 15 seconds. Ours has to stop much sooner: the page it lands on is a change request someone is about to read, so it should last about a second, not a quarter of a minute.
Acceptance criteria
- Landing a change request draws a burst that fills the viewport, and the volley ends on its own within roughly two seconds.
- The animation holds ~60fps while it runs, and no canvas is left behind once it is over.
prefers-reduced-motion: reducestill yields the page and no animation.- The CSP is unchanged, and the instantiation stays on the main thread
(
useWorker: false) — the worker path is what made the burst invisible before.