svelte-particles v2.0.0-beta.3
svelte-particles
Official tsParticles SvelteJS component
Installation
npm install svelte-particles svelte
or
yarn add svelte-particles svelte
Usage
<script>
import Particles from "svelte-particles";
import { loadFull } from "tsparticles";
let particlesUrl = "http://foo.bar/particles.json";
let particlesConfig = {
particles: {
color: {
value: "#000",
},
links: {
enable: true,
color: "#000",
},
move: {
enable: true,
},
},
};
let onParticlesLoaded = (event) => {
const particlesContainer = event.detail.particles;
// you can use particlesContainer to call all the Container class
// (from the core library) methods like play, pause, refresh, start, stop
};
let particlesInit = async (main) => {
// you can use main to customize the tsParticles instance adding presets or custom shapes
// this loads the tsparticles package bundle, it's the easiest method for getting everything ready
// starting from v2 you can add only the features you need reducing the bundle size
await loadFull(main);
};
</script>
<Particles
id="tsparticles"
options="{particlesConfig}"
on:particlesLoaded="{onParticlesLoaded}"
particlesInit="{particlesInit}"
/>
<!-- or -->
<Particles
id="tsparticles"
url="{particlesUrl}"
on:particlesLoaded="{onParticlesLoaded}"
particlesInit="{particlesInit}"
/>
SSR
The particles component isn't built for SSR, so you have to force the component to be called client side
with async import
.
You can see a sample below:
<script>
import { onMount } from "svelte";
import { loadFull } from "tsparticles";
let ParticlesComponent;
onMount(async () => {
const module = await import("svelte-particles");
ParticlesComponent = module.default;
});
let particlesUrl = "http://foo.bar/particles.json";
let particlesConfig = {
particles: {
color: {
value: "#000",
},
links: {
enable: true,
color: "#000",
},
move: {
enable: true,
},
},
};
let onParticlesLoaded = (event) => {
const particlesContainer = event.detail.particles;
// you can use particlesContainer to call all the Container class
// (from the core library) methods like play, pause, refresh, start, stop
};
let particlesInit = async (main) => {
// you can use main to customize the tsParticles instance adding presets or custom shapes
// this loads the tsparticles package bundle, it's the easiest method for getting everything ready
// starting from v2 you can add only the features you need reducing the bundle size
await loadFull(main);
};
</script>
<svelte:component
this="{ParticlesComponent}"
id="tsparticles"
options="{particlesConfig}"
on:particlesLoaded="{onParticlesLoaded}"
particlesInit="{particlesInit}"
/>
<!-- or -->
<svelte:component
this="{ParticlesComponent}"
id="tsparticles"
url="{particlesUrl}"
on:particlesLoaded="{onParticlesLoaded}"
particlesInit="{particlesInit}"
/>
Demos
The demo website is here
There's also a CodePen collection actively maintained and updated here
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
3 years ago
3 years ago
3 years ago
4 years ago
3 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago