From e24e4f8ca00b677204c6141d4b17c3cf6456d7c1 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Wed, 20 May 2026 14:25:11 +0800 Subject: [PATCH 1/9] feat(design): unify nav, redesign homepage/pricing/skill pages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace VPNav with custom AppNav (sticky, unified across all pages) - Add AppFooter component - Fix nav width to match content (1240px via html:root specificity) - Remove extra VPContent padding-top from VitePress fixed-nav compensation - Add Features dropdown menu with left-aligned popup and correct positioning - Add active state highlighting for nav links with route-aware detection - Lock app-nav font-family to system font to prevent flicker on page transition - Redesign NewHomePage, Pricing, Skill pages with new layout components - Add useLbDarkSync composable for dark mode sync - Fix normalize-md plugin to handle layout: false correctly - Update homepage stat: 50K+ developers → 130+ API endpoints Co-Authored-By: Claude Sonnet 4.6 --- docs/.vitepress/md-plugins/normalize-md.ts | 3 +- .../.vitepress/theme/components/AppFooter.vue | 102 + docs/.vitepress/theme/components/AppNav.vue | 344 + .../theme/components/FeaturesMenu.vue | 10 +- .../theme/components/NewHomePage/index.vue | 739 +- docs/.vitepress/theme/components/Pricing.vue | 1199 +-- .../theme/components/QuotePermission.vue | 3 +- docs/.vitepress/theme/components/Skill.vue | 7223 ++++------------- docs/.vitepress/theme/components/index.ts | 2 + docs/.vitepress/theme/composables/index.ts | 1 + .../theme/composables/useLbDarkSync.ts | 9 + docs/.vitepress/theme/layouts/Content.vue | 4 - docs/.vitepress/theme/layouts/Layout.vue | 10 +- docs/.vitepress/theme/layouts/LayoutInner.vue | 17 +- docs/.vitepress/theme/style/app-styles.css | 2739 +++++++ docs/.vitepress/theme/style/index.css | 12 + docs/.vitepress/theme/style/lbus-tokens.css | 259 + docs/en/index.md | 3 +- docs/en/pricing/index.md | 2 +- docs/en/skill/index.md | 2 +- docs/zh-CN/index.md | 3 +- docs/zh-CN/pricing/index.md | 2 +- docs/zh-CN/skill/index.md | 2 +- docs/zh-HK/index.md | 3 +- docs/zh-HK/pricing/index.md | 2 +- docs/zh-HK/skill/index.md | 2 +- 26 files changed, 6487 insertions(+), 6210 deletions(-) create mode 100644 docs/.vitepress/theme/components/AppFooter.vue create mode 100644 docs/.vitepress/theme/components/AppNav.vue create mode 100644 docs/.vitepress/theme/composables/useLbDarkSync.ts create mode 100644 docs/.vitepress/theme/style/app-styles.css create mode 100644 docs/.vitepress/theme/style/lbus-tokens.css diff --git a/docs/.vitepress/md-plugins/normalize-md.ts b/docs/.vitepress/md-plugins/normalize-md.ts index 68a87f13..4024d6f4 100644 --- a/docs/.vitepress/md-plugins/normalize-md.ts +++ b/docs/.vitepress/md-plugins/normalize-md.ts @@ -111,7 +111,8 @@ export const NormalizeMdPlugin = (md: MarkdownIt) => { const layout = state.env.frontmatter?.layout // 只对 layout 没有定义,或者 layout 为 'doc' 的文档生效 - if (layout && layout !== 'doc') { + // 注意:layout: false 是 falsy,需要单独判断 + if (layout === false || (layout && layout !== 'doc')) { return } diff --git a/docs/.vitepress/theme/components/AppFooter.vue b/docs/.vitepress/theme/components/AppFooter.vue new file mode 100644 index 00000000..a34717e7 --- /dev/null +++ b/docs/.vitepress/theme/components/AppFooter.vue @@ -0,0 +1,102 @@ + + + diff --git a/docs/.vitepress/theme/components/AppNav.vue b/docs/.vitepress/theme/components/AppNav.vue new file mode 100644 index 00000000..15335860 --- /dev/null +++ b/docs/.vitepress/theme/components/AppNav.vue @@ -0,0 +1,344 @@ + + + + + diff --git a/docs/.vitepress/theme/components/FeaturesMenu.vue b/docs/.vitepress/theme/components/FeaturesMenu.vue index 5336cfeb..a37355f3 100644 --- a/docs/.vitepress/theme/components/FeaturesMenu.vue +++ b/docs/.vitepress/theme/components/FeaturesMenu.vue @@ -190,7 +190,7 @@ function close() { -
+