GitHub

A lightweight confetti browser animation library.

jsdelivr npm-downloads npm-version

confetti

Install

You can install this library from NPM:

npm install --save @hiseb/confetti

Alternatively, you can include this library in your HTML page directly from a CDN:

<script src="https://cdn.jsdelivr.net/npm/@hiseb/confetti@2.2.0/dist/confetti.min.js"></script>

Usage

import confetti from "@hiseb/confetti";
confetti();
<script src="https://cdn.jsdelivr.net/npm/@hiseb/confetti@2.2.0/dist/confetti.min.js"></script>
<script>
    confetti();
</script>

API

The confetti function takes in a config object, all parameters are optional:

confetti({
    position: { x: 0, y: 0 },   // Origin position
    count: 100,                 // Number of particles
    size: 1,                    // Size of the particles
    velocity: 200,              // Initial particle velocity
    fade: false,                // Particles fall off the screen, or fade out
    color: ["#FF06B5"]          // Palette the particles are picked from
});

Examples

Trigger confetti based on a click event:

window.addEventListener("click", (event) => {
    confetti({ position: { x: event.clientX, y: event.clientY } });
});

Trigger a sequence of confetti when the page loads:

window.addEventListener("load", () => {
    let positionList = [
        { x: window.innerWidth * 0.50, y: window.innerHeight * 0.60 },
        { x: window.innerWidth * 0.25, y: window.innerHeight * 0.40 },
        { x: window.innerWidth * 0.75, y: window.innerHeight * 0.30 },
    ];
    for(let i = 0; i < positionList.length; i++) {
        setTimeout(() => confetti({ position: positionList[i] }), i * 250);
    }
});

Match the confetti to your brand colors:

window.addEventListener("click", (event) => {
    confetti({
        position: { x: event.clientX, y: event.clientY },
        color: ["#F43F5E", "#8B5CF6", "#06B6D4"],
    });
});

Read the original on github.com ↗