From b4932d26959248fb2d1bae80efcc97222d93785e Mon Sep 17 00:00:00 2001 From: whbbit1999 Date: Sun, 13 Jul 2025 17:56:45 +0800 Subject: [PATCH] feat: Stack component --- src/constants/Categories.ts | 3 +- src/constants/Components.ts | 7 +- src/constants/code/Components/stackCode.ts | 26 ++++ src/content/Components/Stack/CardRotate.vue | 41 ++++++ src/content/Components/Stack/Stack.vue | 77 ++++++++++++ src/demo/Components/StackDemo.vue | 130 ++++++++++++++++++++ 6 files changed, 280 insertions(+), 4 deletions(-) create mode 100644 src/constants/code/Components/stackCode.ts create mode 100644 src/content/Components/Stack/CardRotate.vue create mode 100644 src/content/Components/Stack/Stack.vue create mode 100644 src/demo/Components/StackDemo.vue diff --git a/src/constants/Categories.ts b/src/constants/Categories.ts index b26b32f..81e9899 100644 --- a/src/constants/Categories.ts +++ b/src/constants/Categories.ts @@ -63,7 +63,8 @@ export const CATEGORIES = [ 'Glass Icons', 'Decay Card', 'Flowing Menu', - 'Elastic Slider' + 'Elastic Slider', + 'Stack' ] }, { diff --git a/src/constants/Components.ts b/src/constants/Components.ts index 6437cbf..095d8a3 100644 --- a/src/constants/Components.ts +++ b/src/constants/Components.ts @@ -30,8 +30,8 @@ const textAnimations = { 'scramble-text': () => import("../demo/TextAnimations/ScrambleTextDemo.vue"), 'true-focus': () => import("../demo/TextAnimations/TrueFocusDemo.vue"), 'scroll-float': () => import("../demo/TextAnimations/ScrollFloatDemo.vue"), - 'scroll-reveal': ()=> import("../demo/TextAnimations/ScrollRevealDemo.vue"), - 'rotating-text': ()=> import("../demo/TextAnimations/RotatingTextDemo.vue"), + 'scroll-reveal': () => import("../demo/TextAnimations/ScrollRevealDemo.vue"), + 'rotating-text': () => import("../demo/TextAnimations/RotatingTextDemo.vue"), 'glitch-text': () => import("../demo/TextAnimations/GlitchTextDemo.vue"), }; @@ -51,7 +51,8 @@ const components = { 'decay-card': () => import('../demo/Components/DecayCardDemo.vue'), 'flowing-menu': () => import('../demo/Components/FlowingMenuDemo.vue'), 'elastic-slider': () => import('../demo/Components/ElasticSliderDemo.vue'), - 'tilted-card': () => import('../demo/Components/TiltedCardDemo.vue') + 'tilted-card': () => import('../demo/Components/TiltedCardDemo.vue'), + 'stack': () => import('../demo/Components/StackDemo.vue'), }; const backgrounds = { diff --git a/src/constants/code/Components/stackCode.ts b/src/constants/code/Components/stackCode.ts new file mode 100644 index 0000000..09721f0 --- /dev/null +++ b/src/constants/code/Components/stackCode.ts @@ -0,0 +1,26 @@ +import code from '@content/Components/Stack/Stack.vue?raw'; +import type { CodeObject } from '../../../types/code'; + +export const stack: CodeObject = { + cli: `npx jsrepo add https://vue-bits.dev/ui/Components/Stack`, + usage: ` + +`, + code +}; diff --git a/src/content/Components/Stack/CardRotate.vue b/src/content/Components/Stack/CardRotate.vue new file mode 100644 index 0000000..544ab08 --- /dev/null +++ b/src/content/Components/Stack/CardRotate.vue @@ -0,0 +1,41 @@ + + + diff --git a/src/content/Components/Stack/Stack.vue b/src/content/Components/Stack/Stack.vue new file mode 100644 index 0000000..9fde528 --- /dev/null +++ b/src/content/Components/Stack/Stack.vue @@ -0,0 +1,77 @@ + + + diff --git a/src/demo/Components/StackDemo.vue b/src/demo/Components/StackDemo.vue new file mode 100644 index 0000000..a623215 --- /dev/null +++ b/src/demo/Components/StackDemo.vue @@ -0,0 +1,130 @@ + + + + +