Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@tsparticles/vue3

tsparticles12.6kMIT3.0.1TypeScript support: included

Official tsParticles Vue.js 3.x Component - Easily create highly customizable particle, confetti and fireworks animations and use them as animated backgrounds for your website. Ready to use components available also for Web Components, React, Vue.js 2.x,

front-end, frontend, tsparticles, particles.js, particlesjs, particles, particle, canvas, jsparticles, xparticles, particles-js, particles-bg, particles-bg-vue, particles-ts, particles.ts, react-particles-js, react-particles.js, react-particles, react, reactjs, vue-particles, ngx-particles, angular-particles, particleground, vue, vuejs, preact, preactjs, jquery, angularjs, angular, typescript, javascript, animation, web, html5, web-design, webdesign, css, html, css3, animated, background, confetti, canvas, fireworks, fireworks-js, confetti-js, confettijs, fireworksjs, canvas-confetti

readme

banner

@tsparticles/vue3

npm npm GitHub Sponsors

Official tsParticles VueJS 3.x component

Slack Discord Telegram

tsParticles Product Hunt

Installation

`shell script yarn add @tsparticles/vue3


## Usage

```javascript
import Particles from "@tsparticles/vue3";
//import { loadFull } from "tsparticles"; // if you are going to use `loadFull`, install the "tsparticles" package too.
import { loadSlim } from "tsparticles-slim"; // if you are going to use `loadSlim`, install the "tsparticles-slim" package too.

createApp(App).use(Particles, {
    init: async engine => {
        // await loadFull(engine); // you can load the full tsParticles library from "tsparticles" if you need it
        await loadSlim(engine); // or you can load the slim version from "tsparticles-slim" if don't need Shapes or Animations
    },
});

Demo config

<template>
    <div id="app">
        <vue-particles id="tsparticles" :particlesLoaded="particlesLoaded" url="http://foo.bar/particles.json" />

        <vue-particles
            id="tsparticles"
            :particlesLoaded="particlesLoaded"
            :options="{
                    background: {
                        color: {
                            value: '#0d47a1'
                        }
                    },
                    fpsLimit: 120,
                    interactivity: {
                        events: {
                            onClick: {
                                enable: true,
                                mode: 'push'
                            },
                            onHover: {
                                enable: true,
                                mode: 'repulse'
                            },
                        },
                        modes: {
                            bubble: {
                                distance: 400,
                                duration: 2,
                                opacity: 0.8,
                                size: 40
                            },
                            push: {
                                quantity: 4
                            },
                            repulse: {
                                distance: 200,
                                duration: 0.4
                            }
                        }
                    },
                    particles: {
                        color: {
                            value: '#ffffff'
                        },
                        links: {
                            color: '#ffffff',
                            distance: 150,
                            enable: true,
                            opacity: 0.5,
                            width: 1
                        },
                        move: {
                            direction: 'none',
                            enable: true,
                            outModes: 'bounce',
                            random: false,
                            speed: 6,
                            straight: false
                        },
                        number: {
                            density: {
                                enable: true,
                            },
                            value: 80
                        },
                        opacity: {
                            value: 0.5
                        },
                        shape: {
                            type: 'circle'
                        },
                        size: {
                            value: { min: 1, max: 5 }
                        }
                    },
                    detectRetina: true
                }"
        />
    </div>
</template>
const particlesLoaded = async container => {
    console.log("Particles container loaded", container);
};

TypeScript errors

If TypeScript returns error while importing/using Particles plugin try adding the following import before the previous code:

declare module "@tsparticles/vue3";

Demos

The demo website is here

https://particles.js.org

There's also a CodePen collection actively maintained and updated here

https://codepen.io/collection/DPOage

Migrating from Vue 2.x to Vue 3.x

If you are migrating your project from Vue 2.x to 3.x you need to these steps:

  • Change the dependency from @tsparticles/vue2 to @tsparticles/vue3
  • Update the node_modules folder executing npm install or yarn
  • Change the use function from Vue.use(Particles, { init: /* omissis */ }) to createApp(App).use(Particles, { init: /* omissis */ }).

The <vue-particles /> tag syntax remains the same, so you don't need to do any additional action.

changelog

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

3.0.1 (2024-03-06)

Note: Version bump only for package @tsparticles/vue3-workspace

3.0.0 (2023-12-22)

Bug Fixes

  • deps: update dependency eslint-config-prettier to v9 (c6ba232)
  • deps: update dependency lint-staged to v14 (30c622d)
  • example: clean up Nuxt example & fix type-checking (4a93b5d)
  • example: clean up Vite example and remove dead code (7064feb)
  • example: disable SSR for Nuxt plugin (55980f1)
  • example: remove console#log (e537e3a)
  • example: remove console#log (a89474a)
  • example: remove toRaw (f74d07d)
  • example: use proper types (17ff54e)
  • example: use type declaration (eee2cc8)
  • use event syntax for particlesLoaded (5b4de3a)

Features

2.12.0 (2023-08-04)

Note: Version bump only for package vue3-particles-workspace

2.11.1 (2023-07-27)

Bug Fixes

  • fixed issue with engine not loading correctly, closes: #26 (94e5215)

2.11.0 (2023-07-14)

Note: Version bump only for package vue3-particles-workspace

2.10.1 (2023-06-04)

Bug Fixes

  • deps: bump @babel/core from 7.20.5 to 7.20.7 (a362fb7)
  • deps: bump actions/cache from 3.0.11 to 3.2.0 (2fab42b)
  • deps: bump actions/cache from 3.0.2 to 3.0.11 (7e7ae88)
  • deps: bump actions/cache from 3.2.0 to 3.2.1 (2f04b1d)
  • deps: bump actions/cache from 3.2.1 to 3.2.2 (4b380bb)
  • deps: bump actions/setup-node from 3.2.0 to 3.5.1 (fece798)
  • deps: bump eslint from 8.29.0 to 8.30.0 (6d9d085)
  • deps: bump prettier from 2.8.0 to 2.8.1 (1dccbc0)
  • deps: update dependency @nuxtjs/eslint-module to v4 (23aec60)

Features

  • adding vue-particles tag (8b12d56)