From f72045643109b0e5d8e2371de884bb3ffbd3065d Mon Sep 17 00:00:00 2001 From: qianmoQ Date: Sun, 28 Dec 2025 19:56:46 +0800 Subject: [PATCH 01/10] =?UTF-8?q?feat(=E7=BB=84=E4=BB=B6):=20=E6=94=AF?= =?UTF-8?q?=E6=8C=81=20Skeleton=20=E6=B6=B2=E6=80=81=E7=8E=BB=E7=92=83?= =?UTF-8?q?=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/components/layout/skeleton.md | 69 ++++++++++++++++++++ playground/src/example/skeleton/glass.vue | 77 +++++++++++++++++++++++ src/App.vue | 28 ++++----- src/ui/skeleton/ShadcnSkeleton.vue | 6 +- src/ui/skeleton/ShadcnSkeletonItem.vue | 8 ++- src/ui/skeleton/types.ts | 2 + 6 files changed, 172 insertions(+), 18 deletions(-) create mode 100644 playground/src/example/skeleton/glass.vue diff --git a/docs/components/layout/skeleton.md b/docs/components/layout/skeleton.md index 72961034..a8208641 100644 --- a/docs/components/layout/skeleton.md +++ b/docs/components/layout/skeleton.md @@ -118,6 +118,71 @@ title: 骨架屏 (Skeleton) ::: +## 液态玻璃效果 (glass) + + +
+
+
+

基础骨架屏

+ +
+
+

带动画效果

+ +
+
+

不同形状

+
+ + + +
+
+
+

图片骨架屏

+ +
+
+
+
+ +::: details 查看代码 + +```vue + + + +``` + +::: + ## 骨架屏 (Skeleton) 属性 @@ -139,6 +206,8 @@ title: 骨架屏 (Skeleton) ['width', '节点的宽度', 'Number | String', '-', '-'], ['type', '节点的类型', 'Enum', 'rect', 'circle | square | rect | image'], ['size', '节点的尺寸', 'Enum', 'default', 'small | default | large'], + ['dark', '是否为暗黑模式', 'boolean', 'false', '-'], + ['glass', '是否启用液态玻璃效果', 'boolean', 'false', '-'], ]"> diff --git a/playground/src/example/skeleton/glass.vue b/playground/src/example/skeleton/glass.vue new file mode 100644 index 00000000..747dcb91 --- /dev/null +++ b/playground/src/example/skeleton/glass.vue @@ -0,0 +1,77 @@ + + + diff --git a/src/App.vue b/src/App.vue index 76549021..054987af 100644 --- a/src/App.vue +++ b/src/App.vue @@ -6,29 +6,29 @@
-

ShadcnDivider - 液态玻璃效果

-
+

ShadcnSkeleton - 液态玻璃效果

+
-

基础分割线

- +

基础骨架屏

+
-

带文字分割线

- +

带动画效果

+
-

不同位置

-
- - - +

不同形状

+
+ + +
-

虚线样式

- +

图片骨架屏

