JSPM

  • Created
  • Published
  • Downloads 7404
  • Score
    100M100P100Q139276F
  • License MIT

tsParticles Light interaction

Package Exports

  • @tsparticles/interaction-light
  • @tsparticles/interaction-light/lazy
  • @tsparticles/interaction-light/package.json

Readme

banner

tsParticles Light Interaction

jsDelivr npmjs npmjs GitHub Sponsors

tsParticles interaction plugin for light effect.

Quick checklist

  1. Install @tsparticles/engine (or use the CDN bundle below)
  2. Call loadInteractivityPlugin(tsParticles) and loadLightInteraction(tsParticles) before tsParticles.load(...)
  3. Enable "light" in interactivity events and configure interactivity.modes.light

How to use it

CDN / Vanilla JS / jQuery

The CDN/Vanilla version JS has one required file in vanilla configuration:

Including the tsparticles.interaction.light.min.js file will export the function to load the interaction plugin:

loadLightInteraction

Usage

Once the scripts are loaded you can set up tsParticles and the interaction plugin like this:

(async () => {
  await loadInteractivityPlugin(tsParticles);
  await loadLightInteraction(tsParticles);

  await tsParticles.load({
    id: "tsparticles",
    options: {
      /* options */
    },
  });
})();

ESM / CommonJS

This package is compatible also with ES or CommonJS modules, firstly this needs to be installed, like this:

$ npm install @tsparticles/interaction-light

or

$ yarn add @tsparticles/interaction-light

Then you need to import it in the app, like this:

const { tsParticles } = require("@tsparticles/engine");
const { loadInteractivityPlugin } = require("@tsparticles/plugin-interactivity");
const { loadLightInteraction } = require("@tsparticles/interaction-light");

(async () => {
  await loadInteractivityPlugin(tsParticles);
  await loadLightInteraction(tsParticles);
})();

or

import { tsParticles } from "@tsparticles/engine";
import { loadInteractivityPlugin } from "@tsparticles/plugin-interactivity";
import { loadLightInteraction } from "@tsparticles/interaction-light";

(async () => {
  await loadInteractivityPlugin(tsParticles);
  await loadLightInteraction(tsParticles);
})();

Option mapping

  • Event mode key: interactivity.events.onHover.mode or interactivity.events.onClick.mode with value "light"
  • Mode options key: interactivity.modes.light

interactivity.modes.light properties

Key Type Default Notes
area.radius number 1000 Light interaction radius
area.gradient.start color Gradient start color
area.gradient.stop color Gradient stop color
shadow.color color "#000000" Shadow/tint color
shadow.length number 2000 Shadow projection length
{
  "interactivity": {
    "events": {
      "onHover": {
        "enable": true,
        "mode": "light"
      }
    },
    "modes": {
      "light": {
        "area": {
          "radius": 700,
          "gradient": {
            "start": "#ffffff",
            "stop": "#000000"
          }
        },
        "shadow": {
          "color": "#000000",
          "length": 1400
        }
      }
    }
  }
}

Common pitfalls

  • Calling tsParticles.load(...) before both loadInteractivityPlugin(...) and loadLightInteraction(...)
  • Verify required peer packages before enabling advanced options
  • Change one option group at a time to isolate regressions quickly