Socket
Socket
Sign inDemoInstall

react-confetti

Package Overview
Dependencies
2
Maintainers
1
Versions
39
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-confetti


Version published
Weekly downloads
1.1M
decreased by-7.68%
Maintainers
1
Install size
230 kB
Created
Weekly downloads
 

Package description

What is react-confetti?

The react-confetti package is a React component that allows you to easily add confetti animations to your web applications. It is highly customizable and can be used to celebrate events, achievements, or any other occasion that calls for a festive touch.

What are react-confetti's main functionalities?

Basic Confetti Animation

This feature allows you to add a basic confetti animation to your React application with minimal setup. Simply import the Confetti component and include it in your JSX.

import React from 'react';
import Confetti from 'react-confetti';

const BasicConfetti = () => (
  <Confetti />
);

export default BasicConfetti;

Customizable Confetti

This feature allows you to customize various aspects of the confetti animation, such as the number of pieces, gravity, and colors. This makes it easy to tailor the animation to fit the theme of your application.

import React from 'react';
import Confetti from 'react-confetti';

const CustomConfetti = () => (
  <Confetti
    width={window.innerWidth}
    height={window.innerHeight}
    numberOfPieces={500}
    gravity={0.1}
    colors={['#ff0', '#f0f', '#0ff']}
  />
);

export default CustomConfetti;

Controlled Confetti

This feature allows you to control when the confetti animation is active. In this example, a button is used to toggle the confetti animation on and off, providing a more interactive experience for users.

import React, { useState } from 'react';
import Confetti from 'react-confetti';

const ControlledConfetti = () => {
  const [isConfettiActive, setIsConfettiActive] = useState(false);

  return (
    <div>
      <button onClick={() => setIsConfettiActive(!isConfettiActive)}>
        Toggle Confetti
      </button>
      {isConfettiActive && <Confetti />}
    </div>
  );
};

export default ControlledConfetti;

Other packages similar to react-confetti

Readme

Source

react-confetti

Confetti without the cleanup. Demo

Build Status npm npm bundle size npm type definitions

Based on a pen by @Gthibaud: https://codepen.io/Gthibaud/pen/ENzXbp

demogif

Install

npm install react-confetti

Use

width and height props are recommended. They will default to the initial window dimensions, but will not respond to resize events. It is recommended to provide the dimensions yourself. Here is an example using a hook:

import React from 'react'
import useWindowSize from 'react-use/lib/useWindowSize'
import Confetti from 'react-confetti'

export default () => {
  const { width, height } = useWindowSize()
  return (
    <Confetti
      width={width}
      height={height}
    />
  )
}

Props

PropertyTypeDefaultDescription
widthNumberwindow.innerWidth || 300Width of the <canvas> element.
heightNumberwindow.innerHeight || 200Height of the <canvas> element.
numberOfPiecesNumber200Number of confetti pieces at one time.
confettiSource{ x: Number, y: Number, w: Number, h: Number }{x: 0, y: 0, w: canvas.width, h:0}Rectangle where the confetti should spawn. Default is across the top.
frictionNumber0.99
windNumber0
gravityNumber0.1
initialVelocityXNumber | { min: Number, max: Number }4Range of values between which confetti is emitted horizontally, positive numbers being rightward, and negative numbers being leftward. Giving a number x is equivalent to giving a range { min: -x, max: x }.
initialVelocityYNumber | { min: Number, max: Number }10Range of values between which confetti is emitted vertically, positive numbers being downward, and negative numbers being upward. Giving a number y is equivalent to giving a range { min: -y, max: 0 }.
colorsString[]['#f44336'
'#e91e63'
'#9c27b0'
'#673ab7'
'#3f51b5'
'#2196f3'
'#03a9f4'
'#00bcd4'
'#009688'
'#4CAF50'
'#8BC34A'
'#CDDC39'
'#FFEB3B'
'#FFC107'
'#FF9800'
'#FF5722'
'#795548']
All available Colors for the confetti pieces.
opacityNumber1.0
recycleBooltrueKeep spawning confetti after numberOfPieces pieces have been shown.
runBooltrueRun the animation loop
tweenDurationNumber5000How fast the confetti is added
tweenFunction(currentTime: number, currentValue: number, targetValue: number, duration: number, s?: number) => numbereaseInOutQuadSee tween-functions
drawShape(context: CanvasRenderingContext2D) => voidundefinedSee below
onConfettiComplete(confetti: Confetti) => voidundefinedCalled when all confetti has fallen off-canvas.

drawShape()

Draw a custom shape for a particle. If not provided, defaults to a random selection of a square, circle or strip confetto. The function is called with the canvas context as a parameter and the Particle as the this context.

For example, to draw all spirals:

<Confetti
  drawShape={ctx => {
    ctx.beginPath()
    for(let i = 0; i < 22; i++) {
      const angle = 0.35 * i
      const x = (0.2 + (1.5 * angle)) * Math.cos(angle)
      const y = (0.2 + (1.5 * angle)) * Math.sin(angle)
      ctx.lineTo(x, y)
    }
    ctx.stroke()
    ctx.closePath()
  }}
/>

Keywords

FAQs

Last updated on 20 May 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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc