@voidzero-dev/vitepress-theme 3.2.1 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/package.json +1 -1
  2. package/src/assets/oxc/footer-background.jpg +0 -0
  3. package/src/assets/oxc/oxc-feature-background.jpg +0 -0
  4. package/src/assets/oxc/oxc-formatter-terminal.png +0 -0
  5. package/src/assets/rolldown/footer-background.jpg +0 -0
  6. package/src/assets/rolldown/hero-background.jpg +0 -0
  7. package/src/assets/rolldown/rolldown-esbuild-parity.png +0 -0
  8. package/src/assets/rolldown/rolldown-rollup-background.jpg +0 -0
  9. package/src/assets/vite/footer-background.jpg +0 -0
  10. package/src/assets/vite/vite-featurepanel-1-background.jpg +0 -0
  11. package/src/assets/vite/vite-featurepanel-4-background.jpg +0 -0
  12. package/src/assets/vite/vite-frameworks-mobile.png +0 -0
  13. package/src/assets/vite/vite-frameworks.png +0 -0
  14. package/src/assets/vite/vite-ssr-support.png +0 -0
  15. package/src/assets/vitest/footer-background.jpg +0 -0
  16. package/src/assets/vitest/hero-background.jpg +0 -0
  17. package/src/assets/vitest/hero-terminal.png +0 -0
  18. package/src/assets/vitest/vitest-jest-compatible.png +0 -0
  19. package/src/assets/vitest/vitest-watcher-background.jpg +0 -0
  20. package/src/components/vitepress-default/Layout.vue +93 -45
  21. package/src/components/vitepress-default/VPMenuLink.vue +16 -0
  22. package/src/components/vitepress-default/VPNavBarMenuLink.vue +19 -7
  23. package/src/styles/base.css +9 -0
  24. package/src/assets/vitest/hero-terminal.svg +0 -44
  25. package/src/assets/voidzero/animations/1280_x_552_homepage.riv +0 -0
  26. package/src/assets/voidzero/animations/343_x_148_homepage_mobile.riv +0 -0
  27. package/src/assets/voidzero/animations/480_x_480_build_tool_for_web.riv +0 -0
  28. package/src/assets/voidzero/animations/480_x_480_fastest_javascript_bundler.riv +0 -0
  29. package/src/assets/voidzero/animations/480_x_480_language_toolchain.riv +0 -0
  30. package/src/assets/voidzero/animations/480_x_480_next_generation_runner.riv +0 -0
  31. package/src/assets/voidzero/animations/about-mobile.riv +0 -0
  32. package/src/assets/voidzero/animations/about.riv +0 -0
  33. package/src/assets/voidzero/backgrounds/casestudies.jpg +0 -0
  34. package/src/assets/voidzero/backgrounds/oxc.jpg +0 -0
  35. package/src/assets/voidzero/backgrounds/rolldown.jpg +0 -0
  36. package/src/assets/voidzero/backgrounds/vite.jpg +0 -0
  37. package/src/assets/voidzero/backgrounds/vitest.jpg +0 -0
  38. package/src/assets/voidzero/career-illustration.jpg +0 -0
  39. package/src/assets/voidzero/footer-logo.svg +0 -5
  40. package/src/assets/voidzero/footer.jpg +0 -0
  41. package/src/assets/voidzero/investors/accel.svg +0 -9
  42. package/src/assets/voidzero/investors/amplify.svg +0 -3
  43. package/src/assets/voidzero/investors/peakxv.png +0 -0
  44. package/src/assets/voidzero/investors/resend.svg +0 -3
  45. package/src/assets/voidzero/investors/sentry.svg +0 -10
  46. package/src/assets/voidzero/investors/sunflower.png +0 -0
  47. package/src/assets/voidzero/logo-light.svg +0 -3
  48. package/src/assets/voidzero/logo.svg +0 -3
  49. package/src/assets/voidzero/signature.svg +0 -11
  50. package/src/assets/voidzero/terminals/rolldown.svg +0 -7
  51. package/src/assets/voidzero/terminals/vite.svg +0 -9
  52. package/src/assets/voidzero/terminals/vitest.svg +0 -49
  53. package/src/assets/voidzero/vite-plus-chip.png +0 -0
  54. package/src/components/oxc/FeatureFormatter.vue +0 -30
  55. package/src/components/oxc/FeatureLinter.vue +0 -31
  56. package/src/components/oxc/FeatureMinifier.vue +0 -26
  57. package/src/components/oxc/FeatureParser.vue +0 -57
  58. package/src/components/oxc/FeatureResolver.vue +0 -29
  59. package/src/components/oxc/FeatureToolbar.vue +0 -195
  60. package/src/components/oxc/FeatureTransformer.vue +0 -36
  61. package/src/components/oxc/Hero.vue +0 -37
  62. package/src/components/rolldown/FeatureGrid.vue +0 -94
  63. package/src/components/rolldown/Hero.vue +0 -57
  64. package/src/components/vite/Community.vue +0 -192
  65. package/src/components/vite/FeatureGrid1.vue +0 -66
  66. package/src/components/vite/FeatureGrid2.vue +0 -55
  67. package/src/components/vite/Frameworks.vue +0 -14
  68. package/src/components/vite/Hero.vue +0 -48
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voidzero-dev/vitepress-theme",
3
- "version": "3.2.1",
3
+ "version": "3.3.1",
4
4
  "description": "Shared VitePress theme for VoidZero projects",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
