2.3.1 • Published 7 years ago
@vestwell/react-confetti v2.3.1
react-confetti
Confetti without the cleanup. Demo
Based on a pen by @Gthibaud: https://codepen.io/Gthibaud/pen/ENzXbp
Install
npm i -S react-confetti
Use
width
and height
props are required. Here, they are provided by react-sizeme:
import PropTypes from 'prop-types'
import React from 'react'
import ReactDOM from 'react-dom'
import sizeMe from 'react-sizeme'
import Confetti from './react-confetti'
const DimensionedExample = sizeMe({
monitorHeight: true,
monitorWidth: true,
})(class Example extends React.PureComponent {
static propTypes = {
size: PropTypes.shape({
width: PropTypes.number,
height: PropTypes.number,
}),
}
render() {
return (
<div style={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%' }}>
<Confetti {...this.props.size} />
</div>
)
}
})
ReactDOM.render(<DimensionedExample />, document.getElementById('app'))
Props
Property | Type | Default | Description |
---|---|---|---|
width | Number | '100%' | Width of the <canvas> element. |
height | Number | '100%' | Height of the <canvas> element. |
numberOfPieces | Number | 200 | Number 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. |
friction | Number | 0.99 | |
wind | Number | 0 | |
gravity | Number | 0.1 | |
colors | Array of String | ['#f44336' '#e91e63' '#9c27b0' '#673ab7' '#3f51b5' '#2196f3' '#03a9f4' '#00bcd4' '#009688' '#4CAF50' '#8BC34A' '#CDDC39' '#FFEB3B' '#FFC107' '#FF9800' '#FF5722' '#795548'] | All available Colors for the confetti pieces. |
opacity | Number | 1.0 | |
recycle | Bool | true | Keep spawning confetti after numberOfPieces pieces have been shown. |
run | Bool | true | Run the animation loop |
2.3.1
7 years ago