diff --git a/src/constants/Categories.ts b/src/constants/Categories.ts
index db902d6..2216cbf 100644
--- a/src/constants/Categories.ts
+++ b/src/constants/Categories.ts
@@ -45,6 +45,7 @@ export const CATEGORIES = [
'Magnet',
'Cubes',
'Blob Cursor',
+ 'Meta Balls',
]
},
{
diff --git a/src/constants/Components.ts b/src/constants/Components.ts
index 286ed82..641a4b4 100644
--- a/src/constants/Components.ts
+++ b/src/constants/Components.ts
@@ -13,6 +13,7 @@ const animations = {
'splash-cursor': () => import('../demo/Animations/SplashCursorDemo.vue'),
'noise': () => import('../demo/Animations/NoiseDemo.vue'),
'blob-cursor': () => import('../demo/Animations/BlobCursorDemo.vue'),
+ 'meta-balls': () => import('../demo/Animations/MetaBallsDemo.vue'),
};
const textAnimations = {
diff --git a/src/constants/code/Animations/metaBallsCode.ts b/src/constants/code/Animations/metaBallsCode.ts
new file mode 100644
index 0000000..54d85f1
--- /dev/null
+++ b/src/constants/code/Animations/metaBallsCode.ts
@@ -0,0 +1,26 @@
+import code from '@/content/Animations/MetaBalls/MetaBalls.vue?raw';
+import type { CodeObject } from '../../../types/code';
+
+export const metaBalls: CodeObject = {
+ cli: `npx jsrepo add https://vue-bits.dev/ui/Animations/MetaBalls`,
+ installation: `npm i ogl`,
+ usage: `
+
+
+
+`,
+ code
+};
diff --git a/src/content/Animations/MetaBalls/MetaBalls.vue b/src/content/Animations/MetaBalls/MetaBalls.vue
new file mode 100644
index 0000000..703d9ac
--- /dev/null
+++ b/src/content/Animations/MetaBalls/MetaBalls.vue
@@ -0,0 +1,267 @@
+
+
+
+
+
diff --git a/src/demo/Animations/MetaBallsDemo.vue b/src/demo/Animations/MetaBallsDemo.vue
new file mode 100644
index 0000000..eb1496f
--- /dev/null
+++ b/src/demo/Animations/MetaBallsDemo.vue
@@ -0,0 +1,204 @@
+
+
+
+
+
+
+
+
+
+
+ {
+ ballCount = val;
+ }
+ "
+ />
+
+ {
+ speed = val;
+ }
+ "
+ />
+
+ {
+ animationSize = val;
+ }
+ "
+ />
+
+ {
+ clumpFactor = val;
+ }
+ "
+ />
+
+
+
+ {
+ hoverSmoothness = val;
+ }
+ "
+ />
+
+ {
+ cursorBallSize = val;
+ }
+ "
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+