diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 9a3d9224..cfc0d3ed 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -57,6 +57,7 @@ function sidebarGuide() { return [ { text: 'Introduction', + collapsible: true, items: [ { text: 'What is VitePress?', link: '/guide/what-is-vitepress' }, { text: 'Getting Started', link: '/guide/getting-started' }, @@ -71,6 +72,7 @@ function sidebarGuide() { }, { text: 'Theme', + collapsible: true, items: [ { text: 'Introduction', link: '/guide/theme-introduction' }, { text: 'Layout', link: '/guide/theme-layout' }, @@ -81,6 +83,7 @@ function sidebarGuide() { }, { text: 'Migrations', + collapsible: true, items: [ { text: 'Migration from VuePress', diff --git a/src/client/theme-default/components/VPSidebar.vue b/src/client/theme-default/components/VPSidebar.vue index a59b99be..c7511357 100644 --- a/src/client/theme-default/components/VPSidebar.vue +++ b/src/client/theme-default/components/VPSidebar.vue @@ -34,7 +34,12 @@ watchPostEffect(async () => {
- +
diff --git a/src/client/theme-default/components/VPSidebarGroup.vue b/src/client/theme-default/components/VPSidebarGroup.vue index db9362ac..c5e52aad 100644 --- a/src/client/theme-default/components/VPSidebarGroup.vue +++ b/src/client/theme-default/components/VPSidebarGroup.vue @@ -1,38 +1,109 @@ diff --git a/src/client/theme-default/components/icons/VPIconMinus.vue b/src/client/theme-default/components/icons/VPIconMinus.vue new file mode 100644 index 00000000..e0229195 --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconMinus.vue @@ -0,0 +1,5 @@ + diff --git a/src/client/theme-default/components/icons/VPIconMinusSquare.vue b/src/client/theme-default/components/icons/VPIconMinusSquare.vue new file mode 100644 index 00000000..266ae3da --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconMinusSquare.vue @@ -0,0 +1,6 @@ + diff --git a/src/client/theme-default/components/icons/VPIconPlusSquare.vue b/src/client/theme-default/components/icons/VPIconPlusSquare.vue new file mode 100644 index 00000000..88e5b5cf --- /dev/null +++ b/src/client/theme-default/components/icons/VPIconPlusSquare.vue @@ -0,0 +1,6 @@ + diff --git a/src/client/theme-default/styles/base.css b/src/client/theme-default/styles/base.css index 3b270430..0a316094 100644 --- a/src/client/theme-default/styles/base.css +++ b/src/client/theme-default/styles/base.css @@ -10,6 +10,10 @@ html { -webkit-text-size-adjust: 100%; } +html.dark { + color-scheme: dark; +} + body { margin: 0; width: 100%; diff --git a/types/default-theme.d.ts b/types/default-theme.d.ts index c61b1721..1166d2ac 100644 --- a/types/default-theme.d.ts +++ b/types/default-theme.d.ts @@ -82,6 +82,20 @@ export namespace DefaultTheme { export interface SidebarGroup { text: string items: SidebarItem[] + + /** + * If `true`, toggle button is shown. + * + * @default false + */ + collapsible?: boolean + + /** + * If `true`, collapsible group is collapsed by default. + * + * @default false + */ + collapsed?: boolean } export interface SidebarItem {