Home

Awesome

react-particle-effect-button (demo)

Bursting particle effect buttons for React.

NPM Build Status JavaScript Style Guide

Demo

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

PropertyTypeDefaultDescription
hiddenbooleanfalseWhether button should be hidden or visible. Changing this prop starts an animation.
colorstring'#000'Particle color. Should match the button content's background color
childrenReact NodeundefinedThe contents of the button.
durationnumber1000Animation duration in milliseconds.
easingstring'easeInOutCubic'Animation easing.
typestringcircle'circle' or 'rectangle' or 'triangle'
stylestringfill'fill' or 'stroke'
directionstring'left''left' or 'right' or 'top' or 'bottom'
canvasPaddingnumber150Amount of extra padding to add to the canvas since the animation will overflow the content's bounds
sizenumberfuncrandom(4)
speednumberfuncrandom(4)
particlesAmountCoefficientnumber3Increases or decreases the relative number of particles
oscillationCoefficientnumber20Increases or decreases the relative curvature of particles
onBeginfuncnoopCallback to be notified once an animation starts.
onCompletefuncnoopCallback to be notified once an animation completes.

I tried to keep the properties exactly the same as in the original codrops version.

Related

This module was bootstrapped with create-react-library.

License

MIT © Travis Fischer

Support my OSS work by <a href="https://twitter.com/transitive_bs">following me on twitter <img src="https://storage.googleapis.com/saasify-assets/twitter-logo.svg" alt="twitter" height="24px" align="center"></a>