diff --git a/src/components/landing/Hero/Hero.vue b/src/components/landing/Hero/Hero.vue
index 0c3cf37..315915b 100644
--- a/src/components/landing/Hero/Hero.vue
+++ b/src/components/landing/Hero/Hero.vue
@@ -19,10 +19,10 @@
/>
-
+
New 🎉
- Color Bends
+ Floating Lines
diff --git a/src/constants/Categories.ts b/src/constants/Categories.ts
index 6357e3e..c286951 100644
--- a/src/constants/Categories.ts
+++ b/src/constants/Categories.ts
@@ -1,5 +1,5 @@
// Highlighted sidebar items
-export const NEW = ['Color Bends', 'Ghost Cursor', 'Laser Flow', 'Liquid Ether', 'Pixel Blast'];
+export const NEW = ['Color Bends', 'Ghost Cursor', 'Laser Flow', 'Liquid Ether', 'Pixel Blast', 'Floating Lines'];
export const UPDATED = [];
// Used for main sidebar navigation
@@ -114,6 +114,7 @@ export const CATEGORIES = [
'Dither',
'Dot Grid',
'Faulty Terminal',
+ 'Floating Lines',
'Galaxy',
'Gradient Blinds',
'Grid Distortion',
diff --git a/src/constants/Components.ts b/src/constants/Components.ts
index 440002d..342f7c0 100644
--- a/src/constants/Components.ts
+++ b/src/constants/Components.ts
@@ -120,6 +120,7 @@ const backgrounds = {
'pixel-blast': () => import('../demo/Backgrounds/PixelBlastDemo.vue'),
'liquid-ether': () => import('../demo/Backgrounds/LiquidEtherDemo.vue'),
'color-bends': () => import('../demo/Backgrounds/ColorBendsDemo.vue'),
+ 'floating-lines': () => import('../demo/Backgrounds/FloatingLinesDemo.vue'),
};
export const componentMap = {
diff --git a/src/constants/Information.ts b/src/constants/Information.ts
index 1d6c094..30e75fe 100644
--- a/src/constants/Information.ts
+++ b/src/constants/Information.ts
@@ -765,6 +765,14 @@ export const componentMetadata: ComponentMetadata = {
docsUrl: 'https://vue-bits.dev/backgrounds/faulty-terminal',
tags: []
},
+ 'Backgrounds/FloatingLines': {
+ videoUrl: '/assets/video/floatinglines.webm',
+ description: '3D floating lines that react to cursor movement.',
+ category: 'Backgrounds',
+ name: 'FloatingLines',
+ docsUrl: 'https://vue-bits.dev/backgrounds/floating-lines',
+ tags: []
+ },
'Backgrounds/Galaxy': {
videoUrl: '/assets/videos/galaxy.webm',
description: 'Parallax realistic starfield with pointer interactions.',
diff --git a/src/constants/code/Backgrounds/floatingLinesCode.ts b/src/constants/code/Backgrounds/floatingLinesCode.ts
new file mode 100644
index 0000000..62ff5f3
--- /dev/null
+++ b/src/constants/code/Backgrounds/floatingLinesCode.ts
@@ -0,0 +1,25 @@
+import code from '@content/Backgrounds/FloatingLines/FloatingLines.vue?raw';
+import { createCodeObject } from '../../../types/code';
+
+export const floatingLines = createCodeObject(code, 'Backgrounds/FloatingLines', {
+ installation: `npm install three`,
+ usage: `
+
+
+
+
+
+`
+});
diff --git a/src/content/Backgrounds/FloatingLines/FloatingLines.vue b/src/content/Backgrounds/FloatingLines/FloatingLines.vue
new file mode 100644
index 0000000..fa623b0
--- /dev/null
+++ b/src/content/Backgrounds/FloatingLines/FloatingLines.vue
@@ -0,0 +1,524 @@
+
+
+
+
+
diff --git a/src/demo/Backgrounds/FloatingLinesDemo.vue b/src/demo/Backgrounds/FloatingLinesDemo.vue
new file mode 100644
index 0000000..8abce1f
--- /dev/null
+++ b/src/demo/Backgrounds/FloatingLinesDemo.vue
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+
+
+
+
+ toggleWave('top')"
+ />
+ toggleWave('middle')"
+ />
+ toggleWave('bottom')"
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+