Interactive Particle Effects
Create dynamic particle systems that react to cursor movement, clicks, and user interactions in real time.
NWD Reactive Particles lets you easily add animated particle effects to any element on your Bubble app. The plugin renders interactive particles that can move, connect, and react to cursor interactions, allowing you to create subtle ambient effects, decorative backgrounds, or fully interactive visual layers with full control over particle appearance, movement, and behavior.
Built for what Bubble does not cover.
Bubble's background styling stops at a flat color, an image or a static gradient. A hover condition can swap one of those, but nothing follows the cursor, answers a click or keeps moving on its own.
An ambient or interactive layer like this takes custom code: a canvas to draw on, a loop to animate it, and the cleanup that keeps a second canvas from piling up every time the page updates.
Create dynamic particle systems that react to cursor movement, clicks, and user interactions in real time.
Customize particle color, size, opacity, speed, and shapes to perfectly match your UI style and branding.
Generate beautiful connections between particles with configurable line distance, linking behavior, and network effects.
Particles can attract, repel, connect, or react dynamically to cursor movement and clicks.
Particles adapt smoothly across desktop and mobile devices, maintaining a consistent visual experience.
Optimized particle rendering ensures smooth animations with minimal impact on performance.
In detail
In the Bubble editor, go to the tab "Settings > General > Advanced options" and check the box "Expose the option to add an ID attribute to HTML elements".
Set an ID to the target element.
To prevent compatibility issues, avoid starting IDs with numbers or symbols. Start with letters and use hyphens or underscores if needed.
Insert the plugin element anywhere on the page and ensure it is always visible.
In Bubble, any element-type plugin must be visible to work properly.
In the plugin element, provide the ID assigned to the target element (in step 2) and set the other plugin properties according to your needs.
Provide the ID that was assigned to the target element (where the particle effect will be rendered).
Sets the number of particles rendered on the screen.
This is a performance budget, not a style choice. With Enable density turned off, 50 to 200 particles is the comfortable range; a very high count can slow the page down and, depending on the device, crash the browser.
Enables particle density adjustment based on the area size.
With density enabled, the total is no longer a fixed count: it is calculated from the number of particles per density area, so the same Quantity renders more or fewer particles depending on the area you set.
Sets the area used to calculate particle density (increasing the area reduces the density).
A smaller area means more particles rendered. Keep the ratio between Quantity and Density area between 0.05 and 0.15, and avoid a very small area with a high quantity: that combination can slow the page down and crash the browser on weaker devices.
Sets the color of the particles.
Sets the particle shape type.
Sets the stroke width (in pixels) applied to particle shapes.
Sets the color of the stroke applied to particle shapes.
Sets the number of sides when using polygon-shaped particles
Sets the image source URL when using image-based particles.
Sets the image width (in pixels) when using image-based particles.
This is the original width of the image used by the particle. The size actually drawn on screen is controlled by Particle size.
Sets the image height (in pixels) when using image-based particles.
This is the original height of the image used by the particle. The size actually drawn on screen is controlled by Particle size.
Sets the base opacity of particles (0 - 1).
Enables random opacity variation per particle.
Enables opacity animation over time.
Sets the base radius (in pixels) of each particle.
Enables random size variation per particle.
Enables size animation over time.
Sets the rate at which particle size changes during the size animation.
Enables lines connecting nearby particles.
Sets the maximum distance (in pixels) between two particles for a line to be drawn connecting them.
Sets the color of the lines connecting nearby particles.
Sets the opacity of the connecting lines (0 - 1).
Sets the width (in pixels) of the connecting lines.
Enables particle movement.
Sets the movement direction of particles.
Adds randomness to particle movement, reducing directional uniformity.
Forces particles to move in straight lines.
Sets the movement speed of particles.
Enables attraction-based particle movement.
Sets the horizontal attraction strength.
Sets the vertical attraction strength.
Enables particle interaction when the cursor moves over the detection area.
Sets the interaction behavior triggered on hover.
Enables particle interaction when the user clicks within the detection area.
Sets the interaction behavior triggered on click.
Sets the maximum distance (in pixels) for the grab interaction, where particles connect to the cursor with lines.
Sets the opacity of the lines drawn between the cursor and nearby particles during the grab interaction (0 - 1).
Sets the maximum distance (in pixels) from the cursor where particles will react to the bubble effect.
Sets the particle size (in pixels) applied during the bubble interaction.
Sets the particle opacity during the bubble interaction (0 - 1).
Sets how long (in seconds) the bubble effect lasts after being triggered.
Sets how quickly particles transition into and out of the bubble effect.
Sets the distance (in pixels) that particles move away from the cursor during the repulse interaction.
Sets how long (in seconds) the repulse interaction lasts when particles are pushed away by the cursor.
Sets the number of particles added when the push interaction is triggered.
Sets the number of particles removed when the remove interaction is triggered.
Modern interfaces benefit from subtle motion and visual depth. Reactive particle effects create engaging backgrounds and dynamic visuals that respond to user interaction, helping interfaces feel more alive and immersive.
No. The plugin is designed to be simple and straightforward. You only need to place the element on the page and configure the particle properties in the editor.
That will depend on your settings. The default settings already ensure good performance, but you can check the documentation to find out how to configure it properly for your use case.
Yes. The particle system adapts to different screen sizes and works smoothly on both desktop and mobile devices.
Make sure the plugin element is visible on the page, that the ID set in the target element is correct and was provided to the plugin element, that the number of particles is greater than zero, that the particle color is not transparent, that a polygon shape has at least three sides configured, that particle opacity is greater than zero, and that particle size is not set to zero.
This plugin is maintained by GCS Studios and is part of the NWD UI - Effect family, plugins that add visual output an element did not have, without replacing it. Each one attaches to something already on your page and draws on top of it, with no layout to redo, and is tested in real applications before release. See more plugins on the GCS Studios contributor page.