<!-- https://github.com/matteobruni/tsparticles
https://particles.js.org
https://confetti.js.org
-->
<div class="github">
<a class="btn btn-link" href="https://github.com/matteobruni/tsparticles" title="Find more info on GitHub">
<img class="img-fluid" id="gh-mark" src="https://particles.js.org/images/GitHub-Mark-120px-plus.png" alt="">
<span id="gh-project">tsParticles</span>
</a>
<div>
<a class="github-button" href="https://github.com/matteobruni/tsparticles" data-icon="octicon-star" aria-label="Star matteobruni/tsparticles on GitHub">Star</a>
<a class="github-button" href="https://github.com/matteobruni/tsparticles/fork" data-icon="octicon-repo-forked" aria-label="Fork matteobruni/tsparticles on GitHub">Fork</a>
</div>
</div>
<script async="" defer="" src="https://buttons.github.io/buttons.js"></script>
/* ---- reset ---- */
.github {
z-index: 10000;
bottom: 10px;
right: 10px;
position: fixed;
border-radius: 10px;
background: #fff;
padding: 0 12px 6px 12px;
border: 1px solid #000;
}
.github a:hover,
.github a:link,
.github a:visited,
.github a:active {
color: #000;
text-decoration: none;
}
.github img {
height: 30px;
}
.github #gh-project {
font-size: 20px;
padding-left: 5px;
font-weight: bold;
vertical-align: bottom;
}
import { tsParticles } from "https://cdn.jsdelivr.net/npm/tsparticles-engine/+esm";
import { loadFull } from "https://cdn.jsdelivr.net/npm/tsparticles/+esm";
// tsParticles: https://particles.js.org
// GitHub: https://github.com/matteobruni/tsparticles
async function loadParticles(options) {
await loadFull(tsParticles);
await tsParticles.load(options);
}
const configs = {
particles: {
number: {
value: 0
},
stroke: {
color: {
value: "#ff0000",
animation: {
enable: true,
speed: 360,
sync: true
}
},
width: 2
},
shape: {
type: ["circle", "square", "triangle", "polygon"],
options: {
circle: {
fill: false
},
square: {
fill: false
},
triangle: {
fill: false
},
polygon: [
{
sides: 5,
fill: false
},
{
sides: 6,
fill: false
}
]
}
},
opacity: {
value: 1
},
rotate: {
value: { min: 0, max: 360 },
direction: "random",
animation: {
enable: true,
sync: true,
speed: { min: 15, max: 30 }
}
},
size: {
value: { min: 1, max: 30 },
animation: {
enable: true,
speed: { min: 40, max: 80 },
sync: true,
startValue: "max",
destroy: "min"
}
},
move: {
enable: true,
speed: { min: 5, max: 10 },
outModes: "destroy"
}
},
interactivity: {
events: {
onHover: {
enable: true,
mode: "trail"
}
},
modes: {
trail: {
delay: 0,
quantity: 7,
pauseOnStop: false
}
}
},
background: {
color: "#000000"
}
};
loadParticles(configs);
This Pen doesn't use any external JavaScript resources.