Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
0748d9a
build: improved background mask plugin and interaction with other plu…
matteobruni Jan 21, 2026
360827e
chore(plugins): created blend plugin
matteobruni Jan 22, 2026
18a3d20
build: more tests with blend configurations
matteobruni Jan 22, 2026
cc8df02
feat: add easing plugins for bounce, elastic, gaussian, sigmoid, and …
matteobruni Jan 22, 2026
ceb3daa
build: updated deps
matteobruni Jan 22, 2026
2c47402
fix: fixed copy/paste issues
matteobruni Jan 22, 2026
206fca7
Update plugins/blend/src/Options/Interfaces/IBlend.ts
matteobruni Jan 22, 2026
ea91893
build: preparing automatic delivery of new versions on tags push
matteobruni Jan 22, 2026
181689d
build: updating version script
matteobruni Jan 22, 2026
f3ad840
chore(release): published new version
matteobruni Jan 22, 2026
ba624c2
build: updating version script
matteobruni Jan 22, 2026
9886a6e
build: format fix
matteobruni Jan 22, 2026
d59fc21
build: format fix
matteobruni Jan 22, 2026
aa54383
build: format fix
matteobruni Jan 22, 2026
661cea2
chore(release): published new version
matteobruni Jan 22, 2026
c9e86b0
build: updated deps
matteobruni Jan 22, 2026
04b7c7d
chore(release): published new version
matteobruni Jan 22, 2026
a8dea30
build: updated publish workflow
matteobruni Jan 22, 2026
8984dee
build: updated CI workflow
matteobruni Jan 22, 2026
2a3d015
build: updated deps
matteobruni Jan 22, 2026
2eaf600
build: small refactoring in cards shape
matteobruni Jan 23, 2026
f4a985f
feat: add full card shape, and utilities for path drawing
matteobruni Jan 23, 2026
a886da3
fix: improved roll angle calculation and logic
matteobruni Jan 23, 2026
9208a75
build: reduced confetti bundle size using only card suits shapes
matteobruni Jan 24, 2026
e881c15
Merge pull request #5571 from tsparticles/v4
matteobruni Jan 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions .github/workflows/nodejs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ jobs:
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- run: pnpm install --no-frozen-lockfile
- run: pnpm install
#- run: npx nx-cloud start-ci-run
- run: pnpm run prettify:ci:readme
- run: npx lerna run build:ci #--concurrency 3
Expand Down Expand Up @@ -112,7 +112,7 @@ jobs:
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- run: pnpm install --no-frozen-lockfile
- run: pnpm install
#- run: npx nx-cloud start-ci-run
- run: pnpm run prettify:ci:readme
- run: npx lerna run build:ci #--concurrency 3
Expand Down Expand Up @@ -160,6 +160,6 @@ jobs:
# key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
# restore-keys: |
# ${{ runner.os }}-pnpm-store-
# - run: pnpm install --no-frozen-lockfile
# - run: pnpm install
# - name: Start Nx Agent ${{ matrix.agent }}
# run: npx nx-cloud start-agent
50 changes: 50 additions & 0 deletions .github/workflows/npm-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Publish Packages

on:
push:
tags:
- "v*"

permissions:
id-token: write
contents: read

jobs:
publish:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0

- uses: actions/setup-node@v6
with:
node-version: 24
registry-url: https://registry.npmjs.org

- uses: pnpm/action-setup@v4
with:
run_install: false

- run: pnpm install

- name: Publish
run: |
TAG="${GITHUB_REF#refs/tags/}"

if [[ "$TAG" == *"-alpha."* ]]; then
pnpm run publish:alpha
elif [[ "$TAG" == *"-beta."* ]]; then
pnpm run publish:beta
else
if [[ "$TAG" == v1* ]]; then
pnpm run publish:v1
elif [[ "$TAG" == v2* ]]; then
pnpm run publish:v2
elif [[ "$TAG" == v3* ]]; then
pnpm run publish:v3
else
pnpm run publish:next
fi
fi
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,25 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

# [4.0.0-alpha.8](https://github.com/tsparticles/tsparticles/compare/v4.0.0-alpha.7...v4.0.0-alpha.8) (2026-01-22)

**Note:** Version bump only for package @tsparticles/workspace

# [4.0.0-alpha.7](https://github.com/tsparticles/tsparticles/compare/v4.0.0-alpha.6...v4.0.0-alpha.7) (2026-01-22)

**Note:** Version bump only for package @tsparticles/workspace

# [4.0.0-alpha.6](https://github.com/tsparticles/tsparticles/compare/v4.0.0-alpha.5...v4.0.0-alpha.6) (2026-01-22)

### Bug Fixes

