wufe / react-particles-js

Particles.js for React
https://rpj.bembi.dev/
MIT License
1.15k stars 108 forks source link
particles react

Particles.js - React Component


Warning: deprecation notice

Since this library is not actively maintained, it has been deprecated in favor of react-tsparticles which shares the same core functionality of this library.


Particles

Particles React component, using tsParticles.

Checkout the demo page.


Installation

npm install react-particles-js || yarn add react-particles-js

How to use

Code

Example:

import Particles from 'react-particles-js';

class App extends Component{

    render(){
        return (
            <Particles />
        );
    };

}

Props

Prop Type Definition
width string The width of the canvas.
height string The height of the canvas.
params object The parameters of the particles instance.
style object The style of the canvas element.
className string The class name of the canvas wrapper.
canvasClassName string the class name of the canvas.
particlesRef object The instance of the particles container

Find your parameters configuration here.


Added functionalities

Polygon mask support

Demo: Polygon mask demo.

Available only since version v2.4.0 (available with npm install react-particles-js@2.4.0).

Requirements
<script src="https://cdn.rawgit.com/progers/pathseg/master/pathseg.js"></script>
Example
import Particles from 'react-particles-js';

class App extends Component{

    render(){
        return (
            <Particles 
                params={{
                    polygon: {
                        enable: true,
                        type: 'inside',
                        move: {
                            radius: 10
                        },
                        url: 'path/to/svg.svg'
                    }
                }} />
        );
    };

}
Parameters

Multiple images

Lets you use multiple images as particle shape.

Demo: Multiple images demo.

Available only since version v2.4.0 (available with npm install react-particles-js@2.4.0).

Example
import Particles from 'react-particles-js';

class App extends Component{

    render(){
        return (
            <Particles 
                params={{
                    particles: {
                        shape: {
                            type: 'images',
                            image: [
                                {src: 'path/to/first/image.svg', height: 20, width: 20},
                                {src: 'path/to/second/image.jpg', height: 20, width: 20},
                            ]
                        }
                    }
                }} />
        );
    };

}

Line link shadow

Adds blurred shadow to the lines of the canvas.

import Particles from 'react-particles-js';

class App extends Component{

    render(){
        return (
            <Particles 
              params={{
                    particles: {
                        line_linked: {
                            shadow: {
                                enable: true,
                                color: "#3CA9D1",
                                blur: 5
                            }
                        }
                    }
                }}
              style={{
                width: '100%',
                backgroundImage: `url(${logo})` 
              }}
            />
        );
    };

}

Reporting issues

Contributing


Info and Major changes

Starting with v3.0.0 the react-particles-js library has switched its core functionality using tsParticles. This may introduce breaking changes but will allow the library be maintained more frequently.


What's next

The main purpose of this library is to be simple to use, also allowing to be customized.

To accomplish this, an experimental branch has been created in order to provide a boilerplate for the next version of this library.

A live demonstration can be found here.

In this simple demo website, a new approach has been used, giving the application a powerful composability.
Issues concerning best practices, usability, backward compatibility and performances are raising, so..