Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-confetti-explosion

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-confetti-explosion

A lightweight css-animation based confetti exploder for React

  • 1.5.1
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

React Confetti Explosion

npm version

This is inspired by this beautiful and oft-used confetti which uses canvas, but equally inspired by how many bad looking CSS examples there are out there. The goal was to create a super lightweight confetti component that would not require canvas, use only CSS for animation, and could also be controlled as an explosion (rather than raining confetti), without the need to write a full-blown particle generator.

Install:

$ yarn add react-confetti-explosion

Usage

import ConfettiExplosion from 'react-confetti-explosion';

function App() {
  const [isExploding, setIsExploding] = React.useState(false);
  return <>{isExploding && <ConfettiExplosion />}</>;
}

Optional Props

NameTypeDefaultDescription
particleCountnumber150Total number of particles used. Generally try to stay under 400 for optimal performance.
particleSizenumber12Size of particles in pixels. This means width for squares, diameter for circles. Note there is also a bit of randomness added to these.
durationnumber3500Duration of explosion in ms. This is the time it takes particles to travel from explosion point to the floor, as defined by height.
colorsstring[][
'#FFC700',
'#FF0000',
'#2E3191',
'#41BBC7'
]
An array of any css-readable colors, which are evenly distributed across the number of total particles.
forcenumber0.5Between 0-1, roughly the vertical force at which particles initially explode. Straying too far away from 0.5 may start looking...interesting.
heightnumber800Pixel distance the particles will vertically spread from initial explosion point.
widthnumber1600Pixel distance the particles will horizontally spread from initial explosion point.

Although the duration of the explosion is controlled, it is up to the consumer how and when the ConfettiExplosion is rendered and positioned (and, hey, maybe even faded out?).

Potential gotchas

  • Your container must be overflow: visible in order to allow elements to fully spread across area.
  • If your height is too small, particles may visibly land on the floor instead of disappearing off-screen.

To keep the library as little as possible much of the physics have been estimated, cheapened, and downright mutilated. There are certainly prop combinations that will not look realistic, due to the limitations of CSS animations. But there should be enough options to fit most needs.

Example Screenshots

Big explosion

{
  force: 0.6,
  duration: 5000,
  particleCount: 200,
  height: 1600,
  width: 1600
}

confetti-large-edit

Little explosion

{
  force: 0.4,
  duration: 3000,
  particleCount: 60,
  height: 1000,
  width: 1000
}

confetti-small-edit

Tiny explosion

{
  force: 0.4,
  duration: 2000,
  particleCount: 30,
  height: 500,
  width: 300
}

confetti-tiny

Author

herrethan

License

MIT

Keywords

FAQs

Package last updated on 15 Sep 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc