diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 9a3d92245b18..cfc0d3eda7fa 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 a59b99bec9ee..c751135765ea 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 db9362ac0265..c5e52aadd3e1 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 000000000000..e02291956372 --- /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 000000000000..266ae3da7483 --- /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 000000000000..88e5b5cf42c3 --- /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 3b270430c6df..0a3160941cc0 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 c61b1721fd27..1166d2ac96ca 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 {