+
@@ -41,7 +41,7 @@ \ No newline at end of file diff --git a/src/ui/skeleton/ShadcnSkeleton.vue b/src/ui/skeleton/ShadcnSkeleton.vue index a6cf4f4c..e85110cc 100644 --- a/src/ui/skeleton/ShadcnSkeleton.vue +++ b/src/ui/skeleton/ShadcnSkeleton.vue @@ -6,7 +6,8 @@ :width="width" :size="size" :animation="animation" - :dark="dark"/> + :dark="dark" + :glass="glass"/>
@@ -21,7 +22,8 @@ const props = withDefaults(defineProps(), { rows: 4, animation: false, size: 'mini', - dark: false + dark: false, + glass: false }) const addPxIfNumber = (value: number | string): string => { diff --git a/src/ui/skeleton/ShadcnSkeletonItem.vue b/src/ui/skeleton/ShadcnSkeletonItem.vue index 0ff98996..a11de54d 100644 --- a/src/ui/skeleton/ShadcnSkeletonItem.vue +++ b/src/ui/skeleton/ShadcnSkeletonItem.vue @@ -3,7 +3,10 @@
@@ -29,7 +32,8 @@ const props = withDefaults(defineProps(), { animation: false, type: 'rect', size: 'default', - dark: false + dark: false, + glass: false }) const skeletonShapeClass = computed(() => { diff --git a/src/ui/skeleton/types.ts b/src/ui/skeleton/types.ts index 40b36881..500766d7 100644 --- a/src/ui/skeleton/types.ts +++ b/src/ui/skeleton/types.ts @@ -9,6 +9,7 @@ export interface SkeletonProps size?: keyof typeof SkeletonSize paragraph?: { rows: number, width: (number | string)[] } dark?: boolean + glass?: boolean } export interface SkeletonItemProps @@ -18,4 +19,5 @@ export interface SkeletonItemProps type?: keyof typeof SkeletonType size?: keyof typeof SkeletonSize dark?: boolean + glass?: boolean } \ No newline at end of file From 24514481ce6a347f334c47a2bb93c53ca3c04fb4 Mon Sep 17 00:00:00 2001 From: qianmoQ Date: Sun, 28 Dec 2025 20:07:46 +0800 Subject: [PATCH 02/10] =?UTF-8?q?feat(=E7=BB=84=E4=BB=B6):=20=E6=94=AF?= =?UTF-8?q?=E6=8C=81=20Global=20Footer=20=E6=B6=B2=E6=80=81=E7=8E=BB?= =?UTF-8?q?=E7=92=83=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/components/layout/global-footer.md | 111 ++++++++++++++++++ .../src/example/global-footer/glass.vue | 73 ++++++++++++ src/App.vue | 83 ++++++++----- src/ui/footer/ShadcnGlobalFooter.vue | 11 +- 4 files changed, 245 insertions(+), 33 deletions(-) create mode 100644 playground/src/example/global-footer/glass.vue diff --git a/docs/components/layout/global-footer.md b/docs/components/layout/global-footer.md index a47d852b..f41c00ea 100644 --- a/docs/components/layout/global-footer.md +++ b/docs/components/layout/global-footer.md @@ -58,6 +58,82 @@ const socials = [ ::: +## 液态玻璃效果 (glass) + +::: raw + + +
+
+ +
+
+
+ +::: + +::: details 查看代码 + +```vue + + + +``` + +::: + ## 全局页脚 (Global Footer) 属性 @@ -109,6 +187,39 @@ const socials = [ { icon: 'Github', href: 'https://github.com/devlive-community', label: 'GitHub' } ] +const glassLinks = [ + { + title: '产品', + links: [ + { label: '功能', href: '#', icon: 'lucide:sparkles' }, + { label: '定价', href: '#', icon: 'lucide:dollar-sign' }, + { label: '更新日志', href: '#', icon: 'lucide:history' } + ] + }, + { + title: '资源', + links: [ + { label: '文档', href: '#', icon: 'lucide:book-open' }, + { label: 'API', href: '#', icon: 'lucide:code' }, + { label: '博客', href: '#', icon: 'lucide:newspaper' } + ] + }, + { + title: '社区', + links: [ + { label: 'GitHub', href: 'https://github.com', icon: 'lucide:github', external: true }, + { label: 'Discord', href: '#', icon: 'lucide:message-circle' }, + { label: '论坛', href: '#', icon: 'lucide:users' } + ] + } +] + +const glassSocials = [ + { label: 'GitHub', href: 'https://github.com', icon: 'lucide:github' }, + { label: 'Twitter', href: 'https://twitter.com', icon: 'lucide:twitter' }, + { label: 'Discord', href: '#', icon: 'lucide:message-circle' } +] + import { useData } from 'vitepress' import { computed } from 'vue' diff --git a/playground/src/example/global-footer/glass.vue b/playground/src/example/global-footer/glass.vue new file mode 100644 index 00000000..4bb84d62 --- /dev/null +++ b/playground/src/example/global-footer/glass.vue @@ -0,0 +1,73 @@ + + + diff --git a/src/App.vue b/src/App.vue index 054987af..423b6231 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,35 +1,23 @@