From fd1492705daddb3a6dc9f1cc97c89fbf675c8911 Mon Sep 17 00:00:00 2001 From: Utkarsh-Singhal-26 Date: Tue, 9 Sep 2025 18:56:26 +0530 Subject: [PATCH 1/5] =?UTF-8?q?FEAT:=20=F0=9F=8E=89=20New=20=20animation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/landing/Hero/Hero.vue | 4 +- src/constants/Categories.ts | 3 +- src/constants/Components.ts | 1 + .../code/Animations/gradualBlurCode.ts | 19 +- .../code/Animations/laserFlowCode.ts | 99 ++++ .../Animations/LaserFlow/LaserFlow.vue | 477 ++++++++++++++++++ src/demo/Animations/LaserFlowDemo.vue | 212 ++++++++ 7 files changed, 811 insertions(+), 4 deletions(-) create mode 100644 src/constants/code/Animations/laserFlowCode.ts create mode 100644 src/content/Animations/LaserFlow/LaserFlow.vue create mode 100644 src/demo/Animations/LaserFlowDemo.vue diff --git a/src/components/landing/Hero/Hero.vue b/src/components/landing/Hero/Hero.vue index a276611..36b952f 100644 --- a/src/components/landing/Hero/Hero.vue +++ b/src/components/landing/Hero/Hero.vue @@ -19,10 +19,10 @@ />
- + New 🎉
- Liquid Ether + Laser Flow
diff --git a/src/constants/Categories.ts b/src/constants/Categories.ts index bf5ae9b..0d2ab75 100644 --- a/src/constants/Categories.ts +++ b/src/constants/Categories.ts @@ -1,5 +1,5 @@ // Highlighted sidebar items -export const NEW = ['Liquid Ether', 'Staggered Menu', 'Pixel Blast', 'Gradual Blur', 'Gradient Blinds', 'Bubble Menu', 'Prism', 'Plasma', 'Electric Border', 'Target Cursor', 'Pill Nav', 'Card Nav', 'Logo Loop', 'Prismatic Burst']; +export const NEW = ['Laser Flow', 'Liquid Ether', 'Staggered Menu', 'Pixel Blast', 'Gradual Blur', 'Gradient Blinds', 'Bubble Menu', 'Prism', 'Plasma', 'Electric Border', 'Target Cursor', 'Pill Nav', 'Card Nav', 'Logo Loop', 'Prismatic Burst']; export const UPDATED = []; // Used for main sidebar navigation @@ -37,6 +37,7 @@ export const CATEGORIES = [ 'Animated Content', 'Fade Content', 'Gradual Blur', + 'Laser Flow', 'Noise', 'Splash Cursor', 'Logo Loop', diff --git a/src/constants/Components.ts b/src/constants/Components.ts index d07c4cc..3239967 100644 --- a/src/constants/Components.ts +++ b/src/constants/Components.ts @@ -23,6 +23,7 @@ const animations = { 'sticker-peel': () => import('../demo/Animations/StickerPeelDemo.vue'), 'electric-border': () => import('../demo/Animations/ElectricBorderDemo.vue'), 'gradual-blur': () => import('../demo/Animations/GradualBlurDemo.vue'), + 'laser-flow': () => import('../demo/Animations/LaserFlowDemo.vue'), }; const textAnimations = { diff --git a/src/constants/code/Animations/gradualBlurCode.ts b/src/constants/code/Animations/gradualBlurCode.ts index 3a4d480..fbe391b 100644 --- a/src/constants/code/Animations/gradualBlurCode.ts +++ b/src/constants/code/Animations/gradualBlurCode.ts @@ -3,7 +3,24 @@ import { createCodeObject } from '@/types/code'; export const gradualBlur = createCodeObject(code, 'Animations/GradualBlur', { installation: `npm install mathjs`, - usage: ` + usage: ` ` +}); diff --git a/src/content/Animations/LaserFlow/LaserFlow.vue b/src/content/Animations/LaserFlow/LaserFlow.vue new file mode 100644 index 0000000..aa2a9b4 --- /dev/null +++ b/src/content/Animations/LaserFlow/LaserFlow.vue @@ -0,0 +1,477 @@ + + + diff --git a/src/demo/Animations/LaserFlowDemo.vue b/src/demo/Animations/LaserFlowDemo.vue new file mode 100644 index 0000000..16dd908 --- /dev/null +++ b/src/demo/Animations/LaserFlowDemo.vue @@ -0,0 +1,212 @@ + + + + + From 96872f6dde0aff27510a15cfb57dbf8bdb483d1e Mon Sep 17 00:00:00 2001 From: Utkarsh Singhal Date: Wed, 10 Sep 2025 09:57:55 +0530 Subject: [PATCH 2/5] Update laserFlowCode.ts --- src/constants/code/Animations/laserFlowCode.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/constants/code/Animations/laserFlowCode.ts b/src/constants/code/Animations/laserFlowCode.ts index cb00762..5476d42 100644 --- a/src/constants/code/Animations/laserFlowCode.ts +++ b/src/constants/code/Animations/laserFlowCode.ts @@ -72,7 +72,7 @@ export const laserFlow = createCodeObject(code, 'Animations/LaserFlow', { ` +}); \ No newline at end of file diff --git a/src/content/Components/DomeGallery/DomeGallery.vue b/src/content/Components/DomeGallery/DomeGallery.vue new file mode 100644 index 0000000..3c628af --- /dev/null +++ b/src/content/Components/DomeGallery/DomeGallery.vue @@ -0,0 +1,866 @@ + + + + diff --git a/src/demo/Components/DomeGalleryDemo.vue b/src/demo/Components/DomeGalleryDemo.vue new file mode 100644 index 0000000..1cfe4bf --- /dev/null +++ b/src/demo/Components/DomeGalleryDemo.vue @@ -0,0 +1,221 @@ + + + \ No newline at end of file From e550c972189ce3fe17a8d5a12528df6c181de849 Mon Sep 17 00:00:00 2001 From: David Haz Date: Thu, 25 Sep 2025 10:33:31 +0300 Subject: [PATCH 5/5] fix: refactor watch logic for manual mode and animation duration in TrueFocus component --- .../TextAnimations/TrueFocus/TrueFocus.vue | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/content/TextAnimations/TrueFocus/TrueFocus.vue b/src/content/TextAnimations/TrueFocus/TrueFocus.vue index f1de0b6..3ef0096 100644 --- a/src/content/TextAnimations/TrueFocus/TrueFocus.vue +++ b/src/content/TextAnimations/TrueFocus/TrueFocus.vue @@ -31,26 +31,6 @@ const focusRect = ref({ x: 0, y: 0, width: 0, height: 0 }); let interval: number | null = null; -watch( - [() => props.manualMode, () => props.animationDuration, () => props.pauseBetweenAnimations, () => words.value], - () => { - if (interval) { - clearInterval(interval); - interval = null; - } - - if (!props.manualMode) { - interval = setInterval( - () => { - currentIndex.value = (currentIndex.value + 1) % words.value.length; - }, - (props.animationDuration + props.pauseBetweenAnimations) * 1000 - ); - } - }, - { immediate: true } -); - watch( [currentIndex, () => words.value.length], async () => { @@ -105,6 +85,26 @@ onMounted(async () => { height: activeRect.height }; } + + watch( + [() => props.manualMode, () => props.animationDuration, () => props.pauseBetweenAnimations, () => words.value], + () => { + if (interval) { + clearInterval(interval); + interval = null; + } + + if (!props.manualMode) { + interval = setInterval( + () => { + currentIndex.value = (currentIndex.value + 1) % words.value.length; + }, + (props.animationDuration + props.pauseBetweenAnimations) * 1000 + ); + } + }, + { immediate: true } + ); }); onUnmounted(() => {