Binary file
@@ -29,58 +29,106 @@ provide(layoutInfoInjectionKey, { heroImageSlotExists })
29
29
  </script>
30
30
 
31
31
  <template>
32
- <div
33
- v-if="frontmatter.layout !== false"
34
- class="Layout"
35
- :class="frontmatter.pageClass"
36
- >
32
+ <div v-if="frontmatter.layout !== false" class="Layout" :class="frontmatter.pageClass">
37
33
  <TopBanner />
38
34
  <slot name="layout-top" />
39
35
  <VPSkipLink />
40
36
  <VPBackdrop class="backdrop" :show="isSidebarOpen" @click="closeSidebar" />
41
37
  <OSSHeader />
42
38
 
43
- <!-- Content wrapper with borders -->
44
- <div class="content-wrapper">
45
- <VPLocalNav :open="isSidebarOpen" @open-menu="openSidebar" />
46
-
47
- <VPSidebar :open="isSidebarOpen">
48
- <template #sidebar-nav-before><slot name="sidebar-nav-before" /></template>
49
- <template #sidebar-nav-after><slot name="sidebar-nav-after" /></template>
50
- </VPSidebar>
51
-
52
- <VPContent>
53
- <template #page-top><slot name="page-top" /></template>
54
- <template #page-bottom><slot name="page-bottom" /></template>
55
-
56
- <template #not-found><slot name="not-found" /></template>
57
- <template #home-hero-before><slot name="home-hero-before" /></template>
58
- <template #home-hero-info-before><slot name="home-hero-info-before" /></template>
59
- <template #home-hero-info><slot name="home-hero-info" /></template>
60
- <template #home-hero-info-after><slot name="home-hero-info-after" /></template>
61
- <template #home-hero-actions-after><slot name="home-hero-actions-after" /></template>
62
- <template #home-hero-image><slot name="home-hero-image" /></template>
63
- <template #home-hero-after><slot name="home-hero-after" /></template>
64
- <template #home-features-before><slot name="home-features-before" /></template>
65
- <template #home-features-after><slot name="home-features-after" /></template>
66
-
67
- <template #doc-footer-before><slot name="doc-footer-before" /></template>
68
- <template #doc-before><slot name="doc-before" /></template>
69
- <template #doc-after><slot name="doc-after" /></template>
70
- <template #doc-top><slot name="doc-top" /></template>
71
- <template #doc-bottom><slot name="doc-bottom" /></template>
72
-
73
- <template #aside-top><slot name="aside-top" /></template>
74
- <template #aside-bottom><slot name="aside-bottom" /></template>
75
- <template #aside-outline-before><slot name="aside-outline-before" /></template>
76
- <template #aside-outline-after><slot name="aside-outline-after" /></template>
77
- <template #aside-ads-before><slot name="aside-ads-before" /></template>
78
- <template #aside-ads-after><slot name="aside-ads-after" /></template>
79
- </VPContent>
39
+ <div class="flex flex-col min-h-screen">
40
+ <!-- Content wrapper with borders -->
41
+ <div class="content-wrapper flex-1">
42
+ <VPLocalNav :open="isSidebarOpen" @open-menu="openSidebar" />
43
+
44
+ <VPSidebar :open="isSidebarOpen">
45
+ <template #sidebar-nav-before>
46
+ <slot name="sidebar-nav-before" />
47
+ </template>
48
+ <template #sidebar-nav-after>
49
+ <slot name="sidebar-nav-after" />
50
+ </template>
51
+ </VPSidebar>
52
+
53
+ <VPContent>
54
+ <template #page-top>
55
+ <slot name="page-top" />
56
+ </template>
57
+ <template #page-bottom>
58
+ <slot name="page-bottom" />
59
+ </template>
60
+
61
+ <template #not-found>
62
+ <slot name="not-found" />
63
+ </template>
64
+ <template #home-hero-before>
65
+ <slot name="home-hero-before" />
66
+ </template>
67
+ <template #home-hero-info-before>
68
+ <slot name="home-hero-info-before" />
69
+ </template>
70
+ <template #home-hero-info>
71
+ <slot name="home-hero-info" />
72
+ </template>
73
+ <template #home-hero-info-after>
74
+ <slot name="home-hero-info-after" />
75
+ </template>
76
+ <template #home-hero-actions-after>
77
+ <slot name="home-hero-actions-after" />
78
+ </template>
79
+ <template #home-hero-image>
80
+ <slot name="home-hero-image" />
81
+ </template>
82
+ <template #home-hero-after>
83
+ <slot name="home-hero-after" />
84
+ </template>
85
+ <template #home-features-before>
86
+ <slot name="home-features-before" />
87
+ </template>
88
+ <template #home-features-after>
89
+ <slot name="home-features-after" />
90
+ </template>
91
+
92
+ <template #doc-footer-before>
93
+ <slot name="doc-footer-before" />
94
+ </template>
95
+ <template #doc-before>
96
+ <slot name="doc-before" />
97
+ </template>
98
+ <template #doc-after>
99
+ <slot name="doc-after" />
100
+ </template>
101
+ <template #doc-top>
102
+ <slot name="doc-top" />
103
+ </template>
104
+ <template #doc-bottom>
105
+ <slot name="doc-bottom" />
106
+ </template>
107
+
108
+ <template #aside-top>
109
+ <slot name="aside-top" />
110
+ </template>
111
+ <template #aside-bottom>
112
+ <slot name="aside-bottom" />
113
+ </template>
114
+ <template #aside-outline-before>
115
+ <slot name="aside-outline-before" />
116
+ </template>
117
+ <template #aside-outline-after>
118
+ <slot name="aside-outline-after" />
119
+ </template>
120
+ <template #aside-ads-before>
121
+ <slot name="aside-ads-before" />
122
+ </template>
123
+ <template #aside-ads-after>
124
+ <slot name="aside-ads-after" />
125
+ </template>
126
+ </VPContent>
127
+ </div>
128
+
129
+ <VPFooter />
130
+ <slot name="layout-bottom" />
80
131
  </div>
