├── .commitlintrc.json ├── .gitattributes ├── .github ├── FUNDING.yml └── workflows │ └── nodejs.yml ├── .gitignore ├── .husky ├── .gitignore └── commit-msg ├── CHANGELOG.md ├── LICENSE ├── README.md ├── apps ├── demo │ ├── CHANGELOG.md │ ├── README.md │ ├── app.js │ ├── nodemon.json │ ├── package.json │ ├── public │ │ ├── images │ │ │ ├── GitHub-Mark-120px-plus.png │ │ │ ├── GitHub_Logo.png │ │ │ ├── arrow.png │ │ │ ├── arrow.svg │ │ │ ├── background.jpg │ │ │ ├── background2.jpg │ │ │ ├── background3.jpg │ │ │ ├── biohazard.svg │ │ │ ├── canine.svg │ │ │ ├── canine1.svg │ │ │ ├── canine2.svg │ │ │ ├── deer.gvdesign │ │ │ ├── deer.svg │ │ │ ├── demo.png │ │ │ ├── favicon.ico │ │ │ ├── fruits │ │ │ │ ├── apple.png │ │ │ │ ├── avocado.png │ │ │ │ ├── banana.png │ │ │ │ ├── berries.png │ │ │ │ ├── cherry.png │ │ │ │ ├── grapes.png │ │ │ │ ├── lemon.png │ │ │ │ ├── orange.png │ │ │ │ ├── peach.png │ │ │ │ ├── pear.png │ │ │ │ ├── pepper.png │ │ │ │ ├── plum.png │ │ │ │ ├── star.png │ │ │ │ ├── strawberry.png │ │ │ │ ├── watermelon.png │ │ │ │ └── watermelon_slice.png │ │ │ ├── gifs │ │ │ │ ├── chars.gif │ │ │ │ ├── connect.gif │ │ │ │ ├── covid.gif │ │ │ │ ├── demo.gif │ │ │ │ ├── mask.gif │ │ │ │ ├── nasa.gif │ │ │ │ ├── nyancat.gif │ │ │ │ ├── snow.gif │ │ │ │ └── snow_trees.gif │ │ │ ├── github.png │ │ │ ├── github.svg │ │ │ ├── google.svg │ │ │ ├── hollowknight.svg │ │ │ ├── loveknight.svg │ │ │ ├── plane_alt.png │ │ │ ├── presets │ │ │ │ ├── bigCircles.png │ │ │ │ ├── bubbles.png │ │ │ │ ├── confetti.png │ │ │ │ ├── fire.png │ │ │ │ ├── firefly.png │ │ │ │ ├── fireworks.png │ │ │ │ ├── fountain.png │ │ │ │ ├── hyperspace.png │ │ │ │ ├── links.png │ │ │ │ ├── seaAnemone.png │ │ │ │ ├── snow.png │ │ │ │ ├── stars.png │ │ │ │ └── triangles.png │ │ │ ├── sars-cov-2.png │ │ │ └── smalldeer.svg │ │ ├── javascripts │ │ │ ├── confetti.js │ │ │ ├── demo.js │ │ │ └── fireworks.js │ │ └── stylesheets │ │ │ ├── .gitignore │ │ │ ├── main.styl │ │ │ └── presets.styl │ └── views │ │ ├── .gitignore │ │ ├── bigCircles.pug │ │ ├── bubbles.pug │ │ ├── confetti.pug │ │ ├── fire.pug │ │ ├── firefly.pug │ │ ├── fireworks.pug │ │ ├── fountain.pug │ │ ├── hyperspace.pug │ │ ├── index.pug │ │ ├── links.pug │ │ ├── seaAnemone.pug │ │ ├── snow.pug │ │ ├── squares.pug │ │ ├── stars.pug │ │ └── triangles.pug └── vite │ ├── .gitignore │ ├── CHANGELOG.md │ ├── index.html │ ├── package.json │ ├── public │ └── vite.svg │ ├── src │ ├── main.ts │ ├── style.css │ └── vite-env.d.ts │ └── tsconfig.json ├── lerna.json ├── package.json ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── presets ├── bigCircles │ ├── .browserslistrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── images │ │ └── sample.png │ ├── package.dist.json │ ├── package.json │ ├── src │ │ ├── bundle.ts │ │ ├── index.ts │ │ └── options.ts │ ├── tsconfig.base.json │ ├── tsconfig.browser.json │ ├── tsconfig.json │ ├── tsconfig.module.json │ ├── tsconfig.types.json │ ├── tsconfig.umd.json │ ├── typedoc.json │ └── webpack.config.js ├── bubbles │ ├── .browserslistrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── images │ │ └── sample.png │ ├── package.dist.json │ ├── package.json │ ├── src │ │ ├── bundle.ts │ │ ├── index.ts │ │ └── options.ts │ ├── tsconfig.base.json │ ├── tsconfig.browser.json │ ├── tsconfig.json │ ├── tsconfig.module.json │ ├── tsconfig.types.json │ ├── tsconfig.umd.json │ ├── typedoc.json │ └── webpack.config.js ├── confetti │ ├── .browserslistrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── images │ │ └── sample.png │ ├── package.dist.json │ ├── package.json │ ├── src │ │ ├── bundle.ts │ │ ├── index.ts │ │ └── options.ts │ ├── tsconfig.base.json │ ├── tsconfig.browser.json │ ├── tsconfig.json │ ├── tsconfig.module.json │ ├── tsconfig.types.json │ ├── tsconfig.umd.json │ ├── typedoc.json │ └── webpack.config.js ├── fire │ ├── .browserslistrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── images │ │ └── sample.png │ ├── package.dist.json │ ├── package.json │ ├── src │ │ ├── bundle.ts │ │ ├── index.ts │ │ └── options.ts │ ├── tsconfig.base.json │ ├── tsconfig.browser.json │ ├── tsconfig.json │ ├── tsconfig.module.json │ ├── tsconfig.types.json │ ├── tsconfig.umd.json │ ├── typedoc.json │ └── webpack.config.js ├── firefly │ ├── .browserslistrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── images │ │ └── sample.png │ ├── package.dist.json │ ├── package.json │ ├── src │ │ ├── bundle.ts │ │ ├── index.ts │ │ └── options.ts │ ├── tsconfig.base.json │ ├── tsconfig.browser.json │ ├── tsconfig.json │ ├── tsconfig.module.json │ ├── tsconfig.types.json │ ├── tsconfig.umd.json │ ├── typedoc.json │ └── webpack.config.js ├── fireworks │ ├── .browserslistrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── images │ │ └── sample.png │ ├── package.dist.json │ ├── package.json │ ├── src │ │ ├── bundle.ts │ │ ├── index.ts │ │ └── options.ts │ ├── tsconfig.base.json │ ├── tsconfig.browser.json │ ├── tsconfig.json │ ├── tsconfig.module.json │ ├── tsconfig.types.json │ ├── tsconfig.umd.json │ ├── typedoc.json │ └── webpack.config.js ├── fountain │ ├── .browserslistrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── images │ │ └── sample.png │ ├── package.dist.json │ ├── package.json │ ├── src │ │ ├── bundle.ts │ │ ├── index.ts │ │ └── options.ts │ ├── tsconfig.base.json │ ├── tsconfig.browser.json │ ├── tsconfig.json │ ├── tsconfig.module.json │ ├── tsconfig.types.json │ ├── tsconfig.umd.json │ ├── typedoc.json │ └── webpack.config.js ├── hyperspace │ ├── .browserslistrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── images │ │ └── sample.png │ ├── package.dist.json │ ├── package.json │ ├── src │ │ ├── bundle.ts │ │ ├── index.ts │ │ └── options.ts │ ├── tsconfig.base.json │ ├── tsconfig.browser.json │ ├── tsconfig.json │ ├── tsconfig.module.json │ ├── tsconfig.types.json │ ├── tsconfig.umd.json │ ├── typedoc.json │ └── webpack.config.js ├── links │ ├── .browserslistrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── images │ │ └── sample.png │ ├── package.dist.json │ ├── package.json │ ├── src │ │ ├── bundle.ts │ │ ├── index.ts │ │ └── options.ts │ ├── tsconfig.base.json │ ├── tsconfig.browser.json │ ├── tsconfig.json │ ├── tsconfig.module.json │ ├── tsconfig.types.json │ ├── tsconfig.umd.json │ ├── typedoc.json │ └── webpack.config.js ├── seaAnemone │ ├── .browserslistrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── images │ │ └── sample.png │ ├── package.dist.json │ ├── package.json │ ├── src │ │ ├── bundle.ts │ │ ├── index.ts │ │ └── options.ts │ ├── tsconfig.base.json │ ├── tsconfig.browser.json │ ├── tsconfig.json │ ├── tsconfig.module.json │ ├── tsconfig.types.json │ ├── tsconfig.umd.json │ ├── typedoc.json │ └── webpack.config.js ├── snow │ ├── .browserslistrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── images │ │ └── sample.png │ ├── package.dist.json │ ├── package.json │ ├── src │ │ ├── bundle.ts │ │ ├── index.ts │ │ └── options.ts │ ├── tsconfig.base.json │ ├── tsconfig.browser.json │ ├── tsconfig.json │ ├── tsconfig.module.json │ ├── tsconfig.types.json │ ├── tsconfig.umd.json │ ├── typedoc.json │ └── webpack.config.js ├── squares │ ├── .browserslistrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── images │ │ └── sample.png │ ├── package.dist.json │ ├── package.json │ ├── src │ │ ├── bundle.ts │ │ ├── index.ts │ │ └── options.ts │ ├── tsconfig.base.json │ ├── tsconfig.browser.json │ ├── tsconfig.json │ ├── tsconfig.module.json │ ├── tsconfig.types.json │ ├── tsconfig.umd.json │ └── webpack.config.js ├── stars │ ├── .browserslistrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── images │ │ └── sample.png │ ├── package.dist.json │ ├── package.json │ ├── src │ │ ├── bundle.ts │ │ ├── index.ts │ │ └── options.ts │ ├── tsconfig.base.json │ ├── tsconfig.browser.json │ ├── tsconfig.json │ ├── tsconfig.module.json │ ├── tsconfig.types.json │ ├── tsconfig.umd.json │ ├── typedoc.json │ └── webpack.config.js └── triangles │ ├── .browserslistrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── images │ └── sample.png │ ├── package.dist.json │ ├── package.json │ ├── src │ ├── bundle.ts │ ├── index.ts │ └── options.ts │ ├── tsconfig.base.json │ ├── tsconfig.browser.json │ ├── tsconfig.json │ ├── tsconfig.module.json │ ├── tsconfig.types.json │ ├── tsconfig.umd.json │ ├── typedoc.json │ └── webpack.config.js ├── renovate.json ├── tsconfig.json └── typedoc.json /.commitlintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "@commitlint/config-conventional" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto eol=lf 3 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: matteobruni,tsparticles 4 | -------------------------------------------------------------------------------- /.husky/.gitignore: -------------------------------------------------------------------------------- 1 | _ 2 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | npx --no -- commitlint --edit "" 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Matteo Bruni 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /apps/demo/README.md: -------------------------------------------------------------------------------- 1 | # `main` 2 | 3 | > TODO: description 4 | 5 | ## Usage 6 | 7 | ```javascript 8 | const main = require('main'); 9 | 10 | // TODO: DEMONSTRATE API 11 | ``` 12 | -------------------------------------------------------------------------------- /apps/demo/nodemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "restartable": "rs", 3 | "ignore": [ 4 | ".git", 5 | "node_modules/**/node_modules", 6 | "public/stylesheets/**/*.css", 7 | "views/**/*.html" 8 | ], 9 | "watch": [ 10 | "views", 11 | "public", 12 | "app.js" 13 | ], 14 | "ext": "*" 15 | } 16 | -------------------------------------------------------------------------------- /apps/demo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tsparticles/presets-demo", 3 | "private": true, 4 | "version": "3.2.0", 5 | "description": "> TODO: description", 6 | "author": "Matteo Bruni ", 7 | "homepage": "https://particles.js.org", 8 | "license": "MIT", 9 | "main": "app.js", 10 | "files": [ 11 | "app.js" 12 | ], 13 | "repository": { 14 | "type": "git", 15 | "url": "git+https://github.com/tsparticles/presets.git" 16 | }, 17 | "bugs": { 18 | "url": "https://github.com/tsparticles/presets/issues" 19 | }, 20 | "scripts": { 21 | "start": "node app.js", 22 | "watch": "nodemon app.js" 23 | }, 24 | "devDependencies": { 25 | "@fortawesome/fontawesome-free": "^6.5.2", 26 | "@popperjs/core": "^2.11.8", 27 | "bootstrap": "^5.3.3", 28 | "connect-livereload": "^0.6.1", 29 | "express": "^4.19.2", 30 | "express-rate-limit": "^7.3.0", 31 | "helmet": "^7.1.0", 32 | "jquery": "^3.7.1", 33 | "jsoneditor": "^10.0.3", 34 | "livereload": "^0.9.3", 35 | "lodash": "^4.17.21", 36 | "nodemon": "^3.1.2", 37 | "pug": "^3.0.3", 38 | "stats.ts": "^1.1.0", 39 | "stylus": "^0.63.0" 40 | }, 41 | "dependencies": { 42 | "@tsparticles/preset-big-circles": "workspace:^", 43 | "@tsparticles/preset-bubbles": "workspace:^", 44 | "@tsparticles/preset-confetti": "workspace:^", 45 | "@tsparticles/preset-fire": "workspace:^", 46 | "@tsparticles/preset-firefly": "workspace:^", 47 | "@tsparticles/preset-fireworks": "workspace:^", 48 | "@tsparticles/preset-fountain": "workspace:^", 49 | "@tsparticles/preset-hyperspace": "workspace:^", 50 | "@tsparticles/preset-links": "workspace:^", 51 | "@tsparticles/preset-sea-anemone": "workspace:^", 52 | "@tsparticles/preset-snow": "workspace:^", 53 | "@tsparticles/preset-squares": "workspace:^", 54 | "@tsparticles/preset-stars": "workspace:^", 55 | "@tsparticles/preset-triangles": "workspace:^" 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /apps/demo/public/images/GitHub-Mark-120px-plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/GitHub-Mark-120px-plus.png -------------------------------------------------------------------------------- /apps/demo/public/images/GitHub_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/GitHub_Logo.png -------------------------------------------------------------------------------- /apps/demo/public/images/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/arrow.png -------------------------------------------------------------------------------- /apps/demo/public/images/arrow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/demo/public/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/background.jpg -------------------------------------------------------------------------------- /apps/demo/public/images/background2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/background2.jpg -------------------------------------------------------------------------------- /apps/demo/public/images/background3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/background3.jpg -------------------------------------------------------------------------------- /apps/demo/public/images/biohazard.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/demo/public/images/deer.gvdesign: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/deer.gvdesign -------------------------------------------------------------------------------- /apps/demo/public/images/demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/demo.png -------------------------------------------------------------------------------- /apps/demo/public/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/favicon.ico -------------------------------------------------------------------------------- /apps/demo/public/images/fruits/apple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/fruits/apple.png -------------------------------------------------------------------------------- /apps/demo/public/images/fruits/avocado.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/fruits/avocado.png -------------------------------------------------------------------------------- /apps/demo/public/images/fruits/banana.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/fruits/banana.png -------------------------------------------------------------------------------- /apps/demo/public/images/fruits/berries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/fruits/berries.png -------------------------------------------------------------------------------- /apps/demo/public/images/fruits/cherry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/fruits/cherry.png -------------------------------------------------------------------------------- /apps/demo/public/images/fruits/grapes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/fruits/grapes.png -------------------------------------------------------------------------------- /apps/demo/public/images/fruits/lemon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/fruits/lemon.png -------------------------------------------------------------------------------- /apps/demo/public/images/fruits/orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/fruits/orange.png -------------------------------------------------------------------------------- /apps/demo/public/images/fruits/peach.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/fruits/peach.png -------------------------------------------------------------------------------- /apps/demo/public/images/fruits/pear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/fruits/pear.png -------------------------------------------------------------------------------- /apps/demo/public/images/fruits/pepper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/fruits/pepper.png -------------------------------------------------------------------------------- /apps/demo/public/images/fruits/plum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/fruits/plum.png -------------------------------------------------------------------------------- /apps/demo/public/images/fruits/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/fruits/star.png -------------------------------------------------------------------------------- /apps/demo/public/images/fruits/strawberry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/fruits/strawberry.png -------------------------------------------------------------------------------- /apps/demo/public/images/fruits/watermelon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/fruits/watermelon.png -------------------------------------------------------------------------------- /apps/demo/public/images/fruits/watermelon_slice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/fruits/watermelon_slice.png -------------------------------------------------------------------------------- /apps/demo/public/images/gifs/chars.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/gifs/chars.gif -------------------------------------------------------------------------------- /apps/demo/public/images/gifs/connect.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/gifs/connect.gif -------------------------------------------------------------------------------- /apps/demo/public/images/gifs/covid.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/gifs/covid.gif -------------------------------------------------------------------------------- /apps/demo/public/images/gifs/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/gifs/demo.gif -------------------------------------------------------------------------------- /apps/demo/public/images/gifs/mask.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/gifs/mask.gif -------------------------------------------------------------------------------- /apps/demo/public/images/gifs/nasa.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/gifs/nasa.gif -------------------------------------------------------------------------------- /apps/demo/public/images/gifs/nyancat.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/gifs/nyancat.gif -------------------------------------------------------------------------------- /apps/demo/public/images/gifs/snow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/gifs/snow.gif -------------------------------------------------------------------------------- /apps/demo/public/images/gifs/snow_trees.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/gifs/snow_trees.gif -------------------------------------------------------------------------------- /apps/demo/public/images/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/github.png -------------------------------------------------------------------------------- /apps/demo/public/images/github.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/demo/public/images/google.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/demo/public/images/plane_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/plane_alt.png -------------------------------------------------------------------------------- /apps/demo/public/images/presets/bigCircles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/presets/bigCircles.png -------------------------------------------------------------------------------- /apps/demo/public/images/presets/bubbles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/presets/bubbles.png -------------------------------------------------------------------------------- /apps/demo/public/images/presets/confetti.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/presets/confetti.png -------------------------------------------------------------------------------- /apps/demo/public/images/presets/fire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/presets/fire.png -------------------------------------------------------------------------------- /apps/demo/public/images/presets/firefly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/presets/firefly.png -------------------------------------------------------------------------------- /apps/demo/public/images/presets/fireworks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/presets/fireworks.png -------------------------------------------------------------------------------- /apps/demo/public/images/presets/fountain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/presets/fountain.png -------------------------------------------------------------------------------- /apps/demo/public/images/presets/hyperspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/presets/hyperspace.png -------------------------------------------------------------------------------- /apps/demo/public/images/presets/links.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/presets/links.png -------------------------------------------------------------------------------- /apps/demo/public/images/presets/seaAnemone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/presets/seaAnemone.png -------------------------------------------------------------------------------- /apps/demo/public/images/presets/snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/presets/snow.png -------------------------------------------------------------------------------- /apps/demo/public/images/presets/stars.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/presets/stars.png -------------------------------------------------------------------------------- /apps/demo/public/images/presets/triangles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/presets/triangles.png -------------------------------------------------------------------------------- /apps/demo/public/images/sars-cov-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/apps/demo/public/images/sars-cov-2.png -------------------------------------------------------------------------------- /apps/demo/public/javascripts/confetti.js: -------------------------------------------------------------------------------- 1 | var end = Date.now() + (15 * 1000); 2 | 3 | var colors = ['#bb0000', '#ffffff']; 4 | 5 | (function frame() { 6 | confetti({ 7 | particleCount: 2, 8 | angle: 60, 9 | spread: 55, 10 | origin: { x: 0 }, 11 | colors: colors 12 | }); 13 | confetti({ 14 | particleCount: 2, 15 | angle: 120, 16 | spread: 55, 17 | origin: { x: 1 }, 18 | colors: colors 19 | }); 20 | 21 | if (Date.now() < end) { 22 | requestAnimationFrame(frame); 23 | } 24 | }()); -------------------------------------------------------------------------------- /apps/demo/public/javascripts/fireworks.js: -------------------------------------------------------------------------------- 1 | (async () => { 2 | /*const f =*/ await fireworks(); 3 | 4 | /*setTimeout(() => { 5 | f.stop(); 6 | }, 5000);*/ 7 | })(); 8 | -------------------------------------------------------------------------------- /apps/demo/public/stylesheets/.gitignore: -------------------------------------------------------------------------------- 1 | *.css -------------------------------------------------------------------------------- /apps/demo/public/stylesheets/main.styl: -------------------------------------------------------------------------------- 1 | html 2 | height 100% 3 | overflow hidden 4 | 5 | body 6 | line-height 1 7 | height 100% 8 | overflow hidden 9 | padding 0 10 | margin 0 11 | 12 | #tsparticles 13 | width 100% 14 | height 100% 15 | 16 | #editor 17 | background-color white 18 | z-index 1 19 | 20 | /* ---- stats.js ---- */ 21 | .github 22 | bottom 10px 23 | right 10px 24 | position absolute 25 | border-radius 10px 26 | background #fff 27 | border 1px solid #000 28 | 29 | a 30 | color #000 31 | 32 | &:hover, &:link, &:visited, &:active 33 | color #000 34 | text-decoration none 35 | 36 | img 37 | height 30px 38 | 39 | #gh-project 40 | font-size 20px 41 | padding-left 5px 42 | font-weight bold 43 | vertical-align bottom 44 | 45 | .toggle-sidebar 46 | top 50% 47 | left 0 48 | font-size 20px 49 | color #000000 50 | position absolute 51 | padding 3px 52 | border-top-right-radius 5px 53 | border-bottom-right-radius 5px 54 | background #e7e7e7 55 | border 1px solid #000 56 | border-left none 57 | 58 | .count-particles 59 | background #000022 60 | position absolute 61 | top 51px 62 | left 3px 63 | width 80px 64 | color #13e8e9 65 | font-size .8em 66 | text-align left 67 | text-indent 4px 68 | line-height 14px 69 | padding-bottom 2px 70 | border-radius 3px 3px 0 0 71 | font-family Helvetica, Arial, sans-serif 72 | font-weight bold 73 | 74 | #stats, .count-particles 75 | -webkit-user-select none 76 | 77 | #stats 78 | overflow hidden 79 | 80 | #stats-graph 81 | canvas 82 | border-radius 3px 3px 0 0 83 | 84 | .count-particles 85 | border-radius 0 0 3px 3px 86 | 87 | *[hidden] 88 | display none 89 | -------------------------------------------------------------------------------- /apps/demo/public/stylesheets/presets.styl: -------------------------------------------------------------------------------- 1 | html 2 | height 100% 3 | overflow hidden 4 | 5 | body 6 | line-height 1 7 | height 100% 8 | overflow hidden 9 | 10 | #stats 11 | -webkit-user-select none 12 | 13 | #stats 14 | overflow hidden 15 | 16 | #stats-graph 17 | canvas 18 | border-radius 3px 3px 0 0 19 | -------------------------------------------------------------------------------- /apps/demo/views/.gitignore: -------------------------------------------------------------------------------- 1 | *.html -------------------------------------------------------------------------------- /apps/demo/views/bigCircles.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang="en") 3 | head 4 | meta(charset="utf-8") 5 | meta(name="description", content= "tsParticles") 6 | meta(name="author", content= "Matteo Bruni") 7 | meta(name="apple-mobile-web-app-capable" content="yes") 8 | meta(name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no") 9 | 10 | meta(name="twitter:card" content="summary_large_image") 11 | meta(name="twitter:creator" content="@HollowMatt_ITA") 12 | meta(name="twitter:image:src" content="https://particles.js.org/images/demo2.png") 13 | meta(property="og:title" content="tsParticles - A lightweight TypeScript library for creating particles") 14 | meta(property="og:site_name" content="tsParticles") 15 | meta(property="og:url" content="https://particles.js.org/") 16 | meta(property="og:description" content="A lightweight TypeScript library for creating particles.") 17 | meta(property="og:image" content="https://particles.js.org/images/demo2.png") 18 | 19 | title tsParticles 20 | 21 | link(rel="stylesheet" href="/stylesheets/presets.css") 22 | body 23 | #stats 24 | #tsparticles 25 | 26 | script(src="/stats.ts/dist/stats.min.js") 27 | script(src="/preset-big-circles/tsparticles.preset.bigCircles.bundle.min.js") 28 | script. 29 | (async (engine) => { 30 | await loadBigCirclesPreset(engine); 31 | 32 | await engine.load({ 33 | id: "tsparticles", 34 | options: { 35 | preset: "bigCircles" 36 | } 37 | }).then(container => { 38 | console.log(container); 39 | }); 40 | })(tsParticles); 41 | 42 | const stats = new Stats(); 43 | 44 | stats.showPanel(0); 45 | stats.dom.style.position = "absolute"; 46 | stats.dom.style.left = "3px"; 47 | stats.dom.style.top = "3px"; 48 | stats.dom.id = "stats-graph"; 49 | 50 | const initStats = function () { 51 | const update = function () { 52 | stats.begin(); 53 | stats.end(); 54 | 55 | requestAnimationFrame(update); 56 | }; 57 | 58 | requestAnimationFrame(update); 59 | }; 60 | 61 | document.body.querySelector('#stats').appendChild(stats.dom); 62 | 63 | initStats(); 64 | -------------------------------------------------------------------------------- /apps/demo/views/bubbles.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang="en") 3 | head 4 | meta(charset="utf-8") 5 | meta(name="description", content= "tsParticles") 6 | meta(name="author", content= "Matteo Bruni") 7 | meta(name="apple-mobile-web-app-capable" content="yes") 8 | meta(name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no") 9 | 10 | meta(name="twitter:card" content="summary_large_image") 11 | meta(name="twitter:creator" content="@HollowMatt_ITA") 12 | meta(name="twitter:image:src" content="https://particles.js.org/images/demo2.png") 13 | meta(property="og:title" content="tsParticles - A lightweight TypeScript library for creating particles") 14 | meta(property="og:site_name" content="tsParticles") 15 | meta(property="og:url" content="https://particles.js.org/") 16 | meta(property="og:description" content="A lightweight TypeScript library for creating particles.") 17 | meta(property="og:image" content="https://particles.js.org/images/demo2.png") 18 | 19 | title tsParticles 20 | 21 | link(rel="stylesheet" href="/stylesheets/presets.css") 22 | body 23 | #stats 24 | #tsparticles 25 | 26 | script(src="/stats.ts/dist/stats.min.js") 27 | script(src="/preset-bubbles/tsparticles.preset.bubbles.bundle.min.js") 28 | script. 29 | (async (engine) => { 30 | await loadBubblesPreset(engine); 31 | 32 | await engine.load({ 33 | id: "tsparticles", 34 | options: { 35 | preset: "bubbles" 36 | } 37 | }).then(container => { 38 | console.log(container); 39 | }); 40 | })(tsParticles); 41 | 42 | const stats = new Stats(); 43 | 44 | stats.showPanel(0); 45 | stats.dom.style.position = "absolute"; 46 | stats.dom.style.left = "3px"; 47 | stats.dom.style.top = "3px"; 48 | stats.dom.id = "stats-graph"; 49 | 50 | const initStats = function () { 51 | const update = function () { 52 | stats.begin(); 53 | stats.end(); 54 | 55 | requestAnimationFrame(update); 56 | }; 57 | 58 | requestAnimationFrame(update); 59 | }; 60 | 61 | document.body.querySelector('#stats').appendChild(stats.dom); 62 | 63 | initStats(); 64 | -------------------------------------------------------------------------------- /apps/demo/views/confetti.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang="en") 3 | head 4 | meta(charset="utf-8") 5 | meta(name="description", content= "tsParticles") 6 | meta(name="author", content= "Matteo Bruni") 7 | meta(name="apple-mobile-web-app-capable" content="yes") 8 | meta(name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no") 9 | 10 | meta(name="twitter:card" content="summary_large_image") 11 | meta(name="twitter:creator" content="@HollowMatt_ITA") 12 | meta(name="twitter:image:src" content="https://particles.js.org/images/demo2.png") 13 | meta(property="og:title" content="tsParticles - A lightweight TypeScript library for creating particles") 14 | meta(property="og:site_name" content="tsParticles") 15 | meta(property="og:url" content="https://particles.js.org/") 16 | meta(property="og:description" content="A lightweight TypeScript library for creating particles.") 17 | meta(property="og:image" content="https://particles.js.org/images/demo2.png") 18 | 19 | title tsParticles 20 | 21 | link(rel="stylesheet" href="/stylesheets/presets.css") 22 | body 23 | #stats 24 | #tsparticles(style="background: #000; position: fixed; width: 100%; height: 100%; left: 0; top: 0;") 25 | 26 | script(src="/stats.ts/dist/stats.min.js") 27 | script(src="/preset-confetti/tsparticles.preset.confetti.bundle.min.js") 28 | script. 29 | (async (engine) => { 30 | await loadConfettiPreset(engine); 31 | 32 | await engine.load({ 33 | id: "tsparticles", 34 | options: { 35 | preset: "confetti" 36 | } 37 | }).then(container => { 38 | console.log(container); 39 | }); 40 | })(tsParticles); 41 | 42 | const stats = new Stats(); 43 | 44 | stats.showPanel(0); 45 | stats.dom.style.position = "absolute"; 46 | stats.dom.style.left = "3px"; 47 | stats.dom.style.top = "3px"; 48 | stats.dom.id = "stats-graph"; 49 | 50 | const initStats = function () { 51 | const update = function () { 52 | stats.begin(); 53 | stats.end(); 54 | 55 | requestAnimationFrame(update); 56 | }; 57 | 58 | requestAnimationFrame(update); 59 | }; 60 | 61 | document.body.querySelector('#stats').appendChild(stats.dom); 62 | 63 | initStats(); 64 | -------------------------------------------------------------------------------- /apps/demo/views/fire.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang="en") 3 | head 4 | meta(charset="utf-8") 5 | meta(name="description", content= "tsParticles") 6 | meta(name="author", content= "Matteo Bruni") 7 | meta(name="apple-mobile-web-app-capable" content="yes") 8 | meta(name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no") 9 | 10 | meta(name="twitter:card" content="summary_large_image") 11 | meta(name="twitter:creator" content="@HollowMatt_ITA") 12 | meta(name="twitter:image:src" content="https://particles.js.org/images/demo2.png") 13 | meta(property="og:title" content="tsParticles - A lightweight TypeScript library for creating particles") 14 | meta(property="og:site_name" content="tsParticles") 15 | meta(property="og:url" content="https://particles.js.org/") 16 | meta(property="og:description" content="A lightweight TypeScript library for creating particles.") 17 | meta(property="og:image" content="https://particles.js.org/images/demo2.png") 18 | 19 | title tsParticles 20 | 21 | link(rel="stylesheet" href="/stylesheets/presets.css") 22 | body 23 | #stats 24 | #tsparticles 25 | 26 | script(src="/stats.ts/dist/stats.min.js") 27 | script(src="/preset-fire/tsparticles.preset.fire.bundle.min.js") 28 | script. 29 | (async (engine) => { 30 | await loadFirePreset(engine); 31 | 32 | await engine.load({ 33 | id: "tsparticles", 34 | options: { 35 | preset: "fire" 36 | } 37 | }).then(container => { 38 | console.log(container); 39 | }); 40 | })(tsParticles); 41 | 42 | const stats = new Stats(); 43 | 44 | stats.showPanel(0); 45 | stats.dom.style.position = "absolute"; 46 | stats.dom.style.left = "3px"; 47 | stats.dom.style.top = "3px"; 48 | stats.dom.id = "stats-graph"; 49 | 50 | const initStats = function () { 51 | const update = function () { 52 | stats.begin(); 53 | stats.end(); 54 | 55 | requestAnimationFrame(update); 56 | }; 57 | 58 | requestAnimationFrame(update); 59 | }; 60 | 61 | document.body.querySelector('#stats').appendChild(stats.dom); 62 | 63 | initStats(); 64 | -------------------------------------------------------------------------------- /apps/demo/views/firefly.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang="en") 3 | head 4 | meta(charset="utf-8") 5 | meta(name="description", content= "tsParticles") 6 | meta(name="author", content= "Matteo Bruni") 7 | meta(name="apple-mobile-web-app-capable" content="yes") 8 | meta(name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no") 9 | 10 | meta(name="twitter:card" content="summary_large_image") 11 | meta(name="twitter:creator" content="@HollowMatt_ITA") 12 | meta(name="twitter:image:src" content="https://particles.js.org/images/demo2.png") 13 | meta(property="og:title" content="tsParticles - A lightweight TypeScript library for creating particles") 14 | meta(property="og:site_name" content="tsParticles") 15 | meta(property="og:url" content="https://particles.js.org/") 16 | meta(property="og:description" content="A lightweight TypeScript library for creating particles.") 17 | meta(property="og:image" content="https://particles.js.org/images/demo2.png") 18 | 19 | title tsParticles 20 | 21 | link(rel="stylesheet" href="/stylesheets/presets.css") 22 | body 23 | #stats 24 | #tsparticles 25 | 26 | script(src="/stats.ts/dist/stats.min.js") 27 | script(src="/preset-firefly/tsparticles.preset.firefly.bundle.min.js") 28 | script. 29 | (async (engine) => { 30 | await loadFireflyPreset(engine); 31 | 32 | await engine.load({ 33 | id: "tsparticles", 34 | options: { 35 | preset: "firefly" 36 | } 37 | }).then(container => { 38 | console.log(container); 39 | }); 40 | })(tsParticles); 41 | 42 | const stats = new Stats(); 43 | 44 | stats.showPanel(0); 45 | stats.dom.style.position = "absolute"; 46 | stats.dom.style.left = "3px"; 47 | stats.dom.style.top = "3px"; 48 | stats.dom.id = "stats-graph"; 49 | 50 | const initStats = function () { 51 | const update = function () { 52 | stats.begin(); 53 | stats.end(); 54 | 55 | requestAnimationFrame(update); 56 | }; 57 | 58 | requestAnimationFrame(update); 59 | }; 60 | 61 | document.body.querySelector('#stats').appendChild(stats.dom); 62 | 63 | initStats(); 64 | -------------------------------------------------------------------------------- /apps/demo/views/fireworks.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang="en") 3 | head 4 | meta(charset="utf-8") 5 | meta(name="description", content= "tsParticles") 6 | meta(name="author", content= "Matteo Bruni") 7 | meta(name="apple-mobile-web-app-capable" content="yes") 8 | meta(name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no") 9 | 10 | meta(name="twitter:card" content="summary_large_image") 11 | meta(name="twitter:creator" content="@HollowMatt_ITA") 12 | meta(name="twitter:image:src" content="https://particles.js.org/images/demo2.png") 13 | meta(property="og:title" content="tsParticles - A lightweight TypeScript library for creating particles") 14 | meta(property="og:site_name" content="tsParticles") 15 | meta(property="og:url" content="https://particles.js.org/") 16 | meta(property="og:description" content="A lightweight TypeScript library for creating particles.") 17 | meta(property="og:image" content="https://particles.js.org/images/demo2.png") 18 | 19 | title tsParticles 20 | 21 | link(rel="stylesheet" href="/stylesheets/presets.css") 22 | body 23 | #stats 24 | #tsparticles 25 | 26 | script(src="/stats.ts/dist/stats.min.js") 27 | script(src="/preset-fireworks/tsparticles.preset.fireworks.bundle.min.js") 28 | script. 29 | (async (engine) => { 30 | await loadFireworksPreset(engine); 31 | 32 | await engine.load({ 33 | id: "tsparticles", 34 | options: { 35 | preset: "fireworks" 36 | } 37 | }).then(container => { 38 | console.log(container); 39 | }); 40 | })(tsParticles); 41 | 42 | const stats = new Stats(); 43 | 44 | stats.showPanel(0); 45 | stats.dom.style.position = "absolute"; 46 | stats.dom.style.left = "3px"; 47 | stats.dom.style.top = "3px"; 48 | stats.dom.id = "stats-graph"; 49 | 50 | const initStats = function () { 51 | const update = function () { 52 | stats.begin(); 53 | stats.end(); 54 | 55 | requestAnimationFrame(update); 56 | }; 57 | 58 | requestAnimationFrame(update); 59 | }; 60 | 61 | document.body.querySelector('#stats').appendChild(stats.dom); 62 | 63 | initStats(); 64 | -------------------------------------------------------------------------------- /apps/demo/views/fountain.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang="en") 3 | head 4 | meta(charset="utf-8") 5 | meta(name="description", content= "tsParticles") 6 | meta(name="author", content= "Matteo Bruni") 7 | meta(name="apple-mobile-web-app-capable" content="yes") 8 | meta(name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no") 9 | 10 | meta(name="twitter:card" content="summary_large_image") 11 | meta(name="twitter:creator" content="@HollowMatt_ITA") 12 | meta(name="twitter:image:src" content="https://particles.js.org/images/demo2.png") 13 | meta(property="og:title" content="tsParticles - A lightweight TypeScript library for creating particles") 14 | meta(property="og:site_name" content="tsParticles") 15 | meta(property="og:url" content="https://particles.js.org/") 16 | meta(property="og:description" content="A lightweight TypeScript library for creating particles.") 17 | meta(property="og:image" content="https://particles.js.org/images/demo2.png") 18 | 19 | title tsParticles 20 | 21 | link(rel="stylesheet" href="/stylesheets/presets.css") 22 | body 23 | #stats 24 | #tsparticles 25 | 26 | script(src="/stats.ts/dist/stats.min.js") 27 | script(src="/preset-fountain/tsparticles.preset.fountain.bundle.min.js") 28 | script. 29 | (async (engine) => { 30 | await loadFountainPreset(engine); 31 | 32 | await engine.load({ 33 | id: "tsparticles", 34 | options: { 35 | preset: "fountain" 36 | } 37 | }).then(container => { 38 | console.log(container); 39 | }); 40 | })(tsParticles); 41 | 42 | const stats = new Stats(); 43 | 44 | stats.showPanel(0); 45 | stats.dom.style.position = "absolute"; 46 | stats.dom.style.left = "3px"; 47 | stats.dom.style.top = "3px"; 48 | stats.dom.id = "stats-graph"; 49 | 50 | const initStats = function () { 51 | const update = function () { 52 | stats.begin(); 53 | stats.end(); 54 | 55 | requestAnimationFrame(update); 56 | }; 57 | 58 | requestAnimationFrame(update); 59 | }; 60 | 61 | document.body.querySelector('#stats').appendChild(stats.dom); 62 | 63 | initStats(); 64 | -------------------------------------------------------------------------------- /apps/demo/views/hyperspace.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang="en") 3 | head 4 | meta(charset="utf-8") 5 | meta(name="description", content= "tsParticles") 6 | meta(name="author", content= "Matteo Bruni") 7 | meta(name="apple-mobile-web-app-capable" content="yes") 8 | meta(name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no") 9 | 10 | meta(name="twitter:card" content="summary_large_image") 11 | meta(name="twitter:creator" content="@HollowMatt_ITA") 12 | meta(name="twitter:image:src" content="https://particles.js.org/images/demo2.png") 13 | meta(property="og:title" content="tsParticles - A lightweight TypeScript library for creating particles") 14 | meta(property="og:site_name" content="tsParticles") 15 | meta(property="og:url" content="https://particles.js.org/") 16 | meta(property="og:description" content="A lightweight TypeScript library for creating particles.") 17 | meta(property="og:image" content="https://particles.js.org/images/demo2.png") 18 | 19 | title tsParticles 20 | 21 | link(rel="stylesheet" href="/stylesheets/presets.css") 22 | body 23 | #stats 24 | #tsparticles 25 | 26 | script(src="/stats.ts/dist/stats.min.js") 27 | script(src="/preset-hyperspace/tsparticles.preset.hyperspace.bundle.min.js") 28 | script. 29 | (async (engine) => { 30 | await loadHyperspacePreset(engine); 31 | 32 | await engine.load({ 33 | id: "tsparticles", 34 | options: { 35 | preset: "hyperspace" 36 | } 37 | }).then(container => { 38 | console.log(container); 39 | }); 40 | })(tsParticles); 41 | 42 | const stats = new Stats(); 43 | 44 | stats.showPanel(0); 45 | stats.dom.style.position = "absolute"; 46 | stats.dom.style.left = "3px"; 47 | stats.dom.style.top = "3px"; 48 | stats.dom.id = "stats-graph"; 49 | 50 | const initStats = function() { 51 | const update = function() { 52 | stats.begin(); 53 | stats.end(); 54 | 55 | requestAnimationFrame(update); 56 | }; 57 | 58 | requestAnimationFrame(update); 59 | }; 60 | 61 | document.body.querySelector('#stats').appendChild(stats.dom); 62 | 63 | initStats(); 64 | -------------------------------------------------------------------------------- /apps/demo/views/links.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang="en") 3 | head 4 | meta(charset="utf-8") 5 | meta(name="description", content= "tsParticles") 6 | meta(name="author", content= "Matteo Bruni") 7 | meta(name="apple-mobile-web-app-capable" content="yes") 8 | meta(name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no") 9 | 10 | meta(name="twitter:card" content="summary_large_image") 11 | meta(name="twitter:creator" content="@HollowMatt_ITA") 12 | meta(name="twitter:image:src" content="https://particles.js.org/images/demo2.png") 13 | meta(property="og:title" content="tsParticles - A lightweight TypeScript library for creating particles") 14 | meta(property="og:site_name" content="tsParticles") 15 | meta(property="og:url" content="https://particles.js.org/") 16 | meta(property="og:description" content="A lightweight TypeScript library for creating particles.") 17 | meta(property="og:image" content="https://particles.js.org/images/demo2.png") 18 | 19 | title tsParticles 20 | 21 | link(rel="stylesheet" href="/stylesheets/presets.css") 22 | body 23 | #stats 24 | #tsparticles 25 | 26 | script(src="/stats.ts/dist/stats.min.js") 27 | script(src="/preset-links/tsparticles.preset.links.bundle.min.js") 28 | script. 29 | (async (engine) => { 30 | await loadLinksPreset(engine); 31 | 32 | await engine.load({ 33 | id: "tsparticles", 34 | options: { 35 | preset: "links" 36 | } 37 | }).then(container => { 38 | console.log(container); 39 | }); 40 | })(tsParticles); 41 | 42 | const stats = new Stats(); 43 | 44 | stats.showPanel(0); 45 | stats.dom.style.position = "absolute"; 46 | stats.dom.style.left = "3px"; 47 | stats.dom.style.top = "3px"; 48 | stats.dom.id = "stats-graph"; 49 | 50 | const initStats = function () { 51 | const update = function () { 52 | stats.begin(); 53 | stats.end(); 54 | 55 | requestAnimationFrame(update); 56 | }; 57 | 58 | requestAnimationFrame(update); 59 | }; 60 | 61 | document.body.querySelector('#stats').appendChild(stats.dom); 62 | 63 | initStats(); 64 | -------------------------------------------------------------------------------- /apps/demo/views/seaAnemone.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang="en") 3 | head 4 | meta(charset="utf-8") 5 | meta(name="description", content= "tsParticles") 6 | meta(name="author", content= "Matteo Bruni") 7 | meta(name="apple-mobile-web-app-capable" content="yes") 8 | meta(name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no") 9 | 10 | meta(name="twitter:card" content="summary_large_image") 11 | meta(name="twitter:creator" content="@HollowMatt_ITA") 12 | meta(name="twitter:image:src" content="https://particles.js.org/images/demo2.png") 13 | meta(property="og:title" content="tsParticles - A lightweight TypeScript library for creating particles") 14 | meta(property="og:site_name" content="tsParticles") 15 | meta(property="og:url" content="https://particles.js.org/") 16 | meta(property="og:description" content="A lightweight TypeScript library for creating particles.") 17 | meta(property="og:image" content="https://particles.js.org/images/demo2.png") 18 | 19 | title tsParticles 20 | 21 | link(rel="stylesheet" href="/stylesheets/presets.css") 22 | body 23 | #stats 24 | #tsparticles 25 | 26 | script(src="/stats.ts/dist/stats.min.js") 27 | script(src="/preset-sea-anemone/tsparticles.preset.seaAnemone.bundle.min.js") 28 | script. 29 | (async (engine) => { 30 | await loadSeaAnemonePreset(engine); 31 | 32 | await engine.load({ 33 | id: "tsparticles", 34 | options: { 35 | preset: "seaAnemone" 36 | } 37 | }).then(container => { 38 | console.log(container); 39 | }); 40 | })(tsParticles); 41 | 42 | const stats = new Stats(); 43 | 44 | stats.showPanel(0); 45 | stats.dom.style.position = "absolute"; 46 | stats.dom.style.left = "3px"; 47 | stats.dom.style.top = "3px"; 48 | stats.dom.id = "stats-graph"; 49 | 50 | const initStats = function () { 51 | const update = function () { 52 | stats.begin(); 53 | stats.end(); 54 | 55 | requestAnimationFrame(update); 56 | }; 57 | 58 | requestAnimationFrame(update); 59 | }; 60 | 61 | document.body.querySelector('#stats').appendChild(stats.dom); 62 | 63 | initStats(); 64 | -------------------------------------------------------------------------------- /apps/demo/views/snow.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang="en") 3 | head 4 | meta(charset="utf-8") 5 | meta(name="description", content= "tsParticles") 6 | meta(name="author", content= "Matteo Bruni") 7 | meta(name="apple-mobile-web-app-capable" content="yes") 8 | meta(name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no") 9 | 10 | meta(name="twitter:card" content="summary_large_image") 11 | meta(name="twitter:creator" content="@HollowMatt_ITA") 12 | meta(name="twitter:image:src" content="https://particles.js.org/images/demo2.png") 13 | meta(property="og:title" content="tsParticles - A lightweight TypeScript library for creating particles") 14 | meta(property="og:site_name" content="tsParticles") 15 | meta(property="og:url" content="https://particles.js.org/") 16 | meta(property="og:description" content="A lightweight TypeScript library for creating particles.") 17 | meta(property="og:image" content="https://particles.js.org/images/demo2.png") 18 | 19 | title tsParticles 20 | 21 | link(rel="stylesheet" href="/stylesheets/presets.css") 22 | body 23 | #stats 24 | #tsparticles 25 | 26 | script(src="/stats.ts/dist/stats.min.js") 27 | script(src="/preset-snow/tsparticles.preset.snow.bundle.min.js") 28 | script. 29 | (async (engine) => { 30 | await loadSnowPreset(engine); 31 | 32 | await engine.load({ 33 | id: "tsparticles", 34 | options: { 35 | preset: "snow" 36 | } 37 | }).then(container => { 38 | console.log(container); 39 | }); 40 | })(tsParticles); 41 | 42 | const stats = new Stats(); 43 | 44 | stats.showPanel(0); 45 | stats.dom.style.position = "absolute"; 46 | stats.dom.style.left = "3px"; 47 | stats.dom.style.top = "3px"; 48 | stats.dom.id = "stats-graph"; 49 | 50 | const initStats = function () { 51 | const update = function () { 52 | stats.begin(); 53 | stats.end(); 54 | 55 | requestAnimationFrame(update); 56 | }; 57 | 58 | requestAnimationFrame(update); 59 | }; 60 | 61 | document.body.querySelector('#stats').appendChild(stats.dom); 62 | 63 | initStats(); 64 | -------------------------------------------------------------------------------- /apps/demo/views/squares.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang="en") 3 | head 4 | meta(charset="utf-8") 5 | meta(name="description", content= "tsParticles") 6 | meta(name="author", content= "Matteo Bruni") 7 | meta(name="apple-mobile-web-app-capable" content="yes") 8 | meta(name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no") 9 | 10 | meta(name="twitter:card" content="summary_large_image") 11 | meta(name="twitter:creator" content="@HollowMatt_ITA") 12 | meta(name="twitter:image:src" content="https://particles.js.org/images/demo2.png") 13 | meta(property="og:title" content="tsParticles - A lightweight TypeScript library for creating particles") 14 | meta(property="og:site_name" content="tsParticles") 15 | meta(property="og:url" content="https://particles.js.org/") 16 | meta(property="og:description" content="A lightweight TypeScript library for creating particles.") 17 | meta(property="og:image" content="https://particles.js.org/images/demo2.png") 18 | 19 | title tsParticles 20 | 21 | link(rel="stylesheet" href="/stylesheets/presets.css") 22 | body 23 | #stats 24 | #tsparticles 25 | 26 | script(src="/stats.ts/dist/stats.min.js") 27 | script(src="/preset-squares/tsparticles.preset.squares.bundle.min.js") 28 | script. 29 | (async (engine) => { 30 | await loadSquaresPreset(engine); 31 | 32 | await engine.load({ 33 | id: "tsparticles", 34 | options: { 35 | preset: "squares" 36 | } 37 | }).then(container => { 38 | console.log(container); 39 | }); 40 | })(tsParticles); 41 | 42 | const stats = new Stats(); 43 | 44 | stats.showPanel(0); 45 | stats.dom.style.position = "absolute"; 46 | stats.dom.style.left = "3px"; 47 | stats.dom.style.top = "3px"; 48 | stats.dom.id = "stats-graph"; 49 | 50 | const initStats = function() { 51 | const update = function() { 52 | stats.begin(); 53 | stats.end(); 54 | 55 | requestAnimationFrame(update); 56 | }; 57 | 58 | requestAnimationFrame(update); 59 | }; 60 | 61 | document.body.querySelector('#stats').appendChild(stats.dom); 62 | 63 | initStats(); 64 | -------------------------------------------------------------------------------- /apps/demo/views/stars.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang="en") 3 | head 4 | meta(charset="utf-8") 5 | meta(name="description", content= "tsParticles") 6 | meta(name="author", content= "Matteo Bruni") 7 | meta(name="apple-mobile-web-app-capable" content="yes") 8 | meta(name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no") 9 | 10 | meta(name="twitter:card" content="summary_large_image") 11 | meta(name="twitter:creator" content="@HollowMatt_ITA") 12 | meta(name="twitter:image:src" content="https://particles.js.org/images/demo2.png") 13 | meta(property="og:title" content="tsParticles - A lightweight TypeScript library for creating particles") 14 | meta(property="og:site_name" content="tsParticles") 15 | meta(property="og:url" content="https://particles.js.org/") 16 | meta(property="og:description" content="A lightweight TypeScript library for creating particles.") 17 | meta(property="og:image" content="https://particles.js.org/images/demo2.png") 18 | 19 | title tsParticles 20 | 21 | link(rel="stylesheet" href="/stylesheets/presets.css") 22 | body 23 | #stats 24 | #tsparticles 25 | 26 | script(src="/stats.ts/dist/stats.min.js") 27 | script(src="/preset-stars/tsparticles.preset.stars.bundle.min.js") 28 | script. 29 | (async (engine) => { 30 | await loadStarsPreset(engine); 31 | 32 | await engine.load({ 33 | id: "tsparticles", 34 | options: { 35 | preset: "stars" 36 | } 37 | }).then(container => { 38 | console.log(container); 39 | }); 40 | })(tsParticles); 41 | 42 | const stats = new Stats(); 43 | 44 | stats.showPanel(0); 45 | stats.dom.style.position = "absolute"; 46 | stats.dom.style.left = "3px"; 47 | stats.dom.style.top = "3px"; 48 | stats.dom.id = "stats-graph"; 49 | 50 | const initStats = function () { 51 | const update = function () { 52 | stats.begin(); 53 | stats.end(); 54 | 55 | requestAnimationFrame(update); 56 | }; 57 | 58 | requestAnimationFrame(update); 59 | }; 60 | 61 | document.body.querySelector('#stats').appendChild(stats.dom); 62 | 63 | initStats(); 64 | -------------------------------------------------------------------------------- /apps/demo/views/triangles.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang="en") 3 | head 4 | meta(charset="utf-8") 5 | meta(name="description", content= "tsParticles") 6 | meta(name="author", content= "Matteo Bruni") 7 | meta(name="apple-mobile-web-app-capable" content="yes") 8 | meta(name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no") 9 | 10 | meta(name="twitter:card" content="summary_large_image") 11 | meta(name="twitter:creator" content="@HollowMatt_ITA") 12 | meta(name="twitter:image:src" content="https://particles.js.org/images/demo2.png") 13 | meta(property="og:title" content="tsParticles - A lightweight TypeScript library for creating particles") 14 | meta(property="og:site_name" content="tsParticles") 15 | meta(property="og:url" content="https://particles.js.org/") 16 | meta(property="og:description" content="A lightweight TypeScript library for creating particles.") 17 | meta(property="og:image" content="https://particles.js.org/images/demo2.png") 18 | 19 | title tsParticles 20 | 21 | link(rel="stylesheet" href="/stylesheets/presets.css") 22 | body 23 | #stats 24 | #tsparticles 25 | 26 | script(src="/stats.ts/dist/stats.min.js") 27 | script(src="/preset-triangles/tsparticles.preset.triangles.bundle.min.js") 28 | script. 29 | (async (engine) => { 30 | await loadTrianglesPreset(engine); 31 | 32 | await engine.load({ 33 | id: "tsparticles", 34 | options: { 35 | preset: "triangles" 36 | } 37 | }).then(container => { 38 | console.log(container); 39 | }); 40 | })(tsParticles); 41 | 42 | const stats = new Stats(); 43 | 44 | stats.showPanel(0); 45 | stats.dom.style.position = "absolute"; 46 | stats.dom.style.left = "3px"; 47 | stats.dom.style.top = "3px"; 48 | stats.dom.id = "stats-graph"; 49 | 50 | const initStats = function () { 51 | const update = function () { 52 | stats.begin(); 53 | stats.end(); 54 | 55 | requestAnimationFrame(update); 56 | }; 57 | 58 | requestAnimationFrame(update); 59 | }; 60 | 61 | document.body.querySelector('#stats').appendChild(stats.dom); 62 | 63 | initStats(); 64 | -------------------------------------------------------------------------------- /apps/vite/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /apps/vite/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | All notable changes to this project will be documented in this file. 4 | See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. 5 | 6 | # [3.2.0](https://github.com/tsparticles/presets/compare/v3.1.0...v3.2.0) (2024-11-24) 7 | 8 | **Note:** Version bump only for package @tsparticles/vite-demo 9 | 10 | # [3.1.0](https://github.com/tsparticles/presets/compare/v3.0.2...v3.1.0) (2024-06-03) 11 | 12 | ### Features 13 | 14 | - changed bundles loading method, no more preloading plugins ([e59a41a](https://github.com/tsparticles/presets/commit/e59a41a9dd59ad666f156fb114c06ddb44b46f07)) 15 | -------------------------------------------------------------------------------- /apps/vite/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + TS 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /apps/vite/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tsparticles/vite-demo", 3 | "private": true, 4 | "version": "3.2.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "tsc && vite build", 9 | "preview": "vite preview" 10 | }, 11 | "devDependencies": { 12 | "@tsparticles/engine": "^3.7.1", 13 | "@tsparticles/preset-big-circles": "workspace:^", 14 | "@tsparticles/preset-bubbles": "workspace:^", 15 | "@tsparticles/preset-confetti": "workspace:^", 16 | "@tsparticles/preset-fire": "workspace:^", 17 | "@tsparticles/preset-firefly": "workspace:^", 18 | "@tsparticles/preset-fireworks": "workspace:^", 19 | "@tsparticles/preset-fountain": "workspace:^", 20 | "@tsparticles/preset-hyperspace": "workspace:^", 21 | "@tsparticles/preset-links": "workspace:^", 22 | "@tsparticles/preset-sea-anemone": "workspace:^", 23 | "@tsparticles/preset-snow": "workspace:^", 24 | "@tsparticles/preset-squares": "workspace:^", 25 | "@tsparticles/preset-stars": "workspace:^", 26 | "@tsparticles/preset-triangles": "workspace:^", 27 | "typescript": "^5.4.5", 28 | "vite": "^5.2.12" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /apps/vite/public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/vite/src/main.ts: -------------------------------------------------------------------------------- 1 | import './style.css' 2 | import { tsParticles } from "@tsparticles/engine"; 3 | import { loadBigCirclesPreset } from "@tsparticles/preset-big-circles"; 4 | 5 | (async () => { 6 | await loadBigCirclesPreset(tsParticles); 7 | 8 | await tsParticles.load({ 9 | id: "tsparticles", options: { 10 | preset: "big-circles", 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /apps/vite/src/style.css: -------------------------------------------------------------------------------- 1 | :root { 2 | font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; 3 | line-height: 1.5; 4 | font-weight: 400; 5 | 6 | color-scheme: light dark; 7 | color: rgba(255, 255, 255, 0.87); 8 | background-color: #242424; 9 | 10 | font-synthesis: none; 11 | text-rendering: optimizeLegibility; 12 | -webkit-font-smoothing: antialiased; 13 | -moz-osx-font-smoothing: grayscale; 14 | -webkit-text-size-adjust: 100%; 15 | } 16 | 17 | a { 18 | font-weight: 500; 19 | color: #646cff; 20 | text-decoration: inherit; 21 | } 22 | a:hover { 23 | color: #535bf2; 24 | } 25 | 26 | body { 27 | margin: 0; 28 | display: flex; 29 | place-items: center; 30 | min-width: 320px; 31 | min-height: 100vh; 32 | } 33 | 34 | h1 { 35 | font-size: 3.2em; 36 | line-height: 1.1; 37 | } 38 | 39 | #app { 40 | max-width: 1280px; 41 | margin: 0 auto; 42 | padding: 2rem; 43 | text-align: center; 44 | } 45 | 46 | .logo { 47 | height: 6em; 48 | padding: 1.5em; 49 | will-change: filter; 50 | transition: filter 300ms; 51 | } 52 | .logo:hover { 53 | filter: drop-shadow(0 0 2em #646cffaa); 54 | } 55 | .logo.vanilla:hover { 56 | filter: drop-shadow(0 0 2em #3178c6aa); 57 | } 58 | 59 | .card { 60 | padding: 2em; 61 | } 62 | 63 | .read-the-docs { 64 | color: #888; 65 | } 66 | 67 | button { 68 | border-radius: 8px; 69 | border: 1px solid transparent; 70 | padding: 0.6em 1.2em; 71 | font-size: 1em; 72 | font-weight: 500; 73 | font-family: inherit; 74 | background-color: #1a1a1a; 75 | cursor: pointer; 76 | transition: border-color 0.25s; 77 | } 78 | button:hover { 79 | border-color: #646cff; 80 | } 81 | button:focus, 82 | button:focus-visible { 83 | outline: 4px auto -webkit-focus-ring-color; 84 | } 85 | 86 | @media (prefers-color-scheme: light) { 87 | :root { 88 | color: #213547; 89 | background-color: #ffffff; 90 | } 91 | a:hover { 92 | color: #747bff; 93 | } 94 | button { 95 | background-color: #f9f9f9; 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /apps/vite/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /apps/vite/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "useDefineForClassFields": true, 5 | "module": "ESNext", 6 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 7 | "skipLibCheck": true, 8 | 9 | /* Bundler mode */ 10 | "moduleResolution": "bundler", 11 | "allowImportingTsExtensions": true, 12 | "resolveJsonModule": true, 13 | "isolatedModules": true, 14 | "noEmit": true, 15 | 16 | /* Linting */ 17 | "strict": true, 18 | "noUnusedLocals": true, 19 | "noUnusedParameters": true, 20 | "noFallthroughCasesInSwitch": true 21 | }, 22 | "include": ["src"] 23 | } 24 | -------------------------------------------------------------------------------- /lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "node_modules/lerna/schemas/lerna-schema.json", 3 | "packages": ["apps/*", "presets/*"], 4 | "version": "3.2.0", 5 | "npmClient": "pnpm", 6 | "conventionalCommits": true, 7 | "command": { 8 | "version": { 9 | "message": "chore(release): published new version" 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tsparticles/presets-workspace", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "build": "lerna run build", 7 | "build:docs": "rimraf docs && typedoc --plugin typedoc-plugin-keywords --plugin typedoc-plugin-coverage", 8 | "version:alpha": "lerna version prerelease --preid alpha --conventional-commits", 9 | "version:beta": "lerna version prerelease --preid beta --conventional-commits", 10 | "publish:alpha": "lerna publish from-package --pre-dist-tag alpha --preid alpha", 11 | "publish:beta": "lerna publish from-package --pre-dist-tag beta --preid beta", 12 | "publish:next": "lerna publish from-package --dist-tag next" 13 | }, 14 | "license": "MIT", 15 | "dependencies": { 16 | "@babel/core": "^7.24.6", 17 | "@commitlint/cli": "^19.3.0", 18 | "@commitlint/config-conventional": "^19.2.2", 19 | "@tsparticles/cli": "^2.3.3", 20 | "@tsparticles/eslint-config": "^2.3.0", 21 | "@tsparticles/prettier-config": "^2.1.6", 22 | "@tsparticles/tsconfig": "^2.3.0", 23 | "@tsparticles/webpack-plugin": "^2.3.0", 24 | "@types/node": "^20.14.0", 25 | "@types/webpack-env": "^1.18.5", 26 | "@typescript-eslint/eslint-plugin": "^7.11.0", 27 | "@typescript-eslint/parser": "^7.11.0", 28 | "babel-loader": "^9.1.3", 29 | "browserslist": "^4.23.0", 30 | "copyfiles": "^2.4.1", 31 | "eslint": "^8.57.0", 32 | "eslint-config-prettier": "^9.1.0", 33 | "husky": "^9.0.11", 34 | "lerna": "^8.1.3", 35 | "prettier": "^3.3.0", 36 | "rimraf": "^5.0.7", 37 | "terser-webpack-plugin": "^5.3.10", 38 | "typedoc": "^0.25.13", 39 | "typedoc-plugin-coverage": "^3.1.1", 40 | "typedoc-plugin-keywords": "^1.6.0", 41 | "typedoc-plugin-missing-exports": "^2.2.0", 42 | "typescript": "^5.4.5", 43 | "webpack": "^5.91.0", 44 | "webpack-bundle-analyzer": "^4.10.2", 45 | "webpack-cli": "^5.1.4" 46 | }, 47 | "workspaces": [ 48 | "apps/*", 49 | "presets/*" 50 | ] 51 | } 52 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - 'apps/*' 3 | - 'presets/*' 4 | -------------------------------------------------------------------------------- /presets/bigCircles/.browserslistrc: -------------------------------------------------------------------------------- 1 | since 2019 2 | not dead 3 | -------------------------------------------------------------------------------- /presets/bigCircles/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules -------------------------------------------------------------------------------- /presets/bigCircles/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: [ 3 | "@tsparticles/eslint-config", 4 | ] 5 | }; 6 | -------------------------------------------------------------------------------- /presets/bigCircles/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Matteo Bruni 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /presets/bigCircles/images/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/presets/bigCircles/images/sample.png -------------------------------------------------------------------------------- /presets/bigCircles/package.dist.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tsparticles/preset-big-circles", 3 | "version": "3.2.0", 4 | "description": "tsParticles big circles preset", 5 | "homepage": "https://particles.js.org", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/tsparticles/presets.git", 9 | "directory": "presets/bigCircles" 10 | }, 11 | "keywords": [ 12 | "front-end", 13 | "frontend", 14 | "tsparticles", 15 | "particles.js", 16 | "particlesjs", 17 | "particles", 18 | "particle", 19 | "canvas", 20 | "jsparticles", 21 | "xparticles", 22 | "particles-js", 23 | "particles-bg", 24 | "particles-bg-vue", 25 | "particles-ts", 26 | "particles.ts", 27 | "react-particles-js", 28 | "react-particles.js", 29 | "react-particles", 30 | "react", 31 | "reactjs", 32 | "vue-particles", 33 | "ngx-particles", 34 | "angular-particles", 35 | "particleground", 36 | "vue", 37 | "vuejs", 38 | "preact", 39 | "preactjs", 40 | "jquery", 41 | "angularjs", 42 | "angular", 43 | "typescript", 44 | "javascript", 45 | "animation", 46 | "web", 47 | "html5", 48 | "web-design", 49 | "webdesign", 50 | "css", 51 | "html", 52 | "css3", 53 | "animated", 54 | "background", 55 | "confetti", 56 | "canvas", 57 | "fireworks", 58 | "fireworks-js", 59 | "confetti-js", 60 | "confettijs", 61 | "fireworksjs", 62 | "canvas-confetti", 63 | "tsparticles-preset" 64 | ], 65 | "author": "Matteo Bruni ", 66 | "license": "MIT", 67 | "bugs": { 68 | "url": "https://github.com/tsparticles/presets/issues" 69 | }, 70 | "funding": [ 71 | { 72 | "type": "github", 73 | "url": "https://github.com/sponsors/matteobruni" 74 | }, 75 | { 76 | "type": "github", 77 | "url": "https://github.com/sponsors/tsparticles" 78 | }, 79 | { 80 | "type": "buymeacoffee", 81 | "url": "https://www.buymeacoffee.com/matteobruni" 82 | } 83 | ], 84 | "main": "cjs/index.js", 85 | "jsdelivr": "tsparticles.preset.bigCircles.min.js", 86 | "unpkg": "tsparticles.preset.bigCircles.min.js", 87 | "module": "esm/index.js", 88 | "types": "types/index.d.ts", 89 | "dependencies": { 90 | "@tsparticles/basic": "^3.7.1", 91 | "@tsparticles/engine": "^3.7.1", 92 | "@tsparticles/plugin-emitters": "^3.7.1", 93 | "@tsparticles/plugin-emitters-shape-square": "^3.7.1" 94 | }, 95 | "publishConfig": { 96 | "access": "public" 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /presets/bigCircles/src/bundle.ts: -------------------------------------------------------------------------------- 1 | import { loadBigCirclesPreset } from "./index.js"; 2 | import { tsParticles } from "@tsparticles/engine"; 3 | 4 | export { loadBigCirclesPreset, tsParticles }; 5 | -------------------------------------------------------------------------------- /presets/bigCircles/src/index.ts: -------------------------------------------------------------------------------- 1 | import { type Engine } from "@tsparticles/engine"; 2 | import { loadBasic } from "@tsparticles/basic"; 3 | import { loadEmittersPlugin } from "@tsparticles/plugin-emitters"; 4 | import { loadEmittersShapeSquare } from "@tsparticles/plugin-emitters-shape-square"; 5 | import { options } from "./options.js"; 6 | 7 | /** 8 | * 9 | * @param engine - 10 | * @param refresh - 11 | */ 12 | export async function loadBigCirclesPreset(engine: Engine, refresh = true): Promise { 13 | await engine.addPreset("bigCircles", options, false); 14 | await engine.addPreset("big-circles", options, false); 15 | 16 | await loadBasic(engine, false); 17 | await loadEmittersPlugin(engine, false); 18 | await loadEmittersShapeSquare(engine, false); 19 | 20 | await engine.refresh(refresh); 21 | } 22 | -------------------------------------------------------------------------------- /presets/bigCircles/src/options.ts: -------------------------------------------------------------------------------- 1 | import { type ISourceOptions, MoveDirection, OutMode } from "@tsparticles/engine"; 2 | 3 | export const options: ISourceOptions = { 4 | fpsLimit: 120, 5 | background: { 6 | color: "#fff", 7 | }, 8 | particles: { 9 | number: { 10 | value: 50, 11 | }, 12 | color: { 13 | value: ["#3998D0", "#2EB6AF", "#A9BD33", "#FEC73B", "#F89930", "#F45623", "#D62E32", "#EB586E", "#9952CF"], 14 | }, 15 | shape: { 16 | type: "circle", 17 | }, 18 | opacity: { 19 | value: { min: 0.4, max: 0.8 }, 20 | }, 21 | size: { 22 | value: { min: 200, max: 400 }, 23 | }, 24 | move: { 25 | enable: true, 26 | angle: { 27 | value: 30, 28 | offset: 0, 29 | }, 30 | speed: { 31 | min: 10, 32 | max: 20, 33 | }, 34 | direction: MoveDirection.top, 35 | outModes: { 36 | default: OutMode.destroy, 37 | bottom: OutMode.none, 38 | }, 39 | }, 40 | }, 41 | detectRetina: true, 42 | emitters: { 43 | position: { 44 | x: 50, 45 | y: 150, 46 | }, 47 | rate: { 48 | delay: 0.2, 49 | quantity: 3, 50 | }, 51 | size: { 52 | width: 100, 53 | height: 50, 54 | }, 55 | }, 56 | }; 57 | -------------------------------------------------------------------------------- /presets/bigCircles/tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsparticles/tsconfig/tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": "./src" 5 | }, 6 | "include": [ 7 | "./src" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /presets/bigCircles/tsconfig.browser.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.browser.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/browser" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/bigCircles/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/cjs" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/bigCircles/tsconfig.module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.module.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/esm" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/bigCircles/tsconfig.types.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.types.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/types" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/bigCircles/tsconfig.umd.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.umd.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/umd" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/bigCircles/typedoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "includes": "./markdown", 3 | "entryPoints": ["./src/"], 4 | "entryPointStrategy": "expand", 5 | "name": "tsParticles Big Circles Preset", 6 | "includeVersion": true, 7 | "hideGenerator": true, 8 | "out": "./docs", 9 | "validation": { 10 | "invalidLink": true, 11 | "notDocumented": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /presets/bigCircles/webpack.config.js: -------------------------------------------------------------------------------- 1 | const { loadParticlesPreset } = require("@tsparticles/webpack-plugin"); 2 | const version = require("./package.json").version; 3 | 4 | module.exports = loadParticlesPreset({ 5 | dir: __dirname, 6 | moduleName: "bigCircles", 7 | presetName: "Big Circles", 8 | version: version 9 | }); 10 | -------------------------------------------------------------------------------- /presets/bubbles/.browserslistrc: -------------------------------------------------------------------------------- 1 | since 2019 2 | not dead 3 | -------------------------------------------------------------------------------- /presets/bubbles/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules -------------------------------------------------------------------------------- /presets/bubbles/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: [ 3 | "@tsparticles/eslint-config", 4 | ] 5 | }; 6 | -------------------------------------------------------------------------------- /presets/bubbles/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Matteo Bruni 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /presets/bubbles/images/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/presets/bubbles/images/sample.png -------------------------------------------------------------------------------- /presets/bubbles/package.dist.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tsparticles/preset-bubbles", 3 | "version": "3.2.0", 4 | "description": "tsParticles bubbles preset", 5 | "homepage": "https://particles.js.org", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/tsparticles/presets.git", 9 | "directory": "presets/bubbles" 10 | }, 11 | "keywords": [ 12 | "front-end", 13 | "frontend", 14 | "tsparticles", 15 | "particles.js", 16 | "particlesjs", 17 | "particles", 18 | "particle", 19 | "canvas", 20 | "jsparticles", 21 | "xparticles", 22 | "particles-js", 23 | "particles-bg", 24 | "particles-bg-vue", 25 | "particles-ts", 26 | "particles.ts", 27 | "react-particles-js", 28 | "react-particles.js", 29 | "react-particles", 30 | "react", 31 | "reactjs", 32 | "vue-particles", 33 | "ngx-particles", 34 | "angular-particles", 35 | "particleground", 36 | "vue", 37 | "vuejs", 38 | "preact", 39 | "preactjs", 40 | "jquery", 41 | "angularjs", 42 | "angular", 43 | "typescript", 44 | "javascript", 45 | "animation", 46 | "web", 47 | "html5", 48 | "web-design", 49 | "webdesign", 50 | "css", 51 | "html", 52 | "css3", 53 | "animated", 54 | "background", 55 | "confetti", 56 | "canvas", 57 | "fireworks", 58 | "fireworks-js", 59 | "confetti-js", 60 | "confettijs", 61 | "fireworksjs", 62 | "canvas-confetti", 63 | "tsparticles-preset" 64 | ], 65 | "author": "Matteo Bruni ", 66 | "license": "MIT", 67 | "bugs": { 68 | "url": "https://github.com/tsparticles/presets/issues" 69 | }, 70 | "funding": [ 71 | { 72 | "type": "github", 73 | "url": "https://github.com/sponsors/matteobruni" 74 | }, 75 | { 76 | "type": "github", 77 | "url": "https://github.com/sponsors/tsparticles" 78 | }, 79 | { 80 | "type": "buymeacoffee", 81 | "url": "https://www.buymeacoffee.com/matteobruni" 82 | } 83 | ], 84 | "main": "cjs/index.js", 85 | "jsdelivr": "tsparticles.preset.bubbles.min.js", 86 | "unpkg": "tsparticles.preset.bubbles.min.js", 87 | "module": "esm/index.js", 88 | "types": "types/index.d.ts", 89 | "dependencies": { 90 | "@tsparticles/basic": "^3.7.1", 91 | "@tsparticles/engine": "^3.7.1", 92 | "@tsparticles/plugin-emitters": "^3.7.1" 93 | }, 94 | "publishConfig": { 95 | "access": "public" 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /presets/bubbles/src/bundle.ts: -------------------------------------------------------------------------------- 1 | import { loadBubblesPreset } from "./index.js"; 2 | import { tsParticles } from "@tsparticles/engine"; 3 | 4 | export { loadBubblesPreset, tsParticles }; 5 | -------------------------------------------------------------------------------- /presets/bubbles/src/index.ts: -------------------------------------------------------------------------------- 1 | import type { Engine } from "@tsparticles/engine"; 2 | import { loadBasic } from "@tsparticles/basic"; 3 | import { loadEmittersPlugin } from "@tsparticles/plugin-emitters"; 4 | import { options } from "./options.js"; 5 | 6 | /** 7 | * 8 | * @param engine - 9 | * @param refresh - 10 | */ 11 | export async function loadBubblesPreset(engine: Engine, refresh = true): Promise { 12 | await loadBasic(engine, false); 13 | await loadEmittersPlugin(engine, false); 14 | 15 | await engine.addPreset("bubbles", options, false); 16 | 17 | await engine.refresh(refresh); 18 | } 19 | -------------------------------------------------------------------------------- /presets/bubbles/src/options.ts: -------------------------------------------------------------------------------- 1 | import { type ISourceOptions, MoveDirection, OutMode } from "@tsparticles/engine"; 2 | 3 | export const options: ISourceOptions = { 4 | fpsLimit: 120, 5 | particles: { 6 | color: { 7 | value: "random", 8 | }, 9 | shape: { 10 | type: "circle", 11 | }, 12 | opacity: { 13 | value: 0.3, 14 | }, 15 | size: { 16 | value: { min: 5, max: 10 }, 17 | }, 18 | move: { 19 | angle: { 20 | offset: 0, 21 | value: 30, 22 | }, 23 | enable: true, 24 | speed: 15, 25 | direction: MoveDirection.top, 26 | random: false, 27 | straight: false, 28 | outModes: { 29 | default: OutMode.destroy, 30 | }, 31 | }, 32 | }, 33 | detectRetina: true, 34 | background: { 35 | color: "#fff", 36 | }, 37 | emitters: [ 38 | { 39 | direction: MoveDirection.top, 40 | position: { 41 | y: 100, 42 | }, 43 | life: { 44 | duration: 3, 45 | delay: 5, 46 | count: 0, 47 | }, 48 | }, 49 | ], 50 | }; 51 | -------------------------------------------------------------------------------- /presets/bubbles/tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsparticles/tsconfig/tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": "./src" 5 | }, 6 | "include": [ 7 | "./src" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /presets/bubbles/tsconfig.browser.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.browser.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/browser" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/bubbles/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/cjs" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/bubbles/tsconfig.module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.module.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/esm" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/bubbles/tsconfig.types.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.types.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/types" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/bubbles/tsconfig.umd.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.umd.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/umd" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/bubbles/typedoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "includes": "./markdown", 3 | "entryPoints": ["./src/"], 4 | "entryPointStrategy": "expand", 5 | "name": "tsParticles Bubbles Preset", 6 | "includeVersion": true, 7 | "hideGenerator": true, 8 | "out": "./docs", 9 | "validation": { 10 | "invalidLink": true, 11 | "notDocumented": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /presets/bubbles/webpack.config.js: -------------------------------------------------------------------------------- 1 | const { loadParticlesPreset } = require("@tsparticles/webpack-plugin"); 2 | const version = require("./package.json").version; 3 | 4 | module.exports = loadParticlesPreset({ 5 | dir: __dirname, 6 | moduleName: "bubbles", 7 | presetName: "Bubbles", 8 | version: version 9 | }); 10 | -------------------------------------------------------------------------------- /presets/confetti/.browserslistrc: -------------------------------------------------------------------------------- 1 | since 2019 2 | not dead 3 | -------------------------------------------------------------------------------- /presets/confetti/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules -------------------------------------------------------------------------------- /presets/confetti/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: [ 3 | "@tsparticles/eslint-config", 4 | ] 5 | }; 6 | -------------------------------------------------------------------------------- /presets/confetti/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Matteo Bruni 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /presets/confetti/images/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/presets/confetti/images/sample.png -------------------------------------------------------------------------------- /presets/confetti/package.dist.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tsparticles/preset-confetti", 3 | "version": "3.2.0", 4 | "description": "tsParticles confetti preset", 5 | "homepage": "https://particles.js.org", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/tsparticles/presets.git", 9 | "directory": "presets/confetti" 10 | }, 11 | "keywords": [ 12 | "front-end", 13 | "frontend", 14 | "tsparticles", 15 | "particles.js", 16 | "particlesjs", 17 | "particles", 18 | "particle", 19 | "canvas", 20 | "jsparticles", 21 | "xparticles", 22 | "particles-js", 23 | "particles-bg", 24 | "particles-bg-vue", 25 | "particles-ts", 26 | "particles.ts", 27 | "react-particles-js", 28 | "react-particles.js", 29 | "react-particles", 30 | "react", 31 | "reactjs", 32 | "vue-particles", 33 | "ngx-particles", 34 | "angular-particles", 35 | "particleground", 36 | "vue", 37 | "vuejs", 38 | "preact", 39 | "preactjs", 40 | "jquery", 41 | "angularjs", 42 | "angular", 43 | "typescript", 44 | "javascript", 45 | "animation", 46 | "web", 47 | "html5", 48 | "web-design", 49 | "webdesign", 50 | "css", 51 | "html", 52 | "css3", 53 | "animated", 54 | "background", 55 | "confetti", 56 | "canvas", 57 | "fireworks", 58 | "fireworks-js", 59 | "confetti-js", 60 | "confettijs", 61 | "fireworksjs", 62 | "canvas-confetti", 63 | "tsparticles-preset" 64 | ], 65 | "author": "Matteo Bruni ", 66 | "license": "MIT", 67 | "bugs": { 68 | "url": "https://github.com/tsparticles/presets/issues" 69 | }, 70 | "funding": [ 71 | { 72 | "type": "github", 73 | "url": "https://github.com/sponsors/matteobruni" 74 | }, 75 | { 76 | "type": "github", 77 | "url": "https://github.com/sponsors/tsparticles" 78 | }, 79 | { 80 | "type": "buymeacoffee", 81 | "url": "https://www.buymeacoffee.com/matteobruni" 82 | } 83 | ], 84 | "main": "cjs/index.js", 85 | "jsdelivr": "tsparticles.preset.confetti.min.js", 86 | "unpkg": "tsparticles.preset.confetti.min.js", 87 | "module": "esm/index.js", 88 | "types": "types/index.d.ts", 89 | "dependencies": { 90 | "@tsparticles/basic": "^3.7.1", 91 | "@tsparticles/engine": "^3.7.1", 92 | "@tsparticles/plugin-emitters": "^3.7.1", 93 | "@tsparticles/plugin-motion": "^3.7.1", 94 | "@tsparticles/shape-square": "^3.7.1", 95 | "@tsparticles/updater-life": "^3.7.1", 96 | "@tsparticles/updater-roll": "^3.7.1", 97 | "@tsparticles/updater-rotate": "^3.7.1", 98 | "@tsparticles/updater-tilt": "^3.7.1", 99 | "@tsparticles/updater-wobble": "^3.7.1" 100 | }, 101 | "publishConfig": { 102 | "access": "public" 103 | } 104 | } 105 | -------------------------------------------------------------------------------- /presets/confetti/src/bundle.ts: -------------------------------------------------------------------------------- 1 | import { loadConfettiPreset } from "./index.js"; 2 | import { tsParticles } from "@tsparticles/engine"; 3 | 4 | export { loadConfettiPreset, tsParticles }; 5 | -------------------------------------------------------------------------------- /presets/confetti/src/index.ts: -------------------------------------------------------------------------------- 1 | import type { Engine } from "@tsparticles/engine"; 2 | import { loadBasic } from "@tsparticles/basic"; 3 | import { loadEmittersPlugin } from "@tsparticles/plugin-emitters"; 4 | import { loadLifeUpdater } from "@tsparticles/updater-life"; 5 | import { loadMotionPlugin } from "@tsparticles/plugin-motion"; 6 | import { loadRollUpdater } from "@tsparticles/updater-roll"; 7 | import { loadRotateUpdater } from "@tsparticles/updater-rotate"; 8 | import { loadSquareShape } from "@tsparticles/shape-square"; 9 | import { loadTiltUpdater } from "@tsparticles/updater-tilt"; 10 | import { loadWobbleUpdater } from "@tsparticles/updater-wobble"; 11 | import { options } from "./options.js"; 12 | 13 | /** 14 | * 15 | * @param engine - 16 | * @param refresh - 17 | */ 18 | async function loadPreset(engine: Engine, refresh = true): Promise { 19 | await loadBasic(engine, false); 20 | await loadSquareShape(engine, false); 21 | await loadEmittersPlugin(engine, false); 22 | await loadMotionPlugin(engine, false); 23 | await loadWobbleUpdater(engine, false); 24 | await loadRollUpdater(engine, false); 25 | await loadRotateUpdater(engine, false); 26 | await loadTiltUpdater(engine, false); 27 | await loadLifeUpdater(engine, false); 28 | 29 | await engine.addPreset("confetti", options, false); 30 | 31 | await engine.refresh(refresh); 32 | } 33 | 34 | /** 35 | * 36 | * @param engine - 37 | */ 38 | export async function loadConfettiPreset(engine: Engine): Promise { 39 | await loadPreset(engine); 40 | } 41 | -------------------------------------------------------------------------------- /presets/confetti/tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsparticles/tsconfig/tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": "./src" 5 | }, 6 | "include": [ 7 | "./src" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /presets/confetti/tsconfig.browser.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.browser.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/browser" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/confetti/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/cjs" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/confetti/tsconfig.module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.module.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/esm" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/confetti/tsconfig.types.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.types.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/types" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/confetti/tsconfig.umd.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.umd.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/umd" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/confetti/typedoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "includes": "./markdown", 3 | "entryPoints": ["./src/"], 4 | "entryPointStrategy": "expand", 5 | "name": "tsParticles Confetti Preset", 6 | "includeVersion": true, 7 | "hideGenerator": true, 8 | "out": "./docs", 9 | "validation": { 10 | "invalidLink": true, 11 | "notDocumented": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /presets/confetti/webpack.config.js: -------------------------------------------------------------------------------- 1 | const { loadParticlesPreset } = require("@tsparticles/webpack-plugin"); 2 | const version = require("./package.json").version; 3 | 4 | module.exports = loadParticlesPreset({ 5 | dir: __dirname, 6 | moduleName: "confetti", 7 | presetName: "Confetti", 8 | version: version 9 | }); 10 | -------------------------------------------------------------------------------- /presets/fire/.browserslistrc: -------------------------------------------------------------------------------- 1 | since 2019 2 | not dead 3 | -------------------------------------------------------------------------------- /presets/fire/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules -------------------------------------------------------------------------------- /presets/fire/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: [ 3 | "@tsparticles/eslint-config", 4 | ] 5 | }; 6 | -------------------------------------------------------------------------------- /presets/fire/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Matteo Bruni 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /presets/fire/images/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/presets/fire/images/sample.png -------------------------------------------------------------------------------- /presets/fire/package.dist.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tsparticles/preset-fire", 3 | "version": "3.2.0", 4 | "description": "tsParticles fire preset", 5 | "homepage": "https://particles.js.org", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/tsparticles/presets.git", 9 | "directory": "presets/fire" 10 | }, 11 | "keywords": [ 12 | "front-end", 13 | "frontend", 14 | "tsparticles", 15 | "particles.js", 16 | "particlesjs", 17 | "particles", 18 | "particle", 19 | "canvas", 20 | "jsparticles", 21 | "xparticles", 22 | "particles-js", 23 | "particles-bg", 24 | "particles-bg-vue", 25 | "particles-ts", 26 | "particles.ts", 27 | "react-particles-js", 28 | "react-particles.js", 29 | "react-particles", 30 | "react", 31 | "reactjs", 32 | "vue-particles", 33 | "ngx-particles", 34 | "angular-particles", 35 | "particleground", 36 | "vue", 37 | "vuejs", 38 | "preact", 39 | "preactjs", 40 | "jquery", 41 | "angularjs", 42 | "angular", 43 | "typescript", 44 | "javascript", 45 | "animation", 46 | "web", 47 | "html5", 48 | "web-design", 49 | "webdesign", 50 | "css", 51 | "html", 52 | "css3", 53 | "animated", 54 | "background", 55 | "confetti", 56 | "canvas", 57 | "fireworks", 58 | "fireworks-js", 59 | "confetti-js", 60 | "confettijs", 61 | "fireworksjs", 62 | "canvas-confetti", 63 | "tsparticles-preset" 64 | ], 65 | "author": "Matteo Bruni ", 66 | "license": "MIT", 67 | "bugs": { 68 | "url": "https://github.com/tsparticles/presets/issues" 69 | }, 70 | "funding": [ 71 | { 72 | "type": "github", 73 | "url": "https://github.com/sponsors/matteobruni" 74 | }, 75 | { 76 | "type": "github", 77 | "url": "https://github.com/sponsors/tsparticles" 78 | }, 79 | { 80 | "type": "buymeacoffee", 81 | "url": "https://www.buymeacoffee.com/matteobruni" 82 | } 83 | ], 84 | "main": "cjs/index.js", 85 | "jsdelivr": "tsparticles.preset.fire.min.js", 86 | "unpkg": "tsparticles.preset.fire.min.js", 87 | "module": "esm/index.js", 88 | "types": "types/index.d.ts", 89 | "dependencies": { 90 | "@tsparticles/basic": "^3.7.1", 91 | "@tsparticles/engine": "^3.7.1", 92 | "@tsparticles/interaction-external-push": "^3.7.1" 93 | }, 94 | "publishConfig": { 95 | "access": "public" 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /presets/fire/src/bundle.ts: -------------------------------------------------------------------------------- 1 | import { loadFirePreset } from "./index.js"; 2 | import { tsParticles } from "@tsparticles/engine"; 3 | 4 | export { loadFirePreset, tsParticles }; 5 | -------------------------------------------------------------------------------- /presets/fire/src/index.ts: -------------------------------------------------------------------------------- 1 | import type { Engine } from "@tsparticles/engine"; 2 | import { loadBasic } from "@tsparticles/basic"; 3 | import { loadExternalPushInteraction } from "@tsparticles/interaction-external-push"; 4 | import { options } from "./options.js"; 5 | 6 | /** 7 | * 8 | * @param engine - 9 | * @param refresh - 10 | */ 11 | export async function loadFirePreset(engine: Engine, refresh = true): Promise { 12 | await loadBasic(engine, false); 13 | await loadExternalPushInteraction(engine, false); 14 | 15 | await engine.addPreset("fire", options, false); 16 | 17 | await engine.refresh(refresh); 18 | } 19 | -------------------------------------------------------------------------------- /presets/fire/src/options.ts: -------------------------------------------------------------------------------- 1 | import type { ISourceOptions } from "@tsparticles/engine"; 2 | 3 | export const options: ISourceOptions = { 4 | fpsLimit: 40, 5 | particles: { 6 | number: { 7 | value: 200, 8 | density: { 9 | enable: true, 10 | }, 11 | }, 12 | color: { 13 | value: ["#fdcf58", "#757676", "#f27d0c", "#800909", "#f07f13"], 14 | }, 15 | opacity: { 16 | value: { min: 0.1, max: 0.5 }, 17 | }, 18 | size: { 19 | value: { min: 1, max: 3 }, 20 | }, 21 | move: { 22 | enable: true, 23 | speed: 6, 24 | random: false, 25 | }, 26 | }, 27 | interactivity: { 28 | detectsOn: "window", 29 | events: { 30 | onClick: { 31 | enable: true, 32 | mode: "push", 33 | }, 34 | }, 35 | }, 36 | background: { 37 | image: "radial-gradient(#4a0000, #000)", 38 | }, 39 | }; 40 | -------------------------------------------------------------------------------- /presets/fire/tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsparticles/tsconfig/tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": "./src" 5 | }, 6 | "include": [ 7 | "./src" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /presets/fire/tsconfig.browser.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.browser.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/browser" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/fire/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/cjs" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/fire/tsconfig.module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.module.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/esm" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/fire/tsconfig.types.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.types.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/types" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/fire/tsconfig.umd.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.umd.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/umd" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/fire/typedoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "includes": "./markdown", 3 | "entryPoints": [ 4 | "./src/" 5 | ], 6 | "entryPointStrategy": "expand", 7 | "name": "tsParticles Fire Preset", 8 | "includeVersion": true, 9 | "hideGenerator": true, 10 | "out": "./docs", 11 | "validation": { 12 | "invalidLink": true, 13 | "notDocumented": true 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /presets/fire/webpack.config.js: -------------------------------------------------------------------------------- 1 | const { loadParticlesPreset } = require("@tsparticles/webpack-plugin"); 2 | const version = require("./package.json").version; 3 | 4 | module.exports = loadParticlesPreset({ 5 | dir: __dirname, 6 | moduleName: "fire", 7 | presetName: "Fire", 8 | version: version 9 | }); 10 | -------------------------------------------------------------------------------- /presets/firefly/.browserslistrc: -------------------------------------------------------------------------------- 1 | since 2019 2 | not dead 3 | -------------------------------------------------------------------------------- /presets/firefly/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules -------------------------------------------------------------------------------- /presets/firefly/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: [ 3 | "@tsparticles/eslint-config", 4 | ] 5 | }; 6 | -------------------------------------------------------------------------------- /presets/firefly/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Matteo Bruni 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /presets/firefly/images/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/presets/firefly/images/sample.png -------------------------------------------------------------------------------- /presets/firefly/package.dist.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tsparticles/preset-firefly", 3 | "version": "3.2.0", 4 | "description": "tsParticles firefly preset", 5 | "homepage": "https://particles.js.org", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/tsparticles/presets.git", 9 | "directory": "presets/firefly" 10 | }, 11 | "keywords": [ 12 | "front-end", 13 | "frontend", 14 | "tsparticles", 15 | "particles.js", 16 | "particlesjs", 17 | "particles", 18 | "particle", 19 | "canvas", 20 | "jsparticles", 21 | "xparticles", 22 | "particles-js", 23 | "particles-bg", 24 | "particles-bg-vue", 25 | "particles-ts", 26 | "particles.ts", 27 | "react-particles-js", 28 | "react-particles.js", 29 | "react-particles", 30 | "react", 31 | "reactjs", 32 | "vue-particles", 33 | "ngx-particles", 34 | "angular-particles", 35 | "particleground", 36 | "vue", 37 | "vuejs", 38 | "preact", 39 | "preactjs", 40 | "jquery", 41 | "angularjs", 42 | "angular", 43 | "typescript", 44 | "javascript", 45 | "animation", 46 | "web", 47 | "html5", 48 | "web-design", 49 | "webdesign", 50 | "css", 51 | "html", 52 | "css3", 53 | "animated", 54 | "background", 55 | "confetti", 56 | "canvas", 57 | "fireworks", 58 | "fireworks-js", 59 | "confetti-js", 60 | "confettijs", 61 | "fireworksjs", 62 | "canvas-confetti", 63 | "tsparticles-preset" 64 | ], 65 | "author": "Matteo Bruni ", 66 | "license": "MIT", 67 | "bugs": { 68 | "url": "https://github.com/tsparticles/presets/issues" 69 | }, 70 | "funding": [ 71 | { 72 | "type": "github", 73 | "url": "https://github.com/sponsors/matteobruni" 74 | }, 75 | { 76 | "type": "github", 77 | "url": "https://github.com/sponsors/tsparticles" 78 | }, 79 | { 80 | "type": "buymeacoffee", 81 | "url": "https://www.buymeacoffee.com/matteobruni" 82 | } 83 | ], 84 | "main": "cjs/index.js", 85 | "jsdelivr": "tsparticles.preset.firefly.min.js", 86 | "unpkg": "tsparticles.preset.firefly.min.js", 87 | "module": "esm/index.js", 88 | "types": "types/index.d.ts", 89 | "dependencies": { 90 | "@tsparticles/basic": "^3.7.1", 91 | "@tsparticles/engine": "^3.7.1", 92 | "@tsparticles/interaction-external-trail": "^3.7.1" 93 | }, 94 | "publishConfig": { 95 | "access": "public" 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /presets/firefly/src/bundle.ts: -------------------------------------------------------------------------------- 1 | import { loadFireflyPreset } from "./index.js"; 2 | import { tsParticles } from "@tsparticles/engine"; 3 | 4 | export { loadFireflyPreset, tsParticles }; 5 | -------------------------------------------------------------------------------- /presets/firefly/src/index.ts: -------------------------------------------------------------------------------- 1 | import type { Engine } from "@tsparticles/engine"; 2 | import { loadBasic } from "@tsparticles/basic"; 3 | import { loadExternalTrailInteraction } from "@tsparticles/interaction-external-trail"; 4 | import { options } from "./options.js"; 5 | 6 | /** 7 | * 8 | * @param engine - 9 | * @param refresh - 10 | */ 11 | export async function loadFireflyPreset(engine: Engine, refresh = true): Promise { 12 | await loadBasic(engine, false); 13 | await loadExternalTrailInteraction(engine, false); 14 | 15 | await engine.addPreset("firefly", options, false); 16 | 17 | await engine.refresh(refresh); 18 | } 19 | -------------------------------------------------------------------------------- /presets/firefly/src/options.ts: -------------------------------------------------------------------------------- 1 | import { type ISourceOptions } from "@tsparticles/engine"; 2 | 3 | export const options: ISourceOptions = { 4 | fullScreen: { 5 | enable: true, 6 | zIndex: -1, 7 | }, 8 | fpsLimit: 120, 9 | particles: { 10 | number: { 11 | value: 0, 12 | }, 13 | color: { 14 | value: "#fff", 15 | }, 16 | life: { 17 | duration: { 18 | value: 5, 19 | sync: false, 20 | }, 21 | count: 1, 22 | }, 23 | opacity: { 24 | value: { min: 0.1, max: 1 }, 25 | animation: { 26 | enable: true, 27 | speed: 3, 28 | }, 29 | }, 30 | size: { 31 | value: { 32 | min: 3, 33 | max: 6, 34 | }, 35 | }, 36 | move: { 37 | enable: true, 38 | speed: 3, 39 | random: false, 40 | size: true, 41 | }, 42 | }, 43 | interactivity: { 44 | events: { 45 | onHover: { 46 | enable: true, 47 | mode: "trail", 48 | }, 49 | }, 50 | modes: { 51 | trail: { 52 | delay: 0.5, 53 | pauseOnStop: true, 54 | quantity: 4, 55 | }, 56 | }, 57 | }, 58 | background: { 59 | color: "#000", 60 | }, 61 | }; 62 | -------------------------------------------------------------------------------- /presets/firefly/tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsparticles/tsconfig/tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": "./src" 5 | }, 6 | "include": [ 7 | "./src" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /presets/firefly/tsconfig.browser.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.browser.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/browser" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/firefly/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/cjs" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/firefly/tsconfig.module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.module.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/esm" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/firefly/tsconfig.types.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.types.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/types" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/firefly/tsconfig.umd.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.umd.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/umd" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/firefly/typedoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "includes": "./markdown", 3 | "entryPoints": ["./src/"], 4 | "entryPointStrategy": "expand", 5 | "name": "tsParticles Firefly Preset", 6 | "includeVersion": true, 7 | "hideGenerator": true, 8 | "out": "./docs", 9 | "validation": { 10 | "invalidLink": true, 11 | "notDocumented": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /presets/firefly/webpack.config.js: -------------------------------------------------------------------------------- 1 | const { loadParticlesPreset } = require("@tsparticles/webpack-plugin"); 2 | const version = require("./package.json").version; 3 | 4 | module.exports = loadParticlesPreset({ 5 | dir: __dirname, 6 | moduleName: "firefly", 7 | presetName: "Firefly", 8 | version: version 9 | }); 10 | -------------------------------------------------------------------------------- /presets/fireworks/.browserslistrc: -------------------------------------------------------------------------------- 1 | since 2019 2 | not dead 3 | -------------------------------------------------------------------------------- /presets/fireworks/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules -------------------------------------------------------------------------------- /presets/fireworks/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: [ 3 | "@tsparticles/eslint-config", 4 | ] 5 | }; 6 | -------------------------------------------------------------------------------- /presets/fireworks/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Matteo Bruni 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /presets/fireworks/images/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/presets/fireworks/images/sample.png -------------------------------------------------------------------------------- /presets/fireworks/src/bundle.ts: -------------------------------------------------------------------------------- 1 | import { loadFireworksPreset } from "./index.js"; 2 | import { tsParticles } from "@tsparticles/engine"; 3 | 4 | export { loadFireworksPreset, tsParticles }; 5 | -------------------------------------------------------------------------------- /presets/fireworks/src/index.ts: -------------------------------------------------------------------------------- 1 | import type { Engine } from "@tsparticles/engine"; 2 | import { initOptions } from "./options.js"; 3 | import { loadBasic } from "@tsparticles/basic"; 4 | import { loadDestroyUpdater } from "@tsparticles/updater-destroy"; 5 | import { loadEmittersPlugin } from "@tsparticles/plugin-emitters"; 6 | import { loadEmittersShapeSquare } from "@tsparticles/plugin-emitters-shape-square"; 7 | import { loadLifeUpdater } from "@tsparticles/updater-life"; 8 | import { loadLineShape } from "@tsparticles/shape-line"; 9 | import { loadRotateUpdater } from "@tsparticles/updater-rotate"; 10 | import { loadSoundsPlugin } from "@tsparticles/plugin-sounds"; 11 | import { loadStrokeColorUpdater } from "@tsparticles/updater-stroke-color"; 12 | 13 | /** 14 | * 15 | * @param engine - 16 | * @param refresh - 17 | */ 18 | export async function loadFireworksPreset(engine: Engine, refresh = true): Promise { 19 | await loadBasic(engine, false); 20 | await loadEmittersPlugin(engine, false); 21 | await loadEmittersShapeSquare(engine, false); 22 | await loadSoundsPlugin(engine, false); 23 | await loadLineShape(engine, false); 24 | await loadRotateUpdater(engine, false); 25 | await loadDestroyUpdater(engine, false); 26 | await loadLifeUpdater(engine, false); 27 | await loadStrokeColorUpdater(engine, false); 28 | 29 | await engine.addPreset("fireworks", initOptions(engine), false); 30 | 31 | await engine.refresh(refresh); 32 | } 33 | -------------------------------------------------------------------------------- /presets/fireworks/tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsparticles/tsconfig/tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": "./src" 5 | }, 6 | "include": [ 7 | "./src" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /presets/fireworks/tsconfig.browser.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.browser.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/browser" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/fireworks/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/cjs" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/fireworks/tsconfig.module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.module.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/esm" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/fireworks/tsconfig.types.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.types.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/types" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/fireworks/tsconfig.umd.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.umd.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/umd" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/fireworks/typedoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "includes": "./markdown", 3 | "entryPoints": ["./src/"], 4 | "entryPointStrategy": "expand", 5 | "name": "tsParticles Fireworks Preset", 6 | "includeVersion": true, 7 | "hideGenerator": true, 8 | "out": "./docs", 9 | "validation": { 10 | "invalidLink": true, 11 | "notDocumented": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /presets/fireworks/webpack.config.js: -------------------------------------------------------------------------------- 1 | const { loadParticlesPreset } = require("@tsparticles/webpack-plugin"); 2 | const version = require("./package.json").version; 3 | 4 | module.exports = loadParticlesPreset({ 5 | dir: __dirname, 6 | moduleName: "fireworks", 7 | presetName: "Fireworks", 8 | version: version 9 | }); 10 | -------------------------------------------------------------------------------- /presets/fountain/.browserslistrc: -------------------------------------------------------------------------------- 1 | since 2019 2 | not dead 3 | -------------------------------------------------------------------------------- /presets/fountain/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules -------------------------------------------------------------------------------- /presets/fountain/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: [ 3 | "@tsparticles/eslint-config", 4 | ] 5 | }; 6 | -------------------------------------------------------------------------------- /presets/fountain/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Matteo Bruni 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /presets/fountain/images/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/presets/fountain/images/sample.png -------------------------------------------------------------------------------- /presets/fountain/package.dist.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tsparticles/preset-fountain", 3 | "version": "3.2.0", 4 | "description": "tsParticles fountain preset", 5 | "homepage": "https://particles.js.org", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/tsparticles/presets.git", 9 | "directory": "presets/fountain" 10 | }, 11 | "keywords": [ 12 | "front-end", 13 | "frontend", 14 | "tsparticles", 15 | "particles.js", 16 | "particlesjs", 17 | "particles", 18 | "particle", 19 | "canvas", 20 | "jsparticles", 21 | "xparticles", 22 | "particles-js", 23 | "particles-bg", 24 | "particles-bg-vue", 25 | "particles-ts", 26 | "particles.ts", 27 | "react-particles-js", 28 | "react-particles.js", 29 | "react-particles", 30 | "react", 31 | "reactjs", 32 | "vue-particles", 33 | "ngx-particles", 34 | "angular-particles", 35 | "particleground", 36 | "vue", 37 | "vuejs", 38 | "preact", 39 | "preactjs", 40 | "jquery", 41 | "angularjs", 42 | "angular", 43 | "typescript", 44 | "javascript", 45 | "animation", 46 | "web", 47 | "html5", 48 | "web-design", 49 | "webdesign", 50 | "css", 51 | "html", 52 | "css3", 53 | "animated", 54 | "background", 55 | "confetti", 56 | "canvas", 57 | "fireworks", 58 | "fireworks-js", 59 | "confetti-js", 60 | "confettijs", 61 | "fireworksjs", 62 | "canvas-confetti", 63 | "tsparticles-preset" 64 | ], 65 | "author": "Matteo Bruni ", 66 | "license": "MIT", 67 | "bugs": { 68 | "url": "https://github.com/tsparticles/presets/issues" 69 | }, 70 | "funding": [ 71 | { 72 | "type": "github", 73 | "url": "https://github.com/sponsors/matteobruni" 74 | }, 75 | { 76 | "type": "github", 77 | "url": "https://github.com/sponsors/tsparticles" 78 | }, 79 | { 80 | "type": "buymeacoffee", 81 | "url": "https://www.buymeacoffee.com/matteobruni" 82 | } 83 | ], 84 | "main": "cjs/index.js", 85 | "jsdelivr": "tsparticles.preset.fountain.min.js", 86 | "unpkg": "tsparticles.preset.fountain.min.js", 87 | "module": "esm/index.js", 88 | "types": "types/index.d.ts", 89 | "dependencies": { 90 | "@tsparticles/basic": "^3.7.1", 91 | "@tsparticles/engine": "^3.7.1", 92 | "@tsparticles/plugin-emitters": "^3.7.1", 93 | "@tsparticles/updater-destroy": "^3.7.1" 94 | }, 95 | "publishConfig": { 96 | "access": "public" 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /presets/fountain/src/bundle.ts: -------------------------------------------------------------------------------- 1 | import { loadFountainPreset } from "./index.js"; 2 | import { tsParticles } from "@tsparticles/engine"; 3 | 4 | export { loadFountainPreset, tsParticles }; 5 | -------------------------------------------------------------------------------- /presets/fountain/src/index.ts: -------------------------------------------------------------------------------- 1 | import type { Engine } from "@tsparticles/engine"; 2 | import { loadBasic } from "@tsparticles/basic"; 3 | import { loadDestroyUpdater } from "@tsparticles/updater-destroy"; 4 | import { loadEmittersPlugin } from "@tsparticles/plugin-emitters"; 5 | import { options } from "./options.js"; 6 | 7 | /** 8 | * 9 | * @param engine - 10 | * @param refresh - 11 | */ 12 | export async function loadFountainPreset(engine: Engine, refresh = true): Promise { 13 | await loadBasic(engine, false); 14 | await loadDestroyUpdater(engine, false); 15 | await loadEmittersPlugin(engine, false); 16 | 17 | await engine.addPreset("fountain", options, false); 18 | 19 | await engine.refresh(refresh); 20 | } 21 | -------------------------------------------------------------------------------- /presets/fountain/src/options.ts: -------------------------------------------------------------------------------- 1 | import { type ISourceOptions, MoveDirection, OutMode } from "@tsparticles/engine"; 2 | 3 | export const options: ISourceOptions = { 4 | fpsLimit: 120, 5 | particles: { 6 | bounce: { 7 | vertical: { 8 | value: { 9 | min: 0.75, 10 | max: 0.85, 11 | }, 12 | }, 13 | }, 14 | color: { 15 | value: ["#3998D0", "#2EB6AF", "#A9BD33", "#FEC73B", "#F89930", "#F45623", "#D62E32", "#EB586E", "#9952CF"], 16 | }, 17 | number: { 18 | value: 0, 19 | }, 20 | destroy: { 21 | mode: "split", 22 | split: { 23 | count: 2, 24 | factor: { 25 | value: { 26 | min: 1.1, 27 | max: 2, 28 | }, 29 | }, 30 | rate: { 31 | value: { 32 | min: 2, 33 | max: 3, 34 | }, 35 | }, 36 | }, 37 | }, 38 | opacity: { 39 | value: 0.5, 40 | }, 41 | size: { 42 | value: { 43 | min: 10, 44 | max: 20, 45 | }, 46 | }, 47 | move: { 48 | enable: true, 49 | gravity: { 50 | enable: true, 51 | maxSpeed: 50, 52 | }, 53 | speed: { 54 | min: 10, 55 | max: 20, 56 | }, 57 | direction: MoveDirection.none, 58 | random: false, 59 | straight: false, 60 | outModes: { 61 | bottom: OutMode.split, 62 | default: OutMode.bounce, 63 | top: OutMode.none, 64 | }, 65 | trail: { 66 | enable: true, 67 | fill: { 68 | color: "#fff", 69 | }, 70 | length: 3, 71 | }, 72 | }, 73 | }, 74 | detectRetina: true, 75 | background: { 76 | color: "#fff", 77 | }, 78 | emitters: { 79 | direction: MoveDirection.top, 80 | life: { 81 | count: 0, 82 | duration: 0.15, 83 | delay: 3, 84 | }, 85 | rate: { 86 | delay: 0.1, 87 | quantity: 5, 88 | }, 89 | size: { 90 | width: 0, 91 | height: 0, 92 | }, 93 | }, 94 | }; 95 | -------------------------------------------------------------------------------- /presets/fountain/tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsparticles/tsconfig/tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": "./src" 5 | }, 6 | "include": [ 7 | "./src" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /presets/fountain/tsconfig.browser.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.browser.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/browser" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/fountain/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/cjs" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/fountain/tsconfig.module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.module.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/esm" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/fountain/tsconfig.types.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.types.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/types" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/fountain/tsconfig.umd.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.umd.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/umd" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/fountain/typedoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "includes": "./markdown", 3 | "entryPoints": ["./src/"], 4 | "entryPointStrategy": "expand", 5 | "name": "tsParticles Fountain Preset", 6 | "includeVersion": true, 7 | "hideGenerator": true, 8 | "out": "./docs", 9 | "validation": { 10 | "invalidLink": true, 11 | "notDocumented": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /presets/fountain/webpack.config.js: -------------------------------------------------------------------------------- 1 | const { loadParticlesPreset } = require("@tsparticles/webpack-plugin"); 2 | const version = require("./package.json").version; 3 | 4 | module.exports = loadParticlesPreset({ 5 | dir: __dirname, 6 | moduleName: "fountain", 7 | presetName: "Fountain", 8 | version: version 9 | }); 10 | -------------------------------------------------------------------------------- /presets/hyperspace/.browserslistrc: -------------------------------------------------------------------------------- 1 | since 2019 2 | not dead 3 | -------------------------------------------------------------------------------- /presets/hyperspace/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules -------------------------------------------------------------------------------- /presets/hyperspace/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: [ 3 | "@tsparticles/eslint-config", 4 | ] 5 | }; 6 | -------------------------------------------------------------------------------- /presets/hyperspace/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | All notable changes to this project will be documented in this file. 4 | See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. 5 | 6 | # [3.2.0](https://github.com/tsparticles/presets/compare/v3.1.0...v3.2.0) (2024-11-24) 7 | 8 | **Note:** Version bump only for package @tsparticles/preset-hyperspace 9 | 10 | # [3.1.0](https://github.com/tsparticles/presets/compare/v3.0.2...v3.1.0) (2024-06-03) 11 | 12 | ### Bug Fixes 13 | 14 | - fixed some load functions, the order wasn't right ([03842e7](https://github.com/tsparticles/presets/commit/03842e769222020110a8a62336ef16992f20d088)) 15 | 16 | ### Features 17 | 18 | - changed bundles loading method, no more preloading plugins ([e59a41a](https://github.com/tsparticles/presets/commit/e59a41a9dd59ad666f156fb114c06ddb44b46f07)) 19 | 20 | ## [3.0.2](https://github.com/tsparticles/presets/compare/v3.0.1...v3.0.2) (2024-01-05) 21 | 22 | **Note:** Version bump only for package @tsparticles/preset-hyperspace 23 | 24 | ## [3.0.1](https://github.com/tsparticles/presets/compare/v3.0.0...v3.0.1) (2023-12-25) 25 | 26 | **Note:** Version bump only for package @tsparticles/preset-hyperspace 27 | 28 | # [3.0.0](https://github.com/tsparticles/presets/compare/v3.0.0-beta.4...v3.0.0) (2023-12-05) 29 | 30 | **Note:** Version bump only for package @tsparticles/preset-hyperspace 31 | 32 | # [3.0.0-beta.4](https://github.com/tsparticles/presets/compare/v3.0.0-beta.3...v3.0.0-beta.4) (2023-11-16) 33 | 34 | **Note:** Version bump only for package @tsparticles/preset-hyperspace 35 | 36 | # [3.0.0-beta.3](https://github.com/tsparticles/presets/compare/v3.0.0-beta.2...v3.0.0-beta.3) (2023-11-16) 37 | 38 | **Note:** Version bump only for package @tsparticles/preset-hyperspace 39 | 40 | # [3.0.0-beta.2](https://github.com/tsparticles/presets/compare/v2.12.0...v3.0.0-beta.2) (2023-11-16) 41 | 42 | ### Features 43 | 44 | - added squares preset ([fbeafea](https://github.com/tsparticles/presets/commit/fbeafeae2261b7c9ce3f7cc1f1d690ac68806542)) 45 | 46 | # [3.0.0-beta.1](https://github.com/tsparticles/presets/compare/v2.11.0...v3.0.0-beta.1) (2023-08-04) 47 | 48 | ### Features 49 | 50 | - added hyperscape preset ([5e07a70](https://github.com/tsparticles/presets/commit/5e07a709a3cc022dd2952d052b858df04e7004e6)) 51 | -------------------------------------------------------------------------------- /presets/hyperspace/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Matteo Bruni 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /presets/hyperspace/images/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/presets/hyperspace/images/sample.png -------------------------------------------------------------------------------- /presets/hyperspace/package.dist.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tsparticles/preset-hyperspace", 3 | "version": "3.2.0", 4 | "description": "tsParticles hyperspace preset", 5 | "homepage": "https://particles.js.org", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/tsparticles/presets.git", 9 | "directory": "presets/hyperspace" 10 | }, 11 | "keywords": [ 12 | "front-end", 13 | "frontend", 14 | "tsparticles", 15 | "particles.js", 16 | "particlesjs", 17 | "particles", 18 | "particle", 19 | "canvas", 20 | "jsparticles", 21 | "xparticles", 22 | "particles-js", 23 | "particles-bg", 24 | "particles-bg-vue", 25 | "particles-ts", 26 | "particles.ts", 27 | "react-particles-js", 28 | "react-particles.js", 29 | "react-particles", 30 | "react", 31 | "reactjs", 32 | "vue-particles", 33 | "ngx-particles", 34 | "angular-particles", 35 | "particleground", 36 | "vue", 37 | "vuejs", 38 | "preact", 39 | "preactjs", 40 | "jquery", 41 | "angularjs", 42 | "angular", 43 | "typescript", 44 | "javascript", 45 | "animation", 46 | "web", 47 | "html5", 48 | "web-design", 49 | "webdesign", 50 | "css", 51 | "html", 52 | "css3", 53 | "animated", 54 | "background", 55 | "confetti", 56 | "canvas", 57 | "fireworks", 58 | "fireworks-js", 59 | "confetti-js", 60 | "confettijs", 61 | "fireworksjs", 62 | "canvas-confetti", 63 | "tsparticles-preset" 64 | ], 65 | "author": "Matteo Bruni ", 66 | "license": "MIT", 67 | "bugs": { 68 | "url": "https://github.com/tsparticles/presets/issues" 69 | }, 70 | "funding": [ 71 | { 72 | "type": "github", 73 | "url": "https://github.com/sponsors/matteobruni" 74 | }, 75 | { 76 | "type": "github", 77 | "url": "https://github.com/sponsors/tsparticles" 78 | }, 79 | { 80 | "type": "buymeacoffee", 81 | "url": "https://www.buymeacoffee.com/matteobruni" 82 | } 83 | ], 84 | "main": "cjs/index.js", 85 | "jsdelivr": "tsparticles.preset.hyperspace.min.js", 86 | "unpkg": "tsparticles.preset.hyperspace.min.js", 87 | "module": "esm/index.js", 88 | "types": "types/index.d.ts", 89 | "dependencies": { 90 | "@tsparticles/basic": "^3.7.1", 91 | "@tsparticles/engine": "^3.7.1", 92 | "@tsparticles/plugin-emitters": "^3.7.1", 93 | "@tsparticles/plugin-emitters-shape-square": "^3.7.1", 94 | "@tsparticles/updater-life": "^3.7.1" 95 | }, 96 | "publishConfig": { 97 | "access": "public" 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /presets/hyperspace/src/bundle.ts: -------------------------------------------------------------------------------- 1 | import { loadHyperspacePreset } from "./index.js"; 2 | import { tsParticles } from "@tsparticles/engine"; 3 | 4 | export { loadHyperspacePreset, tsParticles }; 5 | -------------------------------------------------------------------------------- /presets/hyperspace/src/index.ts: -------------------------------------------------------------------------------- 1 | import type { Engine } from "@tsparticles/engine"; 2 | import { loadBasic } from "@tsparticles/basic"; 3 | import { loadEmittersPlugin } from "@tsparticles/plugin-emitters"; 4 | import { loadEmittersShapeSquare } from "@tsparticles/plugin-emitters-shape-square"; 5 | import { loadLifeUpdater } from "@tsparticles/updater-life"; 6 | import { options } from "./options.js"; 7 | 8 | /** 9 | * 10 | * @param engine - 11 | * @param refresh - 12 | */ 13 | export async function loadHyperspacePreset(engine: Engine, refresh = true): Promise { 14 | await loadBasic(engine, false); 15 | await loadEmittersPlugin(engine, false); 16 | await loadEmittersShapeSquare(engine, false); 17 | await loadLifeUpdater(engine, false); 18 | 19 | await engine.addPreset("hyperspace", options, false); 20 | 21 | await engine.refresh(refresh); 22 | } 23 | -------------------------------------------------------------------------------- /presets/hyperspace/src/options.ts: -------------------------------------------------------------------------------- 1 | import { MoveDirection, OutMode } from "@tsparticles/engine"; 2 | 3 | export const options = { 4 | background: { 5 | color: "#000000", 6 | }, 7 | particles: { 8 | number: { 9 | value: 100, 10 | }, 11 | color: { 12 | value: "#ffffff", 13 | }, 14 | life: { 15 | count: 1, 16 | duration: { 17 | value: 5, 18 | }, 19 | }, 20 | shape: { 21 | type: "circle", 22 | }, 23 | opacity: { 24 | value: 1, 25 | }, 26 | size: { 27 | value: 3, 28 | }, 29 | move: { 30 | enable: true, 31 | speed: 10, 32 | decay: 0.005, 33 | direction: MoveDirection.outside, 34 | straight: true, 35 | outModes: OutMode.destroy, 36 | trail: { 37 | enable: true, 38 | length: 15, 39 | fill: { 40 | color: "#000000", 41 | }, 42 | }, 43 | }, 44 | }, 45 | emitters: { 46 | position: { 47 | x: 50, 48 | y: 50, 49 | }, 50 | size: { 51 | width: 100, 52 | height: 100, 53 | }, 54 | rate: { 55 | quantity: 10, 56 | delay: 0.1, 57 | }, 58 | }, 59 | }; 60 | -------------------------------------------------------------------------------- /presets/hyperspace/tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsparticles/tsconfig/tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": "./src" 5 | }, 6 | "include": [ 7 | "./src" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /presets/hyperspace/tsconfig.browser.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.browser.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/browser" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/hyperspace/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/cjs" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/hyperspace/tsconfig.module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.module.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/esm" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/hyperspace/tsconfig.types.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.types.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/types" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/hyperspace/tsconfig.umd.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.umd.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/umd" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/hyperspace/typedoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "includes": "./markdown", 3 | "entryPoints": ["./src/"], 4 | "entryPointStrategy": "expand", 5 | "name": "tsParticles Hyperspace Preset", 6 | "includeVersion": true, 7 | "hideGenerator": true, 8 | "out": "./docs", 9 | "validation": { 10 | "invalidLink": true, 11 | "notDocumented": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /presets/hyperspace/webpack.config.js: -------------------------------------------------------------------------------- 1 | const { loadParticlesPreset } = require("@tsparticles/webpack-plugin"); 2 | const version = require("./package.json").version; 3 | 4 | module.exports = loadParticlesPreset({ 5 | dir: __dirname, 6 | moduleName: "hyperspace", 7 | presetName: "Hyperspace", 8 | version: version 9 | }); 10 | -------------------------------------------------------------------------------- /presets/links/.browserslistrc: -------------------------------------------------------------------------------- 1 | since 2019 2 | not dead 3 | -------------------------------------------------------------------------------- /presets/links/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules -------------------------------------------------------------------------------- /presets/links/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: [ 3 | "@tsparticles/eslint-config", 4 | ] 5 | }; 6 | -------------------------------------------------------------------------------- /presets/links/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Matteo Bruni 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /presets/links/images/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/presets/links/images/sample.png -------------------------------------------------------------------------------- /presets/links/package.dist.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tsparticles/preset-links", 3 | "version": "3.2.0", 4 | "description": "tsParticles links preset", 5 | "homepage": "https://particles.js.org", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/tsparticles/presets.git", 9 | "directory": "presets/links" 10 | }, 11 | "keywords": [ 12 | "front-end", 13 | "frontend", 14 | "tsparticles", 15 | "particles.js", 16 | "particlesjs", 17 | "particles", 18 | "particle", 19 | "canvas", 20 | "jsparticles", 21 | "xparticles", 22 | "particles-js", 23 | "particles-bg", 24 | "particles-bg-vue", 25 | "particles-ts", 26 | "particles.ts", 27 | "react-particles-js", 28 | "react-particles.js", 29 | "react-particles", 30 | "react", 31 | "reactjs", 32 | "vue-particles", 33 | "ngx-particles", 34 | "angular-particles", 35 | "particleground", 36 | "vue", 37 | "vuejs", 38 | "preact", 39 | "preactjs", 40 | "jquery", 41 | "angularjs", 42 | "angular", 43 | "typescript", 44 | "javascript", 45 | "animation", 46 | "web", 47 | "html5", 48 | "web-design", 49 | "webdesign", 50 | "css", 51 | "html", 52 | "css3", 53 | "animated", 54 | "background", 55 | "confetti", 56 | "canvas", 57 | "fireworks", 58 | "fireworks-js", 59 | "confetti-js", 60 | "confettijs", 61 | "fireworksjs", 62 | "canvas-confetti", 63 | "tsparticles-preset" 64 | ], 65 | "author": "Matteo Bruni ", 66 | "license": "MIT", 67 | "bugs": { 68 | "url": "https://github.com/tsparticles/presets/issues" 69 | }, 70 | "funding": [ 71 | { 72 | "type": "github", 73 | "url": "https://github.com/sponsors/matteobruni" 74 | }, 75 | { 76 | "type": "github", 77 | "url": "https://github.com/sponsors/tsparticles" 78 | }, 79 | { 80 | "type": "buymeacoffee", 81 | "url": "https://www.buymeacoffee.com/matteobruni" 82 | } 83 | ], 84 | "main": "cjs/index.js", 85 | "jsdelivr": "tsparticles.preset.links.min.js", 86 | "unpkg": "tsparticles.preset.links.min.js", 87 | "module": "esm/index.js", 88 | "types": "types/index.d.ts", 89 | "dependencies": { 90 | "@tsparticles/basic": "^3.7.1", 91 | "@tsparticles/engine": "^3.7.1", 92 | "@tsparticles/interaction-particles-links": "^3.7.1" 93 | }, 94 | "publishConfig": { 95 | "access": "public" 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /presets/links/src/bundle.ts: -------------------------------------------------------------------------------- 1 | import { loadLinksPreset } from "./index.js"; 2 | import { tsParticles } from "@tsparticles/engine"; 3 | 4 | export { loadLinksPreset, tsParticles }; 5 | -------------------------------------------------------------------------------- /presets/links/src/index.ts: -------------------------------------------------------------------------------- 1 | import type { Engine } from "@tsparticles/engine"; 2 | import { loadBasic } from "@tsparticles/basic"; 3 | import { loadParticlesLinksInteraction } from "@tsparticles/interaction-particles-links"; 4 | import { options } from "./options.js"; 5 | 6 | /** 7 | * 8 | * @param engine - 9 | * @param refresh - 10 | */ 11 | export async function loadLinksPreset(engine: Engine, refresh = true): Promise { 12 | await loadBasic(engine, false); 13 | await loadParticlesLinksInteraction(engine, false); 14 | 15 | await engine.addPreset("links", options, false); 16 | 17 | await engine.refresh(refresh); 18 | } 19 | -------------------------------------------------------------------------------- /presets/links/src/options.ts: -------------------------------------------------------------------------------- 1 | export const options = { 2 | background: { 3 | color: "#000000", 4 | }, 5 | particles: { 6 | number: { 7 | value: 100, 8 | }, 9 | links: { 10 | distance: 150, 11 | enable: true, 12 | }, 13 | move: { 14 | enable: true, 15 | }, 16 | size: { 17 | value: 1, 18 | }, 19 | shape: { 20 | type: "circle", 21 | }, 22 | }, 23 | }; 24 | -------------------------------------------------------------------------------- /presets/links/tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsparticles/tsconfig/tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": "./src" 5 | }, 6 | "include": [ 7 | "./src" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /presets/links/tsconfig.browser.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.browser.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/browser" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/links/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/cjs" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/links/tsconfig.module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.module.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/esm" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/links/tsconfig.types.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.types.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/types" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/links/tsconfig.umd.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.umd.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/umd" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/links/typedoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "includes": "./markdown", 3 | "entryPoints": [ 4 | "./src/" 5 | ], 6 | "entryPointStrategy": "expand", 7 | "name": "tsParticles Links Preset", 8 | "includeVersion": true, 9 | "hideGenerator": true, 10 | "out": "./docs", 11 | "validation": { 12 | "invalidLink": true, 13 | "notDocumented": true 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /presets/links/webpack.config.js: -------------------------------------------------------------------------------- 1 | const { loadParticlesPreset } = require("@tsparticles/webpack-plugin"); 2 | const version = require("./package.json").version; 3 | 4 | module.exports = loadParticlesPreset({ 5 | dir: __dirname, 6 | moduleName: "links", 7 | presetName: "Links", 8 | version: version 9 | }); 10 | -------------------------------------------------------------------------------- /presets/seaAnemone/.browserslistrc: -------------------------------------------------------------------------------- 1 | since 2019 2 | not dead 3 | -------------------------------------------------------------------------------- /presets/seaAnemone/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules -------------------------------------------------------------------------------- /presets/seaAnemone/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: [ 3 | "@tsparticles/eslint-config", 4 | ] 5 | }; 6 | -------------------------------------------------------------------------------- /presets/seaAnemone/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Matteo Bruni 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /presets/seaAnemone/images/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/presets/seaAnemone/images/sample.png -------------------------------------------------------------------------------- /presets/seaAnemone/package.dist.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tsparticles/preset-sea-anemone", 3 | "version": "3.2.0", 4 | "description": "tsParticles sea anemone preset", 5 | "homepage": "https://particles.js.org", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/tsparticles/presets.git", 9 | "directory": "presets/seaAnemone" 10 | }, 11 | "keywords": [ 12 | "front-end", 13 | "frontend", 14 | "tsparticles", 15 | "particles.js", 16 | "particlesjs", 17 | "particles", 18 | "particle", 19 | "canvas", 20 | "jsparticles", 21 | "xparticles", 22 | "particles-js", 23 | "particles-bg", 24 | "particles-bg-vue", 25 | "particles-ts", 26 | "particles.ts", 27 | "react-particles-js", 28 | "react-particles.js", 29 | "react-particles", 30 | "react", 31 | "reactjs", 32 | "vue-particles", 33 | "ngx-particles", 34 | "angular-particles", 35 | "particleground", 36 | "vue", 37 | "vuejs", 38 | "preact", 39 | "preactjs", 40 | "jquery", 41 | "angularjs", 42 | "angular", 43 | "typescript", 44 | "javascript", 45 | "animation", 46 | "web", 47 | "html5", 48 | "web-design", 49 | "webdesign", 50 | "css", 51 | "html", 52 | "css3", 53 | "animated", 54 | "background", 55 | "confetti", 56 | "canvas", 57 | "fireworks", 58 | "fireworks-js", 59 | "confetti-js", 60 | "confettijs", 61 | "fireworksjs", 62 | "canvas-confetti", 63 | "tsparticles-preset" 64 | ], 65 | "author": "Matteo Bruni ", 66 | "license": "MIT", 67 | "bugs": { 68 | "url": "https://github.com/tsparticles/presets/issues" 69 | }, 70 | "funding": [ 71 | { 72 | "type": "github", 73 | "url": "https://github.com/sponsors/matteobruni" 74 | }, 75 | { 76 | "type": "github", 77 | "url": "https://github.com/sponsors/tsparticles" 78 | }, 79 | { 80 | "type": "buymeacoffee", 81 | "url": "https://www.buymeacoffee.com/matteobruni" 82 | } 83 | ], 84 | "main": "cjs/index.js", 85 | "jsdelivr": "tsparticles.preset.seaAnemone.min.js", 86 | "unpkg": "tsparticles.preset.seaAnemone.min.js", 87 | "module": "esm/index.js", 88 | "types": "types/index.d.ts", 89 | "dependencies": { 90 | "@tsparticles/basic": "^3.7.1", 91 | "@tsparticles/engine": "^3.7.1", 92 | "@tsparticles/path-curves": "^3.7.1", 93 | "@tsparticles/plugin-emitters": "^3.7.1" 94 | }, 95 | "publishConfig": { 96 | "access": "public" 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /presets/seaAnemone/src/bundle.ts: -------------------------------------------------------------------------------- 1 | import { loadSeaAnemonePreset } from "./index.js"; 2 | import { tsParticles } from "@tsparticles/engine"; 3 | 4 | export { loadSeaAnemonePreset, tsParticles }; 5 | -------------------------------------------------------------------------------- /presets/seaAnemone/src/index.ts: -------------------------------------------------------------------------------- 1 | import { options, presetName } from "./options.js"; 2 | import type { Engine } from "@tsparticles/engine"; 3 | import { loadBasic } from "@tsparticles/basic"; 4 | import { loadCurvesPath } from "@tsparticles/path-curves"; 5 | import { loadEmittersPlugin } from "@tsparticles/plugin-emitters"; 6 | 7 | /** 8 | * 9 | * @param engine - 10 | * @param refresh - 11 | */ 12 | export async function loadSeaAnemonePreset(engine: Engine, refresh = true): Promise { 13 | await loadBasic(engine, false); 14 | await loadEmittersPlugin(engine, false); 15 | await loadCurvesPath(engine, false); 16 | 17 | await engine.addPreset(presetName, options, false); 18 | 19 | await engine.refresh(refresh); 20 | } 21 | -------------------------------------------------------------------------------- /presets/seaAnemone/src/options.ts: -------------------------------------------------------------------------------- 1 | import type { ISourceOptions } from "@tsparticles/engine"; 2 | import { curvesPathName } from "@tsparticles/path-curves"; 3 | 4 | export const presetName = "seaAnemone"; 5 | 6 | export const options: ISourceOptions = { 7 | fpsLimit: 120, 8 | particles: { 9 | color: { 10 | value: "#FF0000", 11 | }, 12 | move: { 13 | direction: "none", 14 | enable: true, 15 | outModes: { 16 | default: "destroy", 17 | }, 18 | path: { 19 | clamp: false, 20 | enable: true, 21 | delay: { 22 | value: 0, 23 | }, 24 | generator: curvesPathName, 25 | }, 26 | random: false, 27 | speed: 2, 28 | straight: false, 29 | trail: { 30 | fill: { 31 | color: "#000", 32 | }, 33 | length: 30, 34 | enable: true, 35 | }, 36 | }, 37 | number: { 38 | value: 0, 39 | limit: { value: 300 }, 40 | }, 41 | opacity: { 42 | value: 1, 43 | }, 44 | shape: { 45 | type: "circle", 46 | }, 47 | size: { 48 | value: { min: 1, max: 10 }, 49 | animation: { 50 | count: 1, 51 | startValue: "min", 52 | enable: true, 53 | speed: 10, 54 | sync: true, 55 | }, 56 | }, 57 | }, 58 | background: { 59 | color: "#000", 60 | }, 61 | detectRetina: true, 62 | emitters: { 63 | direction: "none", 64 | rate: { 65 | quantity: 10, 66 | delay: 0.3, 67 | }, 68 | size: { 69 | width: 0, 70 | height: 0, 71 | mode: "precise", 72 | }, 73 | spawnColor: { 74 | value: "#ff0000", 75 | animation: { 76 | h: { 77 | enable: true, 78 | offset: { 79 | min: -1.4, 80 | max: 1.4, 81 | }, 82 | speed: 5, 83 | sync: false, 84 | }, 85 | l: { 86 | enable: true, 87 | offset: { 88 | min: 20, 89 | max: 80, 90 | }, 91 | speed: 0, 92 | sync: false, 93 | }, 94 | }, 95 | }, 96 | position: { 97 | x: 50, 98 | y: 50, 99 | }, 100 | }, 101 | }; 102 | -------------------------------------------------------------------------------- /presets/seaAnemone/tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsparticles/tsconfig/tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": "./src" 5 | }, 6 | "include": [ 7 | "./src" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /presets/seaAnemone/tsconfig.browser.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.browser.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/browser" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/seaAnemone/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/cjs" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/seaAnemone/tsconfig.module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.module.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/esm" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/seaAnemone/tsconfig.types.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.types.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/types" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/seaAnemone/tsconfig.umd.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.umd.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/umd" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/seaAnemone/typedoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "includes": "./markdown", 3 | "entryPoints": ["./src/"], 4 | "entryPointStrategy": "expand", 5 | "name": "tsParticles Sea Anemone Preset", 6 | "includeVersion": true, 7 | "hideGenerator": true, 8 | "out": "./docs", 9 | "validation": { 10 | "invalidLink": true, 11 | "notDocumented": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /presets/seaAnemone/webpack.config.js: -------------------------------------------------------------------------------- 1 | const { loadParticlesPreset } = require("@tsparticles/webpack-plugin"); 2 | const version = require("./package.json").version; 3 | 4 | module.exports = loadParticlesPreset({ 5 | dir: __dirname, 6 | moduleName: "seaAnemone", 7 | presetName: "Sea Anemone", 8 | version: version 9 | }); 10 | -------------------------------------------------------------------------------- /presets/snow/.browserslistrc: -------------------------------------------------------------------------------- 1 | since 2019 2 | not dead 3 | -------------------------------------------------------------------------------- /presets/snow/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules -------------------------------------------------------------------------------- /presets/snow/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: [ 3 | "@tsparticles/eslint-config", 4 | ] 5 | }; 6 | -------------------------------------------------------------------------------- /presets/snow/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Matteo Bruni 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /presets/snow/images/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/presets/snow/images/sample.png -------------------------------------------------------------------------------- /presets/snow/package.dist.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tsparticles/preset-snow", 3 | "version": "3.2.0", 4 | "description": "tsParticles snow preset", 5 | "homepage": "https://particles.js.org", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/tsparticles/presets.git", 9 | "directory": "presets/snow" 10 | }, 11 | "keywords": [ 12 | "front-end", 13 | "frontend", 14 | "tsparticles", 15 | "particles.js", 16 | "particlesjs", 17 | "particles", 18 | "particle", 19 | "canvas", 20 | "jsparticles", 21 | "xparticles", 22 | "particles-js", 23 | "particles-bg", 24 | "particles-bg-vue", 25 | "particles-ts", 26 | "particles.ts", 27 | "react-particles-js", 28 | "react-particles.js", 29 | "react-particles", 30 | "react", 31 | "reactjs", 32 | "vue-particles", 33 | "ngx-particles", 34 | "angular-particles", 35 | "particleground", 36 | "vue", 37 | "vuejs", 38 | "preact", 39 | "preactjs", 40 | "jquery", 41 | "angularjs", 42 | "angular", 43 | "typescript", 44 | "javascript", 45 | "animation", 46 | "web", 47 | "html5", 48 | "web-design", 49 | "webdesign", 50 | "css", 51 | "html", 52 | "css3", 53 | "animated", 54 | "background", 55 | "confetti", 56 | "canvas", 57 | "fireworks", 58 | "fireworks-js", 59 | "confetti-js", 60 | "confettijs", 61 | "fireworksjs", 62 | "canvas-confetti", 63 | "tsparticles-preset" 64 | ], 65 | "author": "Matteo Bruni ", 66 | "license": "MIT", 67 | "bugs": { 68 | "url": "https://github.com/tsparticles/presets/issues" 69 | }, 70 | "funding": [ 71 | { 72 | "type": "github", 73 | "url": "https://github.com/sponsors/matteobruni" 74 | }, 75 | { 76 | "type": "github", 77 | "url": "https://github.com/sponsors/tsparticles" 78 | }, 79 | { 80 | "type": "buymeacoffee", 81 | "url": "https://www.buymeacoffee.com/matteobruni" 82 | } 83 | ], 84 | "main": "cjs/index.js", 85 | "jsdelivr": "tsparticles.preset.snow.min.js", 86 | "unpkg": "tsparticles.preset.snow.min.js", 87 | "module": "esm/index.js", 88 | "types": "types/index.d.ts", 89 | "dependencies": { 90 | "@tsparticles/basic": "^3.7.1", 91 | "@tsparticles/engine": "^3.7.1", 92 | "@tsparticles/updater-wobble": "^3.7.1" 93 | }, 94 | "publishConfig": { 95 | "access": "public" 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /presets/snow/src/bundle.ts: -------------------------------------------------------------------------------- 1 | import { loadSnowPreset } from "./index.js"; 2 | import { tsParticles } from "@tsparticles/engine"; 3 | 4 | export { loadSnowPreset, tsParticles }; 5 | -------------------------------------------------------------------------------- /presets/snow/src/index.ts: -------------------------------------------------------------------------------- 1 | import type { Engine } from "@tsparticles/engine"; 2 | import { loadBasic } from "@tsparticles/basic"; 3 | import { loadWobbleUpdater } from "@tsparticles/updater-wobble"; 4 | import { options } from "./options.js"; 5 | 6 | /** 7 | * 8 | * @param engine - 9 | * @param refresh - 10 | */ 11 | export async function loadSnowPreset(engine: Engine, refresh = true): Promise { 12 | await loadBasic(engine, false); 13 | await loadWobbleUpdater(engine, false); 14 | 15 | await engine.addPreset("snow", options, false); 16 | 17 | await engine.refresh(refresh); 18 | } 19 | -------------------------------------------------------------------------------- /presets/snow/src/options.ts: -------------------------------------------------------------------------------- 1 | import { MoveDirection } from "@tsparticles/engine"; 2 | 3 | export const options = { 4 | background: { 5 | color: "#333", 6 | }, 7 | particles: { 8 | number: { 9 | value: 100, 10 | }, 11 | move: { 12 | direction: MoveDirection.bottom, 13 | enable: true, 14 | random: false, 15 | straight: false, 16 | }, 17 | opacity: { 18 | value: { min: 0.1, max: 0.5 }, 19 | }, 20 | size: { 21 | value: { min: 1, max: 10 }, 22 | }, 23 | wobble: { 24 | distance: 20, 25 | enable: true, 26 | speed: { 27 | min: -5, 28 | max: 5, 29 | }, 30 | }, 31 | }, 32 | }; 33 | -------------------------------------------------------------------------------- /presets/snow/tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsparticles/tsconfig/tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": "./src" 5 | }, 6 | "include": [ 7 | "./src" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /presets/snow/tsconfig.browser.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.browser.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/browser" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/snow/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/cjs" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/snow/tsconfig.module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.module.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/esm" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/snow/tsconfig.types.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.types.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/types" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/snow/tsconfig.umd.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.umd.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/umd" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/snow/typedoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "includes": "./markdown", 3 | "entryPoints": ["./src/"], 4 | "entryPointStrategy": "expand", 5 | "name": "tsParticles Snow Preset", 6 | "includeVersion": true, 7 | "hideGenerator": true, 8 | "out": "./docs", 9 | "validation": { 10 | "invalidLink": true, 11 | "notDocumented": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /presets/snow/webpack.config.js: -------------------------------------------------------------------------------- 1 | const { loadParticlesPreset } = require("@tsparticles/webpack-plugin"); 2 | const version = require("./package.json").version; 3 | 4 | module.exports = loadParticlesPreset({ 5 | dir: __dirname, 6 | moduleName: "snow", 7 | presetName: "Snow", 8 | version: version 9 | }); 10 | -------------------------------------------------------------------------------- /presets/squares/.browserslistrc: -------------------------------------------------------------------------------- 1 | since 2019 2 | not dead 3 | -------------------------------------------------------------------------------- /presets/squares/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules -------------------------------------------------------------------------------- /presets/squares/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: [ 3 | "@tsparticles/eslint-config", 4 | ] 5 | }; 6 | -------------------------------------------------------------------------------- /presets/squares/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | All notable changes to this project will be documented in this file. 4 | See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. 5 | 6 | # [3.2.0](https://github.com/tsparticles/presets/compare/v3.1.0...v3.2.0) (2024-11-24) 7 | 8 | **Note:** Version bump only for package @tsparticles/preset-squares 9 | 10 | # [3.1.0](https://github.com/tsparticles/presets/compare/v3.0.2...v3.1.0) (2024-06-03) 11 | 12 | ### Features 13 | 14 | - changed bundles loading method, no more preloading plugins ([e59a41a](https://github.com/tsparticles/presets/commit/e59a41a9dd59ad666f156fb114c06ddb44b46f07)) 15 | 16 | ## [3.0.2](https://github.com/tsparticles/presets/compare/v3.0.1...v3.0.2) (2024-01-05) 17 | 18 | **Note:** Version bump only for package @tsparticles/preset-squares 19 | 20 | ## [3.0.1](https://github.com/tsparticles/presets/compare/v3.0.0...v3.0.1) (2023-12-25) 21 | 22 | **Note:** Version bump only for package @tsparticles/preset-squares 23 | 24 | # [3.0.0](https://github.com/tsparticles/presets/compare/v3.0.0-beta.4...v3.0.0) (2023-12-05) 25 | 26 | **Note:** Version bump only for package @tsparticles/preset-squares 27 | 28 | # [3.0.0-beta.4](https://github.com/tsparticles/presets/compare/v3.0.0-beta.3...v3.0.0-beta.4) (2023-11-16) 29 | 30 | **Note:** Version bump only for package @tsparticles/preset-squares 31 | 32 | # [3.0.0-beta.3](https://github.com/tsparticles/presets/compare/v3.0.0-beta.2...v3.0.0-beta.3) (2023-11-16) 33 | 34 | **Note:** Version bump only for package @tsparticles/preset-squares 35 | 36 | # [3.0.0-beta.2](https://github.com/tsparticles/presets/compare/v2.12.0...v3.0.0-beta.2) (2023-11-16) 37 | 38 | ### Features 39 | 40 | - added squares preset ([fbeafea](https://github.com/tsparticles/presets/commit/fbeafeae2261b7c9ce3f7cc1f1d690ac68806542)) 41 | -------------------------------------------------------------------------------- /presets/squares/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Matteo Bruni 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /presets/squares/images/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/presets/squares/images/sample.png -------------------------------------------------------------------------------- /presets/squares/package.dist.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tsparticles/preset-squares", 3 | "version": "3.2.0", 4 | "description": "tsParticles squares preset", 5 | "homepage": "https://particles.js.org", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/tsparticles/presets.git", 9 | "directory": "presets/squares" 10 | }, 11 | "keywords": [ 12 | "front-end", 13 | "frontend", 14 | "tsparticles", 15 | "particles.js", 16 | "particlesjs", 17 | "particles", 18 | "particle", 19 | "canvas", 20 | "jsparticles", 21 | "xparticles", 22 | "particles-js", 23 | "particles-bg", 24 | "particles-bg-vue", 25 | "particles-ts", 26 | "particles.ts", 27 | "react-particles-js", 28 | "react-particles.js", 29 | "react-particles", 30 | "react", 31 | "reactjs", 32 | "vue-particles", 33 | "ngx-particles", 34 | "angular-particles", 35 | "particleground", 36 | "vue", 37 | "vuejs", 38 | "preact", 39 | "preactjs", 40 | "jquery", 41 | "angularjs", 42 | "angular", 43 | "typescript", 44 | "javascript", 45 | "animation", 46 | "web", 47 | "html5", 48 | "web-design", 49 | "webdesign", 50 | "css", 51 | "html", 52 | "css3", 53 | "animated", 54 | "background", 55 | "confetti", 56 | "canvas", 57 | "fireworks", 58 | "fireworks-js", 59 | "confetti-js", 60 | "confettijs", 61 | "fireworksjs", 62 | "canvas-confetti", 63 | "tsparticles-preset" 64 | ], 65 | "author": "Matteo Bruni ", 66 | "license": "MIT", 67 | "bugs": { 68 | "url": "https://github.com/tsparticles/presets/issues" 69 | }, 70 | "funding": [ 71 | { 72 | "type": "github", 73 | "url": "https://github.com/sponsors/matteobruni" 74 | }, 75 | { 76 | "type": "github", 77 | "url": "https://github.com/sponsors/tsparticles" 78 | }, 79 | { 80 | "type": "buymeacoffee", 81 | "url": "https://www.buymeacoffee.com/matteobruni" 82 | } 83 | ], 84 | "main": "cjs/index.js", 85 | "jsdelivr": "tsparticles.preset.squares.min.js", 86 | "unpkg": "tsparticles.preset.squares.min.js", 87 | "module": "esm/index.js", 88 | "types": "types/index.d.ts", 89 | "dependencies": { 90 | "@tsparticles/engine": "^3.7.1", 91 | "@tsparticles/plugin-emitters": "^3.7.1", 92 | "@tsparticles/plugin-hex-color": "^3.7.1", 93 | "@tsparticles/shape-square": "^3.7.1", 94 | "@tsparticles/updater-rotate": "^3.7.1", 95 | "@tsparticles/updater-size": "^3.7.1", 96 | "@tsparticles/updater-stroke-color": "^3.7.1" 97 | }, 98 | "publishConfig": { 99 | "access": "public" 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /presets/squares/src/bundle.ts: -------------------------------------------------------------------------------- 1 | import { loadSquaresPreset } from "./index.js"; 2 | import { tsParticles } from "@tsparticles/engine"; 3 | 4 | export { loadSquaresPreset, tsParticles }; 5 | -------------------------------------------------------------------------------- /presets/squares/src/index.ts: -------------------------------------------------------------------------------- 1 | import type { Engine } from "@tsparticles/engine"; 2 | import { loadEmittersPlugin } from "@tsparticles/plugin-emitters"; 3 | import { loadHexColorPlugin } from "@tsparticles/plugin-hex-color"; 4 | import { loadRotateUpdater } from "@tsparticles/updater-rotate"; 5 | import { loadSizeUpdater } from "@tsparticles/updater-size"; 6 | import { loadSquareShape } from "@tsparticles/shape-square"; 7 | import { loadStrokeColorUpdater } from "@tsparticles/updater-stroke-color"; 8 | import { options } from "./options.js"; 9 | 10 | /** 11 | * 12 | * @param engine - the engine instance to load the preset into 13 | * @param refresh - should refresh the engine 14 | */ 15 | export async function loadSquaresPreset(engine: Engine, refresh = true): Promise { 16 | await loadHexColorPlugin(engine, false); 17 | await loadEmittersPlugin(engine, false); 18 | await loadSquareShape(engine, false); 19 | await loadRotateUpdater(engine, false); 20 | await loadSizeUpdater(engine, false); 21 | await loadStrokeColorUpdater(engine, false); 22 | 23 | await engine.addPreset("squares", options, false); 24 | 25 | await engine.refresh(refresh); 26 | } 27 | -------------------------------------------------------------------------------- /presets/squares/src/options.ts: -------------------------------------------------------------------------------- 1 | import { DestroyType, type ISourceOptions, RotateDirection, StartValueType } from "@tsparticles/engine"; 2 | 3 | export const options: ISourceOptions = { 4 | particles: { 5 | stroke: { 6 | width: 5, 7 | color: { 8 | value: [ 9 | "#5bc0eb", 10 | "#fde74c", 11 | "#9bc53d", 12 | "#e55934", 13 | "#fa7921", 14 | "#2FF3E0", 15 | "#F8D210", 16 | "#FA26A0", 17 | "#F51720", 18 | ], 19 | }, 20 | }, 21 | shape: { 22 | type: "square", 23 | options: { 24 | square: { 25 | fill: false, 26 | }, 27 | }, 28 | }, 29 | rotate: { 30 | value: 0, 31 | direction: RotateDirection.counterClockwise, 32 | animation: { 33 | enable: true, 34 | speed: 2, 35 | sync: true, 36 | }, 37 | }, 38 | size: { 39 | value: { min: 1, max: 500 }, 40 | animation: { 41 | enable: true, 42 | startValue: StartValueType.min, 43 | speed: 60, 44 | sync: true, 45 | destroy: DestroyType.max, 46 | }, 47 | }, 48 | }, 49 | background: { 50 | color: "#000", 51 | }, 52 | emitters: { 53 | position: { 54 | y: 50, 55 | x: 50, 56 | }, 57 | rate: { 58 | delay: 1, 59 | quantity: 1, 60 | }, 61 | }, 62 | }; 63 | -------------------------------------------------------------------------------- /presets/squares/tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsparticles/tsconfig/tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": "./src" 5 | }, 6 | "include": [ 7 | "./src" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /presets/squares/tsconfig.browser.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.browser.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/browser" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/squares/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/cjs" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/squares/tsconfig.module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.module.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/esm" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/squares/tsconfig.types.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.types.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/types" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/squares/tsconfig.umd.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.umd.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/umd" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/squares/webpack.config.js: -------------------------------------------------------------------------------- 1 | const { loadParticlesPreset } = require("@tsparticles/webpack-plugin"), 2 | version = require("./package.json").version; 3 | 4 | module.exports = loadParticlesPreset({ moduleName: "squares", templateName: "Squares", version, dir: __dirname }); 5 | -------------------------------------------------------------------------------- /presets/stars/.browserslistrc: -------------------------------------------------------------------------------- 1 | since 2019 2 | not dead 3 | -------------------------------------------------------------------------------- /presets/stars/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules -------------------------------------------------------------------------------- /presets/stars/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: [ 3 | "@tsparticles/eslint-config", 4 | ] 5 | }; 6 | -------------------------------------------------------------------------------- /presets/stars/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Matteo Bruni 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /presets/stars/images/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/presets/stars/images/sample.png -------------------------------------------------------------------------------- /presets/stars/package.dist.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tsparticles/preset-stars", 3 | "version": "3.2.0", 4 | "description": "tsParticles stars preset", 5 | "homepage": "https://particles.js.org", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/tsparticles/presets.git", 9 | "directory": "presets/stars" 10 | }, 11 | "keywords": [ 12 | "front-end", 13 | "frontend", 14 | "tsparticles", 15 | "particles.js", 16 | "particlesjs", 17 | "particles", 18 | "particle", 19 | "canvas", 20 | "jsparticles", 21 | "xparticles", 22 | "particles-js", 23 | "particles-bg", 24 | "particles-bg-vue", 25 | "particles-ts", 26 | "particles.ts", 27 | "react-particles-js", 28 | "react-particles.js", 29 | "react-particles", 30 | "react", 31 | "reactjs", 32 | "vue-particles", 33 | "ngx-particles", 34 | "angular-particles", 35 | "particleground", 36 | "vue", 37 | "vuejs", 38 | "preact", 39 | "preactjs", 40 | "jquery", 41 | "angularjs", 42 | "angular", 43 | "typescript", 44 | "javascript", 45 | "animation", 46 | "web", 47 | "html5", 48 | "web-design", 49 | "webdesign", 50 | "css", 51 | "html", 52 | "css3", 53 | "animated", 54 | "background", 55 | "confetti", 56 | "canvas", 57 | "fireworks", 58 | "fireworks-js", 59 | "confetti-js", 60 | "confettijs", 61 | "fireworksjs", 62 | "canvas-confetti", 63 | "tsparticles-preset" 64 | ], 65 | "author": "Matteo Bruni ", 66 | "license": "MIT", 67 | "bugs": { 68 | "url": "https://github.com/tsparticles/presets/issues" 69 | }, 70 | "funding": [ 71 | { 72 | "type": "github", 73 | "url": "https://github.com/sponsors/matteobruni" 74 | }, 75 | { 76 | "type": "github", 77 | "url": "https://github.com/sponsors/tsparticles" 78 | }, 79 | { 80 | "type": "buymeacoffee", 81 | "url": "https://www.buymeacoffee.com/matteobruni" 82 | } 83 | ], 84 | "main": "cjs/index.js", 85 | "jsdelivr": "tsparticles.preset.stars.min.js", 86 | "unpkg": "tsparticles.preset.stars.min.js", 87 | "module": "esm/index.js", 88 | "types": "types/index.d.ts", 89 | "dependencies": { 90 | "@tsparticles/basic": "^3.7.1", 91 | "@tsparticles/engine": "^3.7.1" 92 | }, 93 | "publishConfig": { 94 | "access": "public" 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /presets/stars/src/bundle.ts: -------------------------------------------------------------------------------- 1 | import { loadStarsPreset } from "./index.js"; 2 | import { tsParticles } from "@tsparticles/engine"; 3 | 4 | export { loadStarsPreset, tsParticles }; 5 | -------------------------------------------------------------------------------- /presets/stars/src/index.ts: -------------------------------------------------------------------------------- 1 | import type { Engine } from "@tsparticles/engine"; 2 | import { loadBasic } from "@tsparticles/basic"; 3 | import { options } from "./options.js"; 4 | 5 | /** 6 | * 7 | * @param engine - 8 | * @param refresh - 9 | */ 10 | export async function loadStarsPreset(engine: Engine, refresh = true): Promise { 11 | await loadBasic(engine, false); 12 | 13 | await engine.addPreset("stars", options, false); 14 | 15 | await engine.refresh(refresh); 16 | } 17 | -------------------------------------------------------------------------------- /presets/stars/src/options.ts: -------------------------------------------------------------------------------- 1 | import { MoveDirection, OutMode } from "@tsparticles/engine"; 2 | 3 | export const options = { 4 | background: { 5 | color: "#000", 6 | }, 7 | particles: { 8 | number: { 9 | value: 100, 10 | }, 11 | move: { 12 | direction: MoveDirection.none, 13 | enable: true, 14 | outModes: { 15 | default: OutMode.out, 16 | }, 17 | random: true, 18 | speed: 0.1, 19 | straight: false, 20 | }, 21 | opacity: { 22 | animation: { 23 | enable: true, 24 | speed: 1, 25 | sync: false, 26 | }, 27 | value: { min: 0, max: 1 }, 28 | }, 29 | size: { 30 | value: { min: 1, max: 3 }, 31 | }, 32 | }, 33 | }; 34 | -------------------------------------------------------------------------------- /presets/stars/tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsparticles/tsconfig/tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": "./src" 5 | }, 6 | "include": [ 7 | "./src" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /presets/stars/tsconfig.browser.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.browser.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/browser" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/stars/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/cjs" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/stars/tsconfig.module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.module.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/esm" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/stars/tsconfig.types.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.types.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/types" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/stars/tsconfig.umd.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.umd.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/umd" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/stars/typedoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "includes": "./markdown", 3 | "entryPoints": ["./src/"], 4 | "entryPointStrategy": "expand", 5 | "name": "tsParticles Stars Preset", 6 | "includeVersion": true, 7 | "hideGenerator": true, 8 | "out": "./docs", 9 | "validation": { 10 | "invalidLink": true, 11 | "notDocumented": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /presets/stars/webpack.config.js: -------------------------------------------------------------------------------- 1 | const { loadParticlesPreset } = require("@tsparticles/webpack-plugin"); 2 | const version = require("./package.json").version; 3 | 4 | module.exports = loadParticlesPreset({ 5 | dir: __dirname, 6 | moduleName: "stars", 7 | presetName: "Stars", 8 | version: version 9 | }); 10 | -------------------------------------------------------------------------------- /presets/triangles/.browserslistrc: -------------------------------------------------------------------------------- 1 | since 2019 2 | not dead 3 | -------------------------------------------------------------------------------- /presets/triangles/.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules -------------------------------------------------------------------------------- /presets/triangles/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: [ 3 | "@tsparticles/eslint-config", 4 | ] 5 | }; 6 | -------------------------------------------------------------------------------- /presets/triangles/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Matteo Bruni 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /presets/triangles/images/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsparticles/presets/9becdbdcff5ab927226b86e70c5fc89abe45a92e/presets/triangles/images/sample.png -------------------------------------------------------------------------------- /presets/triangles/package.dist.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tsparticles/preset-triangles", 3 | "version": "3.2.0", 4 | "description": "tsParticles triangles preset", 5 | "homepage": "https://particles.js.org", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/tsparticles/presets.git", 9 | "directory": "presets/triangles" 10 | }, 11 | "keywords": [ 12 | "front-end", 13 | "frontend", 14 | "tsparticles", 15 | "particles.js", 16 | "particlesjs", 17 | "particles", 18 | "particle", 19 | "canvas", 20 | "jsparticles", 21 | "xparticles", 22 | "particles-js", 23 | "particles-bg", 24 | "particles-bg-vue", 25 | "particles-ts", 26 | "particles.ts", 27 | "react-particles-js", 28 | "react-particles.js", 29 | "react-particles", 30 | "react", 31 | "reactjs", 32 | "vue-particles", 33 | "ngx-particles", 34 | "angular-particles", 35 | "particleground", 36 | "vue", 37 | "vuejs", 38 | "preact", 39 | "preactjs", 40 | "jquery", 41 | "angularjs", 42 | "angular", 43 | "typescript", 44 | "javascript", 45 | "animation", 46 | "web", 47 | "html5", 48 | "web-design", 49 | "webdesign", 50 | "css", 51 | "html", 52 | "css3", 53 | "animated", 54 | "background", 55 | "confetti", 56 | "canvas", 57 | "fireworks", 58 | "fireworks-js", 59 | "confetti-js", 60 | "confettijs", 61 | "fireworksjs", 62 | "canvas-confetti", 63 | "tsparticles-preset" 64 | ], 65 | "author": "Matteo Bruni ", 66 | "license": "MIT", 67 | "bugs": { 68 | "url": "https://github.com/tsparticles/presets/issues" 69 | }, 70 | "funding": [ 71 | { 72 | "type": "github", 73 | "url": "https://github.com/sponsors/matteobruni" 74 | }, 75 | { 76 | "type": "github", 77 | "url": "https://github.com/sponsors/tsparticles" 78 | }, 79 | { 80 | "type": "buymeacoffee", 81 | "url": "https://www.buymeacoffee.com/matteobruni" 82 | } 83 | ], 84 | "main": "cjs/index.js", 85 | "jsdelivr": "tsparticles.preset.triangles.min.js", 86 | "unpkg": "tsparticles.preset.triangles.min.js", 87 | "module": "esm/index.js", 88 | "types": "types/index.d.ts", 89 | "dependencies": { 90 | "@tsparticles/basic": "^3.7.1", 91 | "@tsparticles/engine": "^3.7.1", 92 | "@tsparticles/interaction-particles-links": "^3.7.1" 93 | }, 94 | "publishConfig": { 95 | "access": "public" 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /presets/triangles/src/bundle.ts: -------------------------------------------------------------------------------- 1 | import { loadTrianglesPreset } from "./index.js"; 2 | import { tsParticles } from "@tsparticles/engine"; 3 | 4 | export { loadTrianglesPreset, tsParticles }; 5 | -------------------------------------------------------------------------------- /presets/triangles/src/index.ts: -------------------------------------------------------------------------------- 1 | import type { Engine } from "@tsparticles/engine"; 2 | import { loadBasic } from "@tsparticles/basic"; 3 | import { loadParticlesLinksInteraction } from "@tsparticles/interaction-particles-links"; 4 | import { options } from "./options.js"; 5 | 6 | /** 7 | * 8 | * @param engine - 9 | * @param refresh - 10 | */ 11 | export async function loadTrianglesPreset(engine: Engine, refresh = true): Promise { 12 | await loadBasic(engine, false); 13 | await loadParticlesLinksInteraction(engine, false); 14 | 15 | await engine.addPreset("triangles", options, false); 16 | 17 | await engine.refresh(refresh); 18 | } 19 | -------------------------------------------------------------------------------- /presets/triangles/src/options.ts: -------------------------------------------------------------------------------- 1 | import type { ISourceOptions } from "@tsparticles/engine"; 2 | 3 | export const options: ISourceOptions = { 4 | background: { 5 | color: "#000000", 6 | }, 7 | particles: { 8 | number: { 9 | value: 100, 10 | }, 11 | links: { 12 | distance: 125, 13 | enable: true, 14 | triangles: { 15 | enable: true, 16 | opacity: 0.1, 17 | }, 18 | }, 19 | move: { 20 | enable: true, 21 | speed: 5, 22 | }, 23 | size: { 24 | value: 1, 25 | }, 26 | shape: { 27 | type: "circle", 28 | }, 29 | }, 30 | }; 31 | -------------------------------------------------------------------------------- /presets/triangles/tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsparticles/tsconfig/tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": "./src" 5 | }, 6 | "include": [ 7 | "./src" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /presets/triangles/tsconfig.browser.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.browser.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/browser" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/triangles/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/cjs" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/triangles/tsconfig.module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.module.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/esm" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/triangles/tsconfig.types.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.types.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/types" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/triangles/tsconfig.umd.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/tsconfig.umd.json"], 3 | "compilerOptions": { 4 | "outDir": "./dist/umd" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /presets/triangles/typedoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "includes": "./markdown", 3 | "entryPoints": ["./src/"], 4 | "entryPointStrategy": "expand", 5 | "name": "tsParticles Triangles Preset", 6 | "includeVersion": true, 7 | "hideGenerator": true, 8 | "out": "./docs", 9 | "validation": { 10 | "invalidLink": true, 11 | "notDocumented": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /presets/triangles/webpack.config.js: -------------------------------------------------------------------------------- 1 | const { loadParticlesPreset } = require("@tsparticles/webpack-plugin"); 2 | const version = require("./package.json").version; 3 | 4 | module.exports = loadParticlesPreset({ 5 | dir: __dirname, 6 | moduleName: "triangles", 7 | presetName: "Triangles", 8 | version: version 9 | }); 10 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "baseBranches": [ 4 | "dev" 5 | ], 6 | "extends": [ 7 | "config:base" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /typedoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "gaID": "UA-161253125-1", 3 | "includes": "./markdown", 4 | "entryPoints": [ 5 | "presets/bigCircles", 6 | "presets/bubbles", 7 | "presets/confetti", 8 | "presets/fire", 9 | "presets/firefly", 10 | "presets/fireworks", 11 | "presets/fountain", 12 | "presets/links", 13 | "presets/seaAnemone", 14 | "presets/snow", 15 | "presets/stars", 16 | "presets/triangles" 17 | ], 18 | "entryPointStrategy": "packages", 19 | "name": "tsParticles Presets", 20 | "includeVersion": true, 21 | "hideGenerator": true, 22 | "out": "./docs", 23 | "clarityId": "8q4bxin4tm", 24 | "carbonServe": "CEAI6KJL", 25 | "carbonPlacement": "particlesjsorg", 26 | "keywords": [ 27 | "html", 28 | "css", 29 | "javascript", 30 | "typescript", 31 | "particles", 32 | "js", 33 | "ts", 34 | "jsx", 35 | "tsx", 36 | "canvas", 37 | "confetti", 38 | "fireworks", 39 | "animations", 40 | "react", 41 | "vue", 42 | "angular", 43 | "svelte", 44 | "libraries", 45 | "how", 46 | "to", 47 | "create", 48 | "add" 49 | ], 50 | "validation": { 51 | "invalidLink": true, 52 | "notDocumented": true 53 | } 54 | } 55 | --------------------------------------------------------------------------------