valaxy-theme-yun 0.20.7 → 0.21.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/components/YunBackToTop.vue +1 -1
- package/components/YunBanner.vue +0 -1
- package/components/YunPrologue.vue +2 -9
- package/components/author/YunAuthorAvatar.vue +2 -1
- package/components/layout/YunLayoutRight.vue +1 -1
- package/components/layout/YunLayoutWrapper.vue +1 -1
- package/components/prologue/YunPrologueSquare.vue +9 -8
- package/components/site/YunSiteLinkItem.vue +2 -1
- package/components/site/YunSiteSubtitle.vue +1 -1
- package/components/site/YunSiteTitle.vue +5 -2
- package/components/theme/nimbo/YunNimboNavMenu.vue +25 -6
- package/layouts/home.vue +18 -0
- package/layouts/posts.vue +1 -1
- package/package.json +5 -5
- package/setup/main.ts +2 -0
- package/styles/css-vars.scss +6 -0
- package/styles/global.scss +13 -0
- package/styles/widgets/banner.scss +0 -4
@@ -50,7 +50,7 @@ const strokeOffset = computed(() => {
|
|
50
50
|
transition: all var(--va-transition-duration), opacity var(--va-transition-duration-fast) !important;
|
51
51
|
|
52
52
|
&.show {
|
53
|
-
transform: translateX(-
|
53
|
+
transform: translateX(-40px) rotate(360deg);
|
54
54
|
opacity: 1;
|
55
55
|
pointer-events: fill;
|
56
56
|
}
|
package/components/YunBanner.vue
CHANGED
@@ -1,14 +1,7 @@
|
|
1
1
|
<template>
|
2
2
|
<div class="grid-bg">
|
3
|
-
<YunAEFrame />
|
4
|
-
<YunAERect />
|
5
|
-
|
6
|
-
<div
|
7
|
-
flex="~ col"
|
8
|
-
class="justify-center items-center absolute bottom-$rect-margin left-0 right-0"
|
9
|
-
>
|
10
|
-
<PrologueSocialLinks />
|
11
|
-
</div>
|
3
|
+
<!-- <YunAEFrame /> -->
|
4
|
+
<!-- <YunAERect /> -->
|
12
5
|
</div>
|
13
6
|
</template>
|
14
7
|
|
@@ -6,8 +6,9 @@ const siteConfig = useSiteConfig()
|
|
6
6
|
|
7
7
|
<template>
|
8
8
|
<div class="relative yun-author-avatar">
|
9
|
+
<div class="absolute size-full avatar-bg bg-image-$yun-home-hero-image-background-image filter-blur-2xl op-30" />
|
9
10
|
<img
|
10
|
-
class="rounded-full size-full bg-white dark:bg-white/20 p-1 m-0"
|
11
|
+
class="rounded-full size-full bg-white dark:bg-white/20 p-1 m-0 absolute"
|
11
12
|
:src="siteConfig.author.avatar"
|
12
13
|
alt="avatar"
|
13
14
|
>
|
@@ -10,7 +10,7 @@ const yun = useYunAppStore()
|
|
10
10
|
<button
|
11
11
|
v-if="fm.aside !== false"
|
12
12
|
class="xl:hidden toc-btn shadow-md fixed yun-icon-btn z-350 bg-$va-c-bg-soft"
|
13
|
-
opacity="75" right="
|
13
|
+
opacity="75" right="4" bottom="19"
|
14
14
|
@click="yun.rightSidebar.toggle()"
|
15
15
|
>
|
16
16
|
<div i-ri-file-list-line />
|
@@ -10,7 +10,7 @@ const showContent = ref(false)
|
|
10
10
|
<template>
|
11
11
|
<div
|
12
12
|
flex="~ col"
|
13
|
-
class="yun-square-container items-center justify-center text-center
|
13
|
+
class="yun-square-container items-center justify-center text-center max-w-2xl"
|
14
14
|
>
|
15
15
|
<slot />
|
16
16
|
|
@@ -29,7 +29,7 @@ const showContent = ref(false)
|
|
29
29
|
>
|
30
30
|
<div
|
31
31
|
flex="~ col"
|
32
|
-
class="
|
32
|
+
class="yun-square square-rotate z-1 bg-white/80"
|
33
33
|
>
|
34
34
|
<LineBurstEffects
|
35
35
|
class="absolute top-0 left-0 right-0 bottom-0 size-full scale-200"
|
@@ -68,10 +68,11 @@ const showContent = ref(false)
|
|
68
68
|
<YunSiteDescription />
|
69
69
|
</div>
|
70
70
|
|
71
|
+
<YunSocialLinks />
|
72
|
+
|
71
73
|
<div
|
72
|
-
class="mt-4 flex-center w-
|
74
|
+
class="mt-4 flex-center w-72 md:w-150 m-auto gap-2"
|
73
75
|
flex="~ wrap"
|
74
|
-
p="x-$rect-margin"
|
75
76
|
>
|
76
77
|
<YunSiteLinkItem
|
77
78
|
:page="{
|
@@ -106,8 +107,8 @@ const showContent = ref(false)
|
|
106
107
|
|
107
108
|
&.enter-from {
|
108
109
|
border-radius: 0%;
|
109
|
-
width: var(--total-char-height);
|
110
|
-
height: var(--total-char-height);
|
110
|
+
// width: var(--total-char-height);
|
111
|
+
// height: var(--total-char-height);
|
111
112
|
transform: rotate(135deg) translateY(0%);
|
112
113
|
box-shadow: none;
|
113
114
|
}
|
@@ -120,7 +121,7 @@ const showContent = ref(false)
|
|
120
121
|
position: relative;
|
121
122
|
|
122
123
|
&.show {
|
123
|
-
transform: translateY(-50%);
|
124
|
+
// transform: translateY(-50%);
|
124
125
|
}
|
125
126
|
}
|
126
127
|
|
@@ -132,7 +133,7 @@ const showContent = ref(false)
|
|
132
133
|
|
133
134
|
&.show {
|
134
135
|
opacity: 1;
|
135
|
-
transform: translateY(calc(50% + var(--avatar-size) / 2));
|
136
|
+
// transform: translateY(calc(50% + var(--avatar-size) / 2));
|
136
137
|
}
|
137
138
|
}
|
138
139
|
}
|
@@ -11,7 +11,8 @@ const yunApp = useYunAppStore()
|
|
11
11
|
|
12
12
|
<template>
|
13
13
|
<AppLink
|
14
|
-
class="link-item inline-flex-center gap-2 transition rounded text-
|
14
|
+
class="link-item inline-flex-center gap-2 transition rounded-lg text-xl p-2 md:(text-lg p-2) lg:(text-xl p-3) text-$va-c-text"
|
15
|
+
bg="white/5 dark:black/5"
|
15
16
|
inline-flex
|
16
17
|
:to="page.url" :title="page.name"
|
17
18
|
:style="`color:${page.color}`"
|
@@ -1,19 +1,22 @@
|
|
1
1
|
<script setup lang="ts">
|
2
2
|
import { useSiteConfig } from 'valaxy'
|
3
|
+
import { ref } from 'vue'
|
3
4
|
import { useRouter } from 'vue-router'
|
4
5
|
|
5
6
|
const router = useRouter()
|
6
7
|
const siteConfig = useSiteConfig()
|
8
|
+
|
9
|
+
const classes = ref('site-name clip text-lg leading-loose bg-gradient-to-r gradient-text from-#1e3c72 to-dark dark:(from-#66a6ff to-blue-500)')
|
7
10
|
</script>
|
8
11
|
|
9
12
|
<template>
|
10
13
|
<RouterLink
|
11
14
|
v-if="router.hasRoute('/about/site')" to="/about/site"
|
12
|
-
class="
|
15
|
+
:class="classes"
|
13
16
|
>
|
14
17
|
{{ siteConfig.title }}
|
15
18
|
</RouterLink>
|
16
|
-
<span v-else class="
|
19
|
+
<span v-else :class="classes">{{ siteConfig.title }}</span>
|
17
20
|
</template>
|
18
21
|
|
19
22
|
<style lang="scss">
|
@@ -2,13 +2,13 @@
|
|
2
2
|
import { useAppStore, useSiteConfig } from 'valaxy'
|
3
3
|
import { onMounted, ref, watch } from 'vue'
|
4
4
|
import { useRoute } from 'vue-router'
|
5
|
+
import { useThemeConfig } from '../../../composables'
|
5
6
|
import { useYunAppStore } from '../../../stores'
|
6
|
-
// import { useThemeConfig } from '../composables'
|
7
7
|
|
8
8
|
// const app = useAppStore()
|
9
9
|
const yunApp = useYunAppStore()
|
10
10
|
const siteConfig = useSiteConfig()
|
11
|
-
|
11
|
+
const themeConfig = useThemeConfig()
|
12
12
|
|
13
13
|
const showMenu = ref(false)
|
14
14
|
const route = useRoute()
|
@@ -41,7 +41,6 @@ const app = useAppStore()
|
|
41
41
|
<div
|
42
42
|
v-if="showMenu"
|
43
43
|
class="yun-nav-menu z-$yun-z-nav-menu fixed bg-transparent"
|
44
|
-
border="~ solid $va-c-text"
|
45
44
|
:class="{
|
46
45
|
play: playAnimation,
|
47
46
|
}"
|
@@ -49,6 +48,7 @@ const app = useAppStore()
|
|
49
48
|
<!-- -->
|
50
49
|
<div class="inline-flex justify-start items-center flex-1">
|
51
50
|
<ValaxyHamburger
|
51
|
+
v-if="!yunApp.size.isMd"
|
52
52
|
:active="yunApp.fullscreenMenu.isOpen"
|
53
53
|
class="menu-btn sidebar-toggle leading-4 size-12"
|
54
54
|
inline-flex cursor="pointer"
|
@@ -57,6 +57,20 @@ const app = useAppStore()
|
|
57
57
|
@click="yunApp.fullscreenMenu.toggle()"
|
58
58
|
/>
|
59
59
|
<YunNavMenuItem icon="i-ri-home-4-line" to="/" />
|
60
|
+
<template v-if="yunApp.size.isMd">
|
61
|
+
<YunNavMenuItem
|
62
|
+
icon="i-ri-article-line" to="/posts/"
|
63
|
+
title="博客文章"
|
64
|
+
/>
|
65
|
+
|
66
|
+
<YunNavMenuItem
|
67
|
+
v-for="item, i in themeConfig.pages"
|
68
|
+
:key="i"
|
69
|
+
:icon="item.icon"
|
70
|
+
:to="item.url"
|
71
|
+
:title="item.name"
|
72
|
+
/>
|
73
|
+
</template>
|
60
74
|
</div>
|
61
75
|
|
62
76
|
<div class="flex flex-1 flex-center">
|
@@ -102,9 +116,14 @@ const app = useAppStore()
|
|
102
116
|
// animation-range: 0 calc(30vh), exit;
|
103
117
|
box-shadow: none;
|
104
118
|
display: flex;
|
105
|
-
top: var(--rect-margin);
|
106
|
-
left: var(--rect-margin);
|
107
|
-
right: var(--rect-margin);
|
119
|
+
// top: var(--rect-margin);
|
120
|
+
// left: var(--rect-margin);
|
121
|
+
// right: var(--rect-margin);
|
122
|
+
|
123
|
+
top: 0;
|
124
|
+
left: 0;
|
125
|
+
right: 0;
|
126
|
+
|
108
127
|
align-items: center;
|
109
128
|
justify-content: space-between;
|
110
129
|
height: 50px;
|
package/layouts/home.vue
CHANGED
@@ -26,6 +26,24 @@ const showNotice = computed(() => {
|
|
26
26
|
>
|
27
27
|
<template v-if="!isPage">
|
28
28
|
<YunBanner />
|
29
|
+
<Transition
|
30
|
+
enter-from-class="scale-60"
|
31
|
+
enter-to-class="scale-100"
|
32
|
+
enter-active-class="transition-300 transition-cubic-bezier-ease-in-out delay-1000"
|
33
|
+
appear
|
34
|
+
>
|
35
|
+
<div class="absolute top-0 left-5 right-5 bottom-0 flex-center">
|
36
|
+
<Transition
|
37
|
+
enter-from-class="op-0"
|
38
|
+
enter-to-class="op-100"
|
39
|
+
enter-active-class="transition-800 delay-1000"
|
40
|
+
appear
|
41
|
+
>
|
42
|
+
<YunPrologueSquare class="z-1" />
|
43
|
+
</Transition>
|
44
|
+
</div>
|
45
|
+
</Transition>
|
46
|
+
|
29
47
|
<YunSay v-if="themeConfig.say.enable" w="full" />
|
30
48
|
<YunPrologue v-if="yun.isNimbo" class="absolute left-0 top-0 right-0 bottom-0" />
|
31
49
|
</template>
|
package/layouts/posts.vue
CHANGED
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "valaxy-theme-yun",
|
3
3
|
"type": "module",
|
4
|
-
"version": "0.
|
4
|
+
"version": "0.21.0",
|
5
5
|
"author": {
|
6
6
|
"email": "me@yunyoujun.cn",
|
7
7
|
"name": "YunYouJun",
|
@@ -24,16 +24,16 @@
|
|
24
24
|
"@ctrl/tinycolor": "^4.1.0",
|
25
25
|
"@explosions/fireworks": "^0.1.0",
|
26
26
|
"@iconify-json/ant-design": "^1.2.3",
|
27
|
-
"@iconify-json/simple-icons": "^1.2.
|
27
|
+
"@iconify-json/simple-icons": "^1.2.15",
|
28
28
|
"@vueuse/motion": "^2.2.6",
|
29
29
|
"animejs": "^3.2.2",
|
30
30
|
"gsap": "^3.12.5",
|
31
|
-
"primevue": "^4.2.
|
31
|
+
"primevue": "^4.2.5"
|
32
32
|
},
|
33
33
|
"devDependencies": {
|
34
34
|
"@types/animejs": "^3.1.12",
|
35
|
-
"valaxy": "0.
|
36
|
-
"valaxy
|
35
|
+
"valaxy-addon-waline": "0.2.0",
|
36
|
+
"valaxy": "0.21.0"
|
37
37
|
},
|
38
38
|
"scripts": {
|
39
39
|
"release": "bumpp && pnpm publish"
|
package/setup/main.ts
CHANGED
@@ -6,6 +6,8 @@ import { defineAppSetup } from 'valaxy'
|
|
6
6
|
import { useYunAppStore } from '../stores'
|
7
7
|
|
8
8
|
import primeStyles from '../styles/primevue'
|
9
|
+
|
10
|
+
import 'valaxy/client/styles/common/index.scss'
|
9
11
|
import '../styles/global.scss'
|
10
12
|
import '../styles/primevue/tooltip.scss'
|
11
13
|
|
package/styles/css-vars.scss
CHANGED
@@ -5,6 +5,10 @@
|
|
5
5
|
:root {
|
6
6
|
// yun
|
7
7
|
--yun-margin-top: 68px;
|
8
|
+
|
9
|
+
--yun-home-hero-image-filter: blur(48px);
|
10
|
+
--yun-home-hero-name-background: -webkit-linear-gradient(120deg, var(--va-c-text) 30%, black);
|
11
|
+
--yun-home-hero-image-background-image: linear-gradient(-45deg, #bd34fe 50%, #47caff 50%);
|
8
12
|
}
|
9
13
|
|
10
14
|
:root {
|
@@ -26,6 +30,8 @@ html.dark {
|
|
26
30
|
// gradient
|
27
31
|
--va-c-bg: #1a1a1d;
|
28
32
|
--va-c-bg-soft: #121215;
|
33
|
+
|
34
|
+
--yun-home-hero-name-background: -webkit-linear-gradient(120deg, var(--va-c-primary) 30%, #41d1ff);
|
29
35
|
}
|
30
36
|
|
31
37
|
// animation
|
package/styles/global.scss
CHANGED
@@ -6,3 +6,16 @@
|
|
6
6
|
html {
|
7
7
|
transition: background-color 0.6s;
|
8
8
|
}
|
9
|
+
|
10
|
+
.clip {
|
11
|
+
background: var(--yun-home-hero-name-background);
|
12
|
+
-webkit-background-clip: text;
|
13
|
+
background-clip: text;
|
14
|
+
-webkit-text-fill-color: var(--yun-home-hero-name-color, transparent);
|
15
|
+
}
|
16
|
+
|
17
|
+
.gradient-text {
|
18
|
+
background-clip: text;
|
19
|
+
-webkit-background-clip: text;
|
20
|
+
-webkit-text-fill-color: transparent;
|
21
|
+
}
|