Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
J

js-confetti

> 编程语言
Open source

JS Confetti library that supports emojis ⚡️

1.3K stars0 likes0 views
WebsiteGitHub

About

JS Confetti library that supports emojis ⚡️

JavaScript Confetti library

Supports emojis as confetti

⚡️ Zero dependencies used

Works without any config, yet configurable

Has TypeScript typings

Confetti speed adapts to user screen width

Links: GitHub | NPM | Demo

Install

You can install library from NPM using yarn or npm

bash
yarn add js-confetti

Alternatively you can download script from CDN

xml

and then access JSConfetti global variable

Usage

Initialize instance of JSConfetti class and call addConfetti method

javascript
import JSConfetti from 'js-confetti'

const jsConfetti = new JSConfetti()

jsConfetti.addConfetti()

NOTE new JSConfetti() creates HTML Canvas element and adds it to page, so call it only once!

If need to use custom canvas element, you can pass canvas arg to JSConfetti constructor (example)

javascript
const canvas = document.getElementById('your_custom_canvas_id')

const jsConfetti = new JSConfetti({ canvas })

Customise confetti

Use emojis as confetti:

javascript
jsConfetti.addConfetti({
   emojis: ['', '⚡️', '', '✨', '', ''],
})

Customize confetti colors:

javascript
jsConfetti.addConfetti({
  confettiColors: [
    '#ff0a54', '#ff477e', '#ff7096', '#ff85a1', '#fbb1bd', '#f9bec7',
  ],
})

Customize confetti radius:

javascript
jsConfetti.addConfetti({
  confettiRadius: 6,
})

Customize confetti number:

javascript
jsConfetti.addConfetti({
  confettiRadius: 6,
  confettiNumber: 500,
})

Combine different properties:

javascript
jsConfetti.addConfetti({
  emojis: [''],
  emojiSize: 100,
  confettiNumber: 30,
})

addConfettiAtPosition

example with dispatching confetti on mouse click - take X and Y position of the mouse from event and pass them in confettiDispatchPosition param.

all customisations work in this method as well!

javascript
jsConfettiRef.addConfettiAtPosition({
  confettiDispatchPosition: {
    x: event.clientX,
    y: event.clientY
  }
})

clearCanvas()

Call clearCanvas method to clear canvas

Example:

javascript
const jsConfetti = new JSConfetti()

jsConfetti.addConfetti()

// ... 
jsConfetti.clearCanvas()

addConfetti Promise

addConfetti method returns Promise, which is resolved when added confetti dissapears from the user screen due to the gravity physics of confetti

Example:

javascript
// async/await
await jsConfetti.addConfetti()
console.log('Confetti animation completed!')

// Promise.then
jsConfetti.addConfetti()
   .then(() => console.log('Confetti animation completed!'))

How to run locally

Install dependencies by Yarn or NPM

bash
yarn install

Run dev script with website build

bash
yarn run dev

License

MIT

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

TypeScriptanimationcanvascanvas-confetticonfetti

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言