From 3861a1d328608bc20342b8c66ea0e57b79308b13 Mon Sep 17 00:00:00 2001 From: tomiaa <1178852449@qq.com> Date: Thu, 12 Oct 2023 11:03:20 +0800 Subject: [PATCH] feat(client): Add folding function to the navigation bar --- .../theme-default/components/VPMenu.vue | 2 +- .../theme-default/components/VPMenuGroup.vue | 83 +++++++++++++++++-- types/default-theme.d.ts | 1 + 3 files changed, 80 insertions(+), 6 deletions(-) diff --git a/src/client/theme-default/components/VPMenu.vue b/src/client/theme-default/components/VPMenu.vue index ebe66623..6094f92d 100644 --- a/src/client/theme-default/components/VPMenu.vue +++ b/src/client/theme-default/components/VPMenu.vue @@ -12,7 +12,7 @@ defineProps<{
diff --git a/src/client/theme-default/components/VPMenuGroup.vue b/src/client/theme-default/components/VPMenuGroup.vue index abba60c7..58867d1a 100644 --- a/src/client/theme-default/components/VPMenuGroup.vue +++ b/src/client/theme-default/components/VPMenuGroup.vue @@ -1,19 +1,65 @@ @@ -36,6 +82,11 @@ defineProps<{ } .title { + position: relative; + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; padding: 0 12px; line-height: 32px; font-size: 14px; @@ -44,4 +95,26 @@ defineProps<{ white-space: nowrap; transition: color 0.25s; } + +.VPMenuGroup.collapsible .title{ + font-weight: 700; + color: var(--vp-c-text-1); + cursor: pointer; +} + +.VPMenuGroup.collapsed .VPMenuItems { + display: none; +} + +.VPMenuGroup.collapsed .caret-icon { + transform: rotate(0); +} + +.caret-icon { + width: 18px; + height: 18px; + fill: currentColor; + transform: rotate(90deg); + transition: transform 0.25s; +} diff --git a/types/default-theme.d.ts b/types/default-theme.d.ts index 94dfb95c..16ab7d26 100644 --- a/types/default-theme.d.ts +++ b/types/default-theme.d.ts @@ -167,6 +167,7 @@ export namespace DefaultTheme { export interface NavItemChildren { text?: string + collapsed?: boolean items: NavItemWithLink[] }