particles.js website customization sample usage

Customizing Websites with particles.js - Sample Code and Usage

This time, we'll introduce how to customize websites using particles.js. We'll also introduce readily usable samples and usage.

Shou Arisaka
2 min read
Nov 5, 2025

Using particles.js, you can implement animated backgrounds on your website.

To implement it easily, paste the following code inside the body tag of header.php. The key is to write <div id=“particles-js”></div> before loading the script. Without this, it won’t work.


<div id="particles-js"></div>
<link rel="stylesheet" href="https://yuis.xsrv.jp/cdn/css/particles_js/main.css">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/particles.min.js"></script>
<script src="https://yuis.xsrv.jp/cdn/js/particles_js/app.js"></script>

By the way, app.js and main.css look like the following code.

main.css

#particles-js{
    position: fixed;
  width: 100%;
  height: 100%;
  z-index: -1;
}

app.js


particlesJS("particles-js", {
  "particles": {
    "number": {
      "value": 80,
      "density": {
        "enable": true,
        "value_area": 800
      }
    },
    "color": {
      "value": "#000000"
    },
    "shape": {
      "type": "circle",
      "stroke": {
        "width": 0,
        "color": "#fff"
      },
      "polygon": {
        "nb_sides": 5
      },
      "image": {
        "src": "img/github.svg",
        "width": 100,
        "height": 100
      }
    },
    "opacity": {
      "value": 0.5,
      "random": false,
      "anim": {
        "enable": false,
        "speed": 1,
        "opacity_min": 0.1,
        "sync": false
      }
    },
    "size": {
      "value": 2,
      "random": true,
      "anim": {
        "enable": false,
        "speed": 40,
        "size_min": 0.1,
        "sync": false
      }
    },
    "line_linked": {
      "enable": true,
      "distance": 150,
      "color": "#000000",
      "opacity": 0.4,
      "width": 1
    },
    "move": {
      "enable": true,
      "speed": 2,
      "direction": "none",
      "random": false,
      "straight": false,
      "out_mode": "out",
      "bounce": false,
      "attract": {
        "enable": false,
        "rotateX": 600,
        "rotateY": 1200
      }
    }
  },
  "interactivity": {
    "detect_on": "canvas",
    "events": {
      "onhover": {
        "enable": true,
        "mode": "grab"
      },
      "onclick": {
        "enable": true,
        "mode": "push"
      },
      "resize": true
    },
    "modes": {
      "grab": {
        "distance": 150,
        "line_linked": {
          "opacity": 1
        }
      },
      "bubble": {
        "distance": 400,
        "size": 40,
        "duration": 2,
        "opacity": 8,
        "speed": 3
      },
      "repulse": {
        "distance": 200,
        "duration": 0.4
      },
      "push": {
        "particles_nb": 4
      },
      "remove": {
        "particles_nb": 2
      }
    }
  },
  "retina_detect": true
});

requestAnimationFrame();

About z-index

Since there’s no z-index, particles.js won’t respond even when you mouse over. That said, if you set z-index to positive, you won’t be able to click various links on the site. It’s unfortunate that you can’t enjoy the mouse-over action which is the biggest feature of particles.js, but I think it’s better to keep the z-index low to avoid bugs later.

Share this article

Shou Arisaka Nov 5, 2025

🔗 Copy Links