@voidzero-dev/vitepress-theme 4.2.1 → 4.4.0
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.
- package/config.js +0 -1
- package/package.json +1 -1
- package/src/assets/vite/animations/563_x_420_rich_features.riv +0 -0
- package/src/assets/viteplus/footer-background.jpg +0 -0
- package/src/assets/viteplus/primary-button-background.jpg +0 -0
- package/src/components/oss/CTAShaderBackground.vue +1 -1
- package/src/components/oss/Header.vue +9 -17
- package/src/components/shared/RiveAnimation.vue +3 -0
- package/src/components/vitepress-default/VPLocalSearchBox.vue +1 -0
- package/src/env.d.ts +1 -1
- package/src/styles/marketing.css +4 -0
- package/src/styles/tokens.css +1 -1
- package/src/styles/vitepress-default/components/vp-doc.css +11 -0
- package/src/styles/vitepress-default/vars.css +1 -1
- package/src/types/theme-config.ts +1 -1
- package/src/viteplus.ts +22 -0
package/config.js
CHANGED
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -14,6 +14,8 @@ import VPNavBarTranslations from '@vp-default/VPNavBarTranslations.vue'
|
|
|
14
14
|
import VPNavBarSocialLinks from '@vp-default/VPNavBarSocialLinks.vue'
|
|
15
15
|
import VPNavBarExtra from '@vp-default/VPNavBarExtra.vue'
|
|
16
16
|
import VPSwitchAppearance from '@vp-default/VPSwitchAppearance.vue'
|
|
17
|
+
import VPSocialLinks from '@vp-default/VPSocialLinks.vue'
|
|
18
|
+
|
|
17
19
|
import { useLangs } from '@vp-composables/langs'
|
|
18
20
|
|
|
19
21
|
const { theme, frontmatter, isDark } = useData()
|
|
@@ -195,8 +197,8 @@ onUnmounted(() => {
|
|
|
195
197
|
<header
|
|
196
198
|
class="wrapper px-6 py-5 flex items-center justify-between relative bg-white dark:bg-primary border-b border-stroke dark:border-nickel">
|
|
197
199
|
<!-- Left side: Logo + Nav -->
|
|
198
|
-
<div class="flex
|
|
199
|
-
<a href="/" class="
|
|
200
|
+
<div class="flex gap-10 self-stretch">
|
|
201
|
+
<a href="/" class="flex items-center -mx-2 px-2">
|
|
200
202
|
<slot name="nav-bar-title-before" />
|
|
201
203
|
<img class="h-4 block dark:hidden" :src="logoDark" :alt="logoAlt" />
|
|
202
204
|
<img class="h-4 hidden dark:block" :src="logoLight" :alt="logoAlt" />
|
|
@@ -407,21 +409,11 @@ onUnmounted(() => {
|
|
|
407
409
|
|
|
408
410
|
<!-- Social Icons -->
|
|
409
411
|
<div class="flex items-center justify-center gap-4 pt-4">
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
<a href="https://bsky.app/profile/voidzero.dev" target="_blank" rel="noopener noreferrer"
|
|
416
|
-
class="hover:opacity-70 transition-opacity" @click="closeMobileMenu">
|
|
417
|
-
<img src="@assets/social/bluesky.svg" alt="Bluesky" class="size-6 block dark:hidden">
|
|
418
|
-
<img src="@assets/social/bluesky-light.svg" alt="Bluesky" class="size-6 hidden dark:block">
|
|
419
|
-
</a>
|
|
420
|
-
<a href="https://x.com/voidzerodev" target="_blank" rel="noopener noreferrer"
|
|
421
|
-
class="hover:opacity-70 transition-opacity" @click="closeMobileMenu">
|
|
422
|
-
<img src="@assets/social/twitter.svg" alt="X" class="size-6 block dark:hidden">
|
|
423
|
-
<img src="@assets/social/twitter-light.svg" alt="X" class="size-6 hidden dark:block">
|
|
424
|
-
</a>
|
|
412
|
+
<VPSocialLinks
|
|
413
|
+
@click="closeMobileMenu"
|
|
414
|
+
v-if="theme.socialLinks"
|
|
415
|
+
:links="theme.socialLinks"
|
|
416
|
+
/>
|
|
425
417
|
</div>
|
|
426
418
|
</div>
|
|
427
419
|
</div>
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import * as rive from "@rive-app/canvas-lite"
|
|
3
|
+
import riveWasm from "@rive-app/canvas-lite/rive.wasm?url"
|
|
3
4
|
import { ref, onMounted, onUnmounted, computed } from "vue"
|
|
4
5
|
|
|
6
|
+
rive.RuntimeLoader.setWasmUrl(riveWasm)
|
|
7
|
+
|
|
5
8
|
interface Props {
|
|
6
9
|
desktopSrc: string
|
|
7
10
|
mobileSrc?: string
|
package/src/env.d.ts
CHANGED
package/src/styles/marketing.css
CHANGED
|
@@ -175,6 +175,10 @@
|
|
|
175
175
|
background-image: url('../assets/oxc/primary-button-background.jpg');
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
+
:root[data-variant="viteplus"] .button--primary::before {
|
|
179
|
+
background-image: url('../assets/viteplus/primary-button-background.jpg');
|
|
180
|
+
}
|
|
181
|
+
|
|
178
182
|
@keyframes move-background {
|
|
179
183
|
0%, 100% {
|
|
180
184
|
background-position: 40% 40%;
|
package/src/styles/tokens.css
CHANGED
|
@@ -235,11 +235,21 @@
|
|
|
235
235
|
background-color: transparent;
|
|
236
236
|
}
|
|
237
237
|
|
|
238
|
+
.vp-doc .custom-block .vp-code-group,
|
|
239
|
+
.vp-doc .custom-block [class*='vp-code-block'] {
|
|
240
|
+
margin-top: 8px;
|
|
241
|
+
}
|
|
242
|
+
|
|
238
243
|
.vp-doc .custom-block .vp-code-group .tabs {
|
|
239
244
|
margin: 0;
|
|
240
245
|
border-radius: 8px 8px 0 0;
|
|
241
246
|
}
|
|
242
247
|
|
|
248
|
+
.vp-doc .custom-block .vp-code-group div[class*='language-'],
|
|
249
|
+
.vp-doc .custom-block [class*='vp-code-block'] div[class*='language-'] {
|
|
250
|
+
margin-top: 0 !important;
|
|
251
|
+
}
|
|
252
|
+
|
|
243
253
|
/**
|
|
244
254
|
* Code
|
|
245
255
|
* -------------------------------------------------------------------------- */
|
|
@@ -288,6 +298,7 @@
|
|
|
288
298
|
.vp-doc div[class*='language-'],
|
|
289
299
|
.vp-block {
|
|
290
300
|
margin: 16px -24px;
|
|
301
|
+
border-radius: 0;
|
|
291
302
|
}
|
|
292
303
|
|
|
293
304
|
.vp-doc li div[class*='language-'] {
|
|
@@ -73,7 +73,7 @@ export interface BannerConfig {
|
|
|
73
73
|
/** Optional: Link target (defaults to '_blank' for external URLs) */
|
|
74
74
|
target?: '_self' | '_blank'
|
|
75
75
|
/** Optional: Override the variant styling (defaults to theme variant) */
|
|
76
|
-
variant?: 'vite' | 'vitest' | 'rolldown' | 'oxc'
|
|
76
|
+
variant?: 'vite' | 'vitest' | 'rolldown' | 'oxc' | 'viteplus'
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
/**
|
package/src/viteplus.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { VoidZeroTheme, themeContextKey } from "./";
|
|
2
|
+
import type { Theme } from "vitepress";
|
|
3
|
+
|
|
4
|
+
// inject project variant assets
|
|
5
|
+
import logoDark from "@assets/logos/viteplus-dark.svg";
|
|
6
|
+
import logoLight from "@assets/logos/viteplus-light.svg";
|
|
7
|
+
import footerBg from "@assets/viteplus/footer-background.jpg";
|
|
8
|
+
import monoIcon from "@assets/icons/viteplus-mono.svg";
|
|
9
|
+
|
|
10
|
+
export default {
|
|
11
|
+
...VoidZeroTheme,
|
|
12
|
+
enhanceApp(ctx) {
|
|
13
|
+
ctx.app.provide(themeContextKey, {
|
|
14
|
+
logoDark,
|
|
15
|
+
logoLight,
|
|
16
|
+
logoAlt: "Vite+",
|
|
17
|
+
footerBg,
|
|
18
|
+
monoIcon,
|
|
19
|
+
});
|
|
20
|
+
VoidZeroTheme.enhanceApp(ctx);
|
|
21
|
+
},
|
|
22
|
+
} satisfies Theme;
|