From f4663a64c7439bac2af45ac9c516a280f207503c Mon Sep 17 00:00:00 2001 From: Utkarsh-Singhal-26 Date: Mon, 27 Oct 2025 16:28:00 +0530 Subject: [PATCH] =?UTF-8?q?FEAT:=20=F0=9F=8E=89=20Added=20=20animation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/constants/Categories.ts | 3 +- src/constants/Components.ts | 1 + .../code/Animations/ghostCursorCode.ts | 27 + .../Animations/GhostCursor/GhostCursor.vue | 557 ++++++++++++++++++ src/demo/Animations/GhostCursorDemo.vue | 167 ++++++ 5 files changed, 754 insertions(+), 1 deletion(-) create mode 100644 src/constants/code/Animations/ghostCursorCode.ts create mode 100644 src/content/Animations/GhostCursor/GhostCursor.vue create mode 100644 src/demo/Animations/GhostCursorDemo.vue diff --git a/src/constants/Categories.ts b/src/constants/Categories.ts index 53a91ec..8285535 100644 --- a/src/constants/Categories.ts +++ b/src/constants/Categories.ts @@ -1,5 +1,5 @@ // Highlighted sidebar items -export const NEW = ['Laser Flow', 'Dome Gallery', '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 = ['Ghost Cursor', 'Laser Flow', 'Dome Gallery', 'Liquid Ether', 'Staggered Menu', 'Pixel Blast', 'Gradient Blinds', 'Bubble Menu', 'Prism', 'Plasma', 'Pill Nav', 'Card Nav', 'Prismatic Burst']; export const UPDATED = []; // Used for main sidebar navigation @@ -43,6 +43,7 @@ export const CATEGORIES = [ 'Logo Loop', 'Pixel Transition', 'Target Cursor', + 'Ghost Cursor', 'Electric Border', 'Sticker Peel', 'Ribbons', diff --git a/src/constants/Components.ts b/src/constants/Components.ts index 326c231..09b41f7 100644 --- a/src/constants/Components.ts +++ b/src/constants/Components.ts @@ -24,6 +24,7 @@ const animations = { 'electric-border': () => import('../demo/Animations/ElectricBorderDemo.vue'), 'gradual-blur': () => import('../demo/Animations/GradualBlurDemo.vue'), 'laser-flow': () => import('../demo/Animations/LaserFlowDemo.vue'), + 'ghost-cursor': () => import('../demo/Animations/GhostCursorDemo.vue'), }; const textAnimations = { diff --git a/src/constants/code/Animations/ghostCursorCode.ts b/src/constants/code/Animations/ghostCursorCode.ts new file mode 100644 index 0000000..dd671bc --- /dev/null +++ b/src/constants/code/Animations/ghostCursorCode.ts @@ -0,0 +1,27 @@ +import code from '@/content/Animations/GhostCursor/GhostCursor.vue?raw'; +import { createCodeObject } from '@/types/code'; + +export const ghostCursor = createCodeObject(code, 'Animations/GhostCursor', { + installation: `npm install three`, + usage: ` + +` +}); diff --git a/src/content/Animations/GhostCursor/GhostCursor.vue b/src/content/Animations/GhostCursor/GhostCursor.vue new file mode 100644 index 0000000..3dcd31b --- /dev/null +++ b/src/content/Animations/GhostCursor/GhostCursor.vue @@ -0,0 +1,557 @@ + + + diff --git a/src/demo/Animations/GhostCursorDemo.vue b/src/demo/Animations/GhostCursorDemo.vue new file mode 100644 index 0000000..793ac5c --- /dev/null +++ b/src/demo/Animations/GhostCursorDemo.vue @@ -0,0 +1,167 @@ + + + + +