react-particle-effect-button (demo)
Bursting particle effect buttons for React.
This library is a React port of an awesome Codrops Article by Luis Manuel (original source).
Install
npm install --save react-particle-effect-button
Usage
Check out the Demo to see it in action.
import React, { Component } from 'react'
import ParticleEffectButton from 'react-particle-effect-button'
class App extends Component {
state = {
hidden: false
}
render () {
return (
<ParticleEffectButton
color='#121019'
hidden={this.state.hidden}
>
BUTTON CONTENT GOES HERE
</ParticleEffectButton>
)
}
}
Note that children
can be anything from a simple <button>
to a complex React subtree. The children
should represent the button's contents.
You change the hidden
boolean prop to kick-off an animation, typically as a result of a click on the button's contents. If hidden
changes to true
, the button will perform a disintegrating animation. If hidden
changes to false
, it will reverse and reintegrate the original content.
Props, Property, Type, Default, Description, :--------------, :-------------------, :--------------------------------------, :---------------------------------------------------------------------------------------------------------------------------------------------, hidden
, boolean, false, Whether button should be hidden or visible. Changing this prop starts an animation., color
, string, '#000', Particle color. Should match the button content's background color, children
, React Node, undefined, The contents of the button., duration
, number, 1000, Animation duration in milliseconds., easing
, string, 'easeInOutCubic', Animation easing., type
, string, circle, 'circle' or 'rectangle' or 'triangle', style
, string, fill, 'fill' or 'stroke', direction
, string, 'left', 'left' or 'right' or 'top' or 'bottom', canvasPadding
, number, 150, Amount of extra padding to add to the canvas since the animation will overflow the content's bounds, size
, number, func, random(4), Particle size. May be a static number or a function which returns numbers., speed
, number, func, random(4), Particle speed. May be a static number or a function which returns numbers., particlesAmountCoefficient
, number, 3, Increases or decreases the relative number of particles, oscillationCoefficient
, number, 20, Increases or decreases the relative curvature of particles, onBegin
, func, noop, Callback to be notified once an animation starts., onComplete
, func, noop, Callback to be notified once an animation completes., I tried to keep the properties exactly the same as in the original codrops version.
Related
- anime.js - Underlying animation engine.
- ParticleEffectsButtons - Original source this library is based on.
- Codrops Article - Original article this library is based on.
This module was bootstrapped with create-react-library.
License
MIT © Travis Fischer