- fixed copy/paste issues ([2c47402](https://github.com/tsparticles/tsparticles/commit/2c47402ab4c605759cc66875fdaa54a76c49c27b))
- format fix ([dd42a71](https://github.com/tsparticles/tsparticles/commit/dd42a71857b5e1a95758186bd00b5aa92c9686a9))

### Features

- add easing plugins for bounce, elastic, gaussian, sigmoid, and smoothstep ([cc8df02](https://github.com/tsparticles/tsparticles/commit/cc8df026d06c8180210fec809d71ae1ef59a040a))

# [4.0.0-alpha.5](https://github.com/tsparticles/tsparticles/compare/v4.0.0-alpha.4...v4.0.0-alpha.5) (2026-01-21)

**Note:** Version bump only for package @tsparticles/workspace
Expand Down
210 changes: 105 additions & 105 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,77 +29,77 @@ React.js, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Inferno, Riot.j
## Table of Contents

- [tsParticles - TypeScript Particles](#tsparticles---typescript-particles)
- [Table of Contents](#table-of-contents)
- [Do you want to use it on your website?](#do-you-want-to-use-it-on-your-website)
- [**_Library installation_**](#library-installation)
- [**_Hosting / CDN_**](#hosting--cdn)
- [jsDelivr](#jsdelivr)
- [cdnjs](#cdnjs)
- [unpkg](#unpkg)
- [**_npm_**](#npm)
- [**_yarn_**](#yarn)
- [**_pnpm_**](#pnpm)
- [Import and require](#import-and-require)
- [**_Usage_**](#usage)
- [Official components for some of the most used frameworks](#official-components-for-some-of-the-most-used-frameworks)
- [Angular](#angular)
- [`@tsparticles/angular`](#@tsparticles/angular)
- [Astro](#astro)
- [`astro-particles`](#astro-particles)
- [Ember.js](#emberjs)
- [`ember-tsparticles`](#ember-tsparticles)
- [Inferno](#inferno)
- [`inferno-particles`](#inferno-particles)
- [jQuery](#jquery)
- [`jquery-particles`](#jquery-particles)
- [Preact](#preact)
- [`preact-particles`](#preact-particles)
- [ReactJS](#reactjs)
- [`@tsparticles/react`](#tsparticlesreact)
- [RiotJS](#riotjs)
- [`riot-particles`](#riot-particles)
- [SolidJS](#solidjs)
- [`solid-particles`](#solid-particles)
- [Svelte](#svelte)
- [`@tsparticles/svelte`](#@tsparticles/svelte)
- [VueJS 2.x](#vuejs-2x)
- [`@tsparticles/vue2`](#tsparticlesvue2)
- [VueJS 3.x](#vuejs-3x)
- [`@tsparticles/vue3`](#tsparticlesvue3)
- [Web Components](#web-components)
- [`web-particles`](#web-particles)
- [WordPress](#wordpress)
- [`@tsparticles/wordpress`](#@tsparticles/wordpress)
- [Elementor](#elementor)
- [Presets](#presets)
- [Big Circles](#big-circles)
- [Bubbles](#bubbles)
- [Confetti](#confetti)
- [Fire](#fire)
- [Firefly](#firefly)
- [Fireworks](#fireworks)
- [Fountain](#fountain)
- [Links](#links)
- [Sea Anemone](#sea-anemone)
- [Snow](#snow)
- [Stars](#stars)
- [Triangles](#triangles)
- [Templates and Resources](#templates-and-resources)
- [**_Demo / Generator_**](#demo--generator)
- [**_Video Tutorials_**](#video-tutorials)
- [Characters as particles](#characters-as-particles)
- [Polygon mask](#polygon-mask)
- [Animated stars](#animated-stars)
- [Nyan cat flying on scrolling stars](#nyan-cat-flying-on-scrolling-stars)
- [Snow particles](#snow-particles)
- [Background Mask particles](#background-mask-particles)
- [**_Options_**](#options)
- [Want to see it in action and try it?](#want-to-see-it-in-action-and-try-it)
- [Migrating from Particles.js](#migrating-from-particlesjs)
- [Plugins/Customizations](#pluginscustomizations)
- [Dependency Graph](#dependency-graph)
- [Sponsors](#sponsors)
- [Huge thanks to JetBrains for the 2020-2022 Open Source Licenses!](#huge-thanks-to-jetbrains-for-the-2020-2022-open-source-licenses)
- [Table of Contents](#table-of-contents)
- [Do you want to use it on your website?](#do-you-want-to-use-it-on-your-website)
- [**_Library installation_**](#library-installation)
- [**_Hosting / CDN_**](#hosting--cdn)
- [jsDelivr](#jsdelivr)
- [cdnjs](#cdnjs)
- [unpkg](#unpkg)
- [**_npm_**](#npm)
- [**_yarn_**](#yarn)
- [**_pnpm_**](#pnpm)
- [Import and require](#import-and-require)
- [**_Usage_**](#usage)
- [Official components for some of the most used frameworks](#official-components-for-some-of-the-most-used-frameworks)
- [Angular](#angular)
- [`@tsparticles/angular`](#@tsparticles/angular)
- [Astro](#astro)
- [`astro-particles`](#astro-particles)
- [Ember.js](#emberjs)
- [`ember-tsparticles`](#ember-tsparticles)
- [Inferno](#inferno)
- [`inferno-particles`](#inferno-particles)
- [jQuery](#jquery)
- [`jquery-particles`](#jquery-particles)
- [Preact](#preact)
- [`preact-particles`](#preact-particles)
- [ReactJS](#reactjs)
- [`@tsparticles/react`](#tsparticlesreact)
- [RiotJS](#riotjs)
- [`riot-particles`](#riot-particles)
- [SolidJS](#solidjs)
- [`solid-particles`](#solid-particles)
- [Svelte](#svelte)
- [`@tsparticles/svelte`](#@tsparticles/svelte)
- [VueJS 2.x](#vuejs-2x)
- [`@tsparticles/vue2`](#tsparticlesvue2)
- [VueJS 3.x](#vuejs-3x)
- [`@tsparticles/vue3`](#tsparticlesvue3)
- [Web Components](#web-components)
- [`web-particles`](#web-particles)
- [WordPress](#wordpress)
- [`@tsparticles/wordpress`](#@tsparticles/wordpress)
- [Elementor](#elementor)
- [Presets](#presets)
- [Big Circles](#big-circles)
- [Bubbles](#bubbles)
- [Confetti](#confetti)
- [Fire](#fire)
- [Firefly](#firefly)
- [Fireworks](#fireworks)
- [Fountain](#fountain)
- [Links](#links)
- [Sea Anemone](#sea-anemone)
- [Snow](#snow)
- [Stars](#stars)
- [Triangles](#triangles)
- [Templates and Resources](#templates-and-resources)
- [**_Demo / Generator_**](#demo--generator)
- [**_Video Tutorials_**](#video-tutorials)
- [Characters as particles](#characters-as-particles)
- [Polygon mask](#polygon-mask)
- [Animated stars](#animated-stars)
- [Nyan cat flying on scrolling stars](#nyan-cat-flying-on-scrolling-stars)
- [Snow particles](#snow-particles)
- [Background Mask particles](#background-mask-particles)
- [**_Options_**](#options)
- [Want to see it in action and try it?](#want-to-see-it-in-action-and-try-it)
- [Migrating from Particles.js](#migrating-from-particlesjs)
- [Plugins/Customizations](#pluginscustomizations)
- [Dependency Graph](#dependency-graph)
- [Sponsors](#sponsors)
- [Huge thanks to JetBrains for the 2020-2022 Open Source Licenses!](#huge-thanks-to-jetbrains-for-the-2020-2022-open-source-licenses)

---

Expand Down Expand Up @@ -233,52 +233,52 @@ Load tsParticles and configure the particles:
/* tsParticles.load(@params); */

tsParticles
.load({
id: "tsparticles",
url: "presets/default.json",
})
.then(container => {
console.log("callback - tsparticles config loaded");
})
.catch(error => {
console.error(error);
});
.load({
id: "tsparticles",
url: "presets/default.json",
})
.then(container => {
console.log("callback - tsparticles config loaded");
})
.catch(error => {
console.error(error);
});

//or

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

//or

tsParticles.load({
id: "tsparticles",
options: [
{
/* options here */
},
{
/* other options here */
},
],
id: "tsparticles",
options: [
{
/* options here */
},
{
/* other options here */
},
],
});
//random object

tsParticles.load({
id: "tsparticles",
options: [
{
/* options here */
},
{
/* other options here */
},
],
index: 1,
id: "tsparticles",
options: [
{
/* options here */
},
{
/* other options here */
},
],
index: 1,
}); //the second one
// Important! If the index is not in range 0...<array.length, the index will be ignored.

Expand All @@ -289,7 +289,7 @@ tsParticles.load({
/* this will be fired from all particles loaded */

tsParticles.setOnClickHandler((event, particles) => {
/* custom on click handler */
/* custom on click handler */
});

// now you can control the animations too, it's possible to pause and resume the animations
Expand Down
18 changes: 18 additions & 0 deletions bundles/all/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,24 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

# [4.0.0-alpha.8](https://github.com/tsparticles/tsparticles/compare/v4.0.0-alpha.7...v4.0.0-alpha.8) (2026-01-22)

**Note:** Version bump only for package @tsparticles/all

# [4.0.0-alpha.7](https://github.com/tsparticles/tsparticles/compare/v4.0.0-alpha.6...v4.0.0-alpha.7) (2026-01-22)

**Note:** Version bump only for package @tsparticles/all

# [4.0.0-alpha.6](https://github.com/tsparticles/tsparticles/compare/v4.0.0-alpha.5...v4.0.0-alpha.6) (2026-01-22)

### Bug Fixes

- format fix ([dd42a71](https://github.com/tsparticles/tsparticles/commit/dd42a71857b5e1a95758186bd00b5aa92c9686a9))

### Features

- add easing plugins for bounce, elastic, gaussian, sigmoid, and smoothstep ([cc8df02](https://github.com/tsparticles/tsparticles/commit/cc8df026d06c8180210fec809d71ae1ef59a040a))

# [4.0.0-alpha.5](https://github.com/tsparticles/tsparticles/compare/v4.0.0-alpha.4...v4.0.0-alpha.5) (2026-01-21)

**Note:** Version bump only for package @tsparticles/all
Expand Down
Loading
Loading