{"id":15284291,"url":"https://github.com/tsparticles/vue2","last_synced_at":"2025-04-11T15:04:23.557Z","repository":{"id":103338010,"uuid":"583399339","full_name":"tsparticles/vue2","owner":"tsparticles","description":"tsParticles Official Vue 2 component library","archived":false,"fork":false,"pushed_at":"2025-04-08T10:43:15.000Z","size":1782,"stargazers_count":16,"open_issues_count":13,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-08T11:34:01.369Z","etag":null,"topics":["hacktoberfest","javascript","tsparticles","typescript","vue","vue2","vuejs","vuejs2"],"latest_commit_sha":null,"homepage":"","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tsparticles.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"matteobruni,tsparticles"}},"created_at":"2022-12-29T16:59:25.000Z","updated_at":"2025-03-29T22:39:14.000Z","dependencies_parsed_at":"2024-01-22T19:33:42.988Z","dependency_job_id":"e4e8e6f9-478b-4b59-b80b-a6de660f4775","html_url":"https://github.com/tsparticles/vue2","commit_stats":{"total_commits":191,"total_committers":3,"mean_commits":"63.666666666666664","dds":"0.23036649214659688","last_synced_commit":"6c1eae2a84d6216aefdc1886e1f84a98c2b45bda"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsparticles%2Fvue2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsparticles%2Fvue2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsparticles%2Fvue2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsparticles%2Fvue2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tsparticles","download_url":"https://codeload.github.com/tsparticles/vue2/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248429061,"owners_count":21101780,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","javascript","tsparticles","typescript","vue","vue2","vuejs","vuejs2"],"created_at":"2024-09-30T14:52:54.837Z","updated_at":"2025-04-11T15:04:23.521Z","avatar_url":"https://github.com/tsparticles.png","language":"Vue","funding_links":["https://github.com/sponsors/matteobruni,tsparticles","https://github.com/sponsors/matteobruni","https://www.buymeacoffee.com/matteobruni","https://img.buymeacoffee.com/button-api/?text=Buy"],"categories":[],"sub_categories":[],"readme":"[![banner](https://particles.js.org/images/banner3.png)](https://particles.js.org)\n\n# @tsparticles/vue2\n\n[![npm](https://img.shields.io/npm/v/@tsparticles/vue2)](https://www.npmjs.com/package/@tsparticles/vue2) [![npm](https://img.shields.io/npm/dm/vue2-particles)](https://www.npmjs.com/package/vue2-particles) [![GitHub Sponsors](https://img.shields.io/github/sponsors/matteobruni)](https://github.com/sponsors/matteobruni)\n\nOfficial [tsParticles](https://github.com/matteobruni/tsparticles) VueJS component\n\n[![Slack](https://particles.js.org/images/slack.png)](https://join.slack.com/t/tsparticles/shared_invite/enQtOTcxNTQxNjQ4NzkxLWE2MTZhZWExMWRmOWI5MTMxNjczOGE1Yjk0MjViYjdkYTUzODM3OTc5MGQ5MjFlODc4MzE0N2Q1OWQxZDc1YzI) [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles)\n\n[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113\u0026theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured\u0026utm_medium=badge\u0026utm_souce=badge-tsparticles\") \u003ca href=\"https://www.buymeacoffee.com/matteobruni\"\u003e\u003cimg src=\"https://img.buymeacoffee.com/button-api/?text=Buy me a beer\u0026emoji=🍺\u0026slug=matteobruni\u0026button_colour=5F7FFF\u0026font_colour=ffffff\u0026font_family=Arial\u0026outline_colour=000000\u0026coffee_colour=FFDD00\"\u003e\u003c/a\u003e\n\n## Installation\n\n```shell script\nyarn add @tsparticles/vue2\n```\n\n## Usage\n\n```javascript\nimport Particles from \"@tsparticles/vue2\";\n//import { loadFull } from \"tsparticles\"; // if you are going to use `loadFull`, install the \"tsparticles\" package too.\nimport { loadSlim } from \"@tsparticles/slim\"; // if you are going to use `loadSlim`, install the \"@tsparticles/slim\" package too.\n\nVue.use(Particles, {\n    init: async engine =\u003e {\n        // await loadFull(engine);\n        await loadSlim(engine);\n    },\n});\n```\n\n### Demo config\n\n```html\n\u003ctemplate\u003e\n    \u003cdiv id=\"app\"\u003e\n        \u003cvue-particles id=\"tsparticles\" :particlesLoaded=\"particlesLoaded\" url=\"http://foo.bar/particles.json\" /\u003e\n\n        \u003c!-- or --\u003e\n\n        \u003cvue-particles\n                id=\"tsparticles\"\n                :particlesLoaded=\"particlesLoaded\"\n                :options=\"{\n                    background: {\n                        color: {\n                            value: '#0d47a1'\n                        }\n                    },\n                    fpsLimit: 120,\n                    interactivity: {\n                        events: {\n                            onClick: {\n                                enable: true,\n                                mode: 'push'\n                            },\n                            onHover: {\n                                enable: true,\n                                mode: 'repulse'\n                            },\n                        },\n                        modes: {\n                            bubble: {\n                                distance: 400,\n                                duration: 2,\n                                opacity: 0.8,\n                                size: 40\n                            },\n                            push: {\n                                quantity: 4\n                            },\n                            repulse: {\n                                distance: 200,\n                                duration: 0.4\n                            }\n                        }\n                    },\n                    particles: {\n                        color: {\n                            value: '#ffffff'\n                        },\n                        links: {\n                            color: '#ffffff',\n                            distance: 150,\n                            enable: true,\n                            opacity: 0.5,\n                            width: 1\n                        },\n                        move: {\n                            direction: 'none',\n                            enable: true,\n                            outModes: 'bounce',\n                            random: false,\n                            speed: 6,\n                            straight: false\n                        },\n                        number: {\n                            density: {\n                                enable: true,\n                            },\n                            value: 80\n                        },\n                        opacity: {\n                            value: 0.5\n                        },\n                        shape: {\n                            type: 'circle'\n                        },\n                        size: {\n                            value: { min: 1, max: 5 },\n                        }\n                    },\n                    detectRetina: true\n                }\"\n        /\u003e\n    \u003c/div\u003e\n\u003c/template\u003e\n```\n\n```javascript\nconst particlesLoaded = async container =\u003e {\n    console.log(\"Particles container loaded\", container);\n};\n```\n\n### TypeScript errors\n\nIf TypeScript returns error while importing/using Particles plugin try adding the following import before the previous\ncode:\n\n```typescript\ndeclare module \"@tsparticles/vue2\";\n```\n\n## Demos\n\nThe demo website is [here](https://particles.js.org)\n\n\u003chttps://particles.js.org\u003e\n\nThere's also a CodePen collection actively maintained and updated [here](https://codepen.io/collection/DPOage)\n\n\u003chttps://codepen.io/collection/DPOage\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsparticles%2Fvue2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftsparticles%2Fvue2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsparticles%2Fvue2/lists"}