From ed3588f6589fbc8a0c2bfaa09c214865e6bc0bce Mon Sep 17 00:00:00 2001 From: Rizumu Ayaka Date: Fri, 22 Dec 2023 18:55:13 +0800 Subject: [PATCH] feat(next): soft appearance toggle animation (#238) --- docs/.vitepress/components.d.ts | 1 + .../theme/components/AppearanceToggle.vue | 82 +++++++++++++++++++ docs/.vitepress/theme/index.ts | 25 +++--- 3 files changed, 97 insertions(+), 11 deletions(-) create mode 100644 docs/.vitepress/theme/components/AppearanceToggle.vue diff --git a/docs/.vitepress/components.d.ts b/docs/.vitepress/components.d.ts index 2c13437..a5c695f 100644 --- a/docs/.vitepress/components.d.ts +++ b/docs/.vitepress/components.d.ts @@ -7,6 +7,7 @@ export {} declare module 'vue' { export interface GlobalComponents { + AppearanceToggle: typeof import('./theme/components/AppearanceToggle.vue')['default'] Changelog: typeof import('./theme/components/Changelog.vue')['default'] HomeContent: typeof import('./theme/components/HomeContent.vue')['default'] PageInfo: typeof import('./theme/components/PageInfo.vue')['default'] diff --git a/docs/.vitepress/theme/components/AppearanceToggle.vue b/docs/.vitepress/theme/components/AppearanceToggle.vue new file mode 100644 index 0000000..c0f0f2a --- /dev/null +++ b/docs/.vitepress/theme/components/AppearanceToggle.vue @@ -0,0 +1,82 @@ + + + + + + diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts index 3332f5b..3c6acb4 100644 --- a/docs/.vitepress/theme/index.ts +++ b/docs/.vitepress/theme/index.ts @@ -2,6 +2,7 @@ import { h } from 'vue' import type { Theme } from 'vitepress' import DefaultTheme from 'vitepress/theme' +import AppearanceToggle from './components/AppearanceToggle.vue' import { NolebaseEnhancedReadabilitiesPlugin, @@ -22,17 +23,19 @@ import 'uno.css' export default { extends: DefaultTheme, Layout: () => { - return h(DefaultTheme.Layout, null, { - // https://vitepress.dev/guide/extending-default-theme#layout-slots - 'doc-top': () => [ - h(NolebaseHighlightTargetedHeading), - ], - 'nav-bar-content-after': () => [ - h(NolebaseEnhancedReadabilitiesMenu), - ], - 'nav-screen-content-after': () => [ - h(NolebaseEnhancedReadabilitiesScreenMenu), - ], + return h(AppearanceToggle, null, { + 'default': () => h(DefaultTheme.Layout, null, { + // https://vitepress.dev/guide/extending-default-theme#layout-slots + 'doc-top': () => [ + h(NolebaseHighlightTargetedHeading), + ], + 'nav-bar-content-after': () => [ + h(NolebaseEnhancedReadabilitiesMenu), + ], + 'nav-screen-content-after': () => [ + h(NolebaseEnhancedReadabilitiesScreenMenu), + ], + }), }) }, enhanceApp({ app }) {