valaxy-theme-yun 0.20.6 → 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.
@@ -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(-32px) rotate(360deg);
53
+ transform: translateX(-40px) rotate(360deg);
54
54
  opacity: 1;
55
55
  pointer-events: fill;
56
56
  }
@@ -67,7 +67,6 @@ onMounted(async () => {
67
67
  :title="themeConfig.banner.title"
68
68
  :chars="chars"
69
69
  />
70
- <YunPrologueSquare v-else class="z-1" />
71
70
  </template>
72
71
  <template v-if="yun.isStrato">
73
72
  <YunBannerCharContainer
@@ -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="2" bottom="19"
13
+ opacity="75" right="4" bottom="19"
14
14
  @click="yun.rightSidebar.toggle()"
15
15
  >
16
16
  <div i-ri-file-list-line />
@@ -7,7 +7,7 @@ import { useYunAppStore } from '../../stores'
7
7
  const yun = useYunAppStore()
8
8
  const classes = computed(() => {
9
9
  if (yun.isNimbo)
10
- return 'mt-24 md:mt-36'
10
+ return 'mt-12 md:mt-24'
11
11
  return 'mt-12'
12
12
  })
13
13
  </script>
@@ -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 size-$total-char-height"
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="absolute yun-square square-rotate z-1 bg-white/80"
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-64 md:w-100 m-auto gap-2"
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-base p-1 md:(text-base p-2) lg:(text-xl p-3) text-$va-c-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}`"
@@ -7,7 +7,7 @@ const siteConfig = useSiteConfig()
7
7
  <template>
8
8
  <h4
9
9
  v-if="siteConfig.subtitle"
10
- class="site-subtitle block text-$va-c-text op-80" text="sm"
10
+ class="site-subtitle block text-$va-c-text op-80 font-medium" text="sm"
11
11
  >
12
12
  {{ siteConfig.subtitle }}
13
13
  </h4>
@@ -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="site-name"
15
+ :class="classes"
13
16
  >
14
17
  {{ siteConfig.title }}
15
18
  </RouterLink>
16
- <span v-else class="site-name">{{ siteConfig.title }}</span>
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
- // const themeConfig = useThemeConfig()
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
@@ -3,7 +3,7 @@
3
3
  </script>
4
4
 
5
5
  <template>
6
- <div class="pt-36">
6
+ <div class="pt-16 md:pt-24">
7
7
  <YunPostList />
8
8
  </div>
9
9
  <YunFooter />
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "valaxy-theme-yun",
3
3
  "type": "module",
4
- "version": "0.20.6",
4
+ "version": "0.21.0",
5
5
  "author": {
6
6
  "email": "me@yunyoujun.cn",
7
7
  "name": "YunYouJun",
@@ -23,20 +23,19 @@
23
23
  "dependencies": {
24
24
  "@ctrl/tinycolor": "^4.1.0",
25
25
  "@explosions/fireworks": "^0.1.0",
26
- "@iconify-json/ant-design": "^1.2.2",
27
- "@iconify-json/simple-icons": "^1.2.13",
26
+ "@iconify-json/ant-design": "^1.2.3",
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.4",
32
- "radix-vue": "^1.9.10"
31
+ "primevue": "^4.2.5"
33
32
  },
34
33
  "devDependencies": {
35
34
  "@types/animejs": "^3.1.12",
36
- "valaxy": "0.20.6",
37
- "valaxy-addon-waline": "0.2.0"
35
+ "valaxy-addon-waline": "0.2.0",
36
+ "valaxy": "0.21.0"
38
37
  },
39
38
  "scripts": {
40
- "release": "bumpp && npm publish"
39
+ "release": "bumpp && pnpm publish"
41
40
  }
42
41
  }
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
 
@@ -0,0 +1,30 @@
1
+ @use "valaxy/client/styles/mixins/index.scss" as *;
2
+
3
+ ::-webkit-scrollbar {
4
+ width: 8px;
5
+ height: 8px;
6
+ }
7
+
8
+ ::-webkit-scrollbar-track {
9
+ border-radius: 2px;
10
+ background-color: rgba(255, 255, 255, 0.1);
11
+ }
12
+
13
+ ::-webkit-scrollbar-thumb {
14
+ border-radius: 2px;
15
+ background-color: rgba(122, 122, 122, 0.3);
16
+
17
+ // transition not work
18
+
19
+ &:window-inactive {
20
+ background-color: rgba(122, 122, 122, 0.3);
21
+ }
22
+
23
+ &:hover {
24
+ background-color: rgba(122, 122, 122, 0.7);
25
+ }
26
+
27
+ &:active {
28
+ background-color: rgba(122, 122, 122, 0.9);
29
+ }
30
+ }
@@ -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
@@ -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
+ }
@@ -48,10 +48,6 @@ $char-animation-duration: 0.4s;
48
48
  &-bottom {
49
49
  flex-direction: column-reverse;
50
50
  }
51
-
52
-
53
-
54
-
55
51
  }
56
52
 
57
53
  .banner-line {