81
-
82
- <VPFooter />
83
- <slot name="layout-bottom" />
84
132
  </div>
85
133
  <Content v-else />
86
134
  </template>
@@ -25,6 +25,13 @@ defineOptions({ inheritAttrs: false })
25
25
  <VPLink
26
26
  v-bind="$attrs"
27
27
  class="flex items-center justify-between rounded-md px-3 py-2 text-sm font-heading text-primary dark:text-white text-left whitespace-nowrap hover:opacity-70 transition-opacity"
28
+ :class="{
29
+ active: isActive(
30
+ page.relativePath,
31
+ item.activeMatch || href,
32
+ !!item.activeMatch
33
+ )
34
+ }"
28
35
  :href
29
36
  :target="item.target"
30
37
  :rel="item.rel"
@@ -42,4 +49,13 @@ defineOptions({ inheritAttrs: false })
42
49
  border-top: 1px solid var(--vp-c-divider);
43
50
  padding: 12px 12px 0;
44
51
  }
52
+
53
+ .link:hover {
54
+ color: var(--vp-c-brand-1);
55
+ background-color: var(--vp-c-default-soft);
56
+ }
57
+
58
+ .link.active {
59
+ color: var(--vp-c-brand-1);
60
+ }
45
61
  </style>
@@ -20,13 +20,25 @@ const href = computed(() =>
20
20
 
21
21
  <template>
22
22
  <VPLink
23
- class="flex items-center px-3 py-2 text-base font-heading text-primary dark:text-white hover:opacity-70 transition-opacity whitespace-nowrap overflow-hidden text-ellipsis"
24
- :href
25
- :target="item.target"
26
- :rel="item.rel"
27
- :no-icon="item.noIcon"
28
- tabindex="0"
29
- >
23
+ class="flex items-center px-3 py-2 text-base font-heading text-primary
24
+ dark:text-white hover:opacity-85 transition-opacity whitespace-nowrap overflow-hidden text-ellipsis"
25
+ :class="{
26
+ active: isActive(
27
+ page.relativePath,
28
+ item.activeMatch || href,
29
+ !!item.activeMatch
30
+ )
31
+ }" :href :target="item.target" :rel="item.rel" :no-icon="item.noIcon" tabindex="0">
30
32
  <span v-html="item.text"></span>
31
33
  </VPLink>
32
34
  </template>
35
+
36
+ <style scoped>
37
+ .link.active {
38
+ color: var(--vp-c-brand-1);
39
+ }
40
+
41
+ .link:hover {
42
+ color: var(--vp-c-brand-1);
43
+ }
44
+ </style>
@@ -55,6 +55,7 @@ body {
55
55
  image-rendering: high-quality;
56
56
  -webkit-font-smoothing: antialiased;
57
57
  -moz-osx-font-smoothing: grayscale;
58
+ background-color: var(--vp-c-bg);
58
59
  }
59
60
 
60
61
  /* Default light mode for marketing */
@@ -82,6 +83,14 @@ html.dark:not([data-theme]) .docs-layout {
82
83
  color: var(--vp-c-text-1);
83
84
  }
84
85
 
86
+ html.dark [img-light] {
87
+ display: none;
88
+ }
89
+
90
+ html:not(.dark) [img-dark] {
91
+ display: none;
92
+ }
93
+
85
94
  /* Explicit dark sections in marketing (via data-theme="dark") */
86
95
  [data-theme="dark"] {
87
96
  background-color: var(--color-primary);