hexo-theme-solitude 3.0.21 → 4.0.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.
Files changed (142) hide show
  1. package/.github/FUNDING.yml +3 -3
  2. package/README.md +11 -1
  3. package/README_en-US.md +11 -1
  4. package/_config.yml +16 -7
  5. package/languages/default.yml +56 -36
  6. package/languages/en.yml +90 -69
  7. package/languages/es.yml +94 -73
  8. package/languages/zh-CN.yml +56 -34
  9. package/languages/zh-TW.yml +80 -57
  10. package/layout/archive.pug +60 -14
  11. package/layout/category.pug +13 -11
  12. package/layout/includes/body/gadsense.pug +2 -2
  13. package/layout/includes/console.pug +71 -72
  14. package/layout/includes/footer.pug +24 -9
  15. package/layout/includes/head/config.pug +83 -39
  16. package/layout/includes/head/mode.pug +7 -7
  17. package/layout/includes/head/page_config.pug +20 -11
  18. package/layout/includes/inject/body.pug +14 -36
  19. package/layout/includes/keyboard.pug +3 -3
  20. package/layout/includes/loading.pug +1 -37
  21. package/layout/includes/mixins/articleSort.pug +3 -3
  22. package/layout/includes/mixins/common.pug +8 -4
  23. package/layout/includes/mixins/pace.pug +1 -1
  24. package/layout/includes/mixins/pagination.pug +3 -3
  25. package/layout/includes/nav.pug +4 -3
  26. package/layout/includes/page/about.pug +9 -8
  27. package/layout/includes/page/brevity.pug +2 -2
  28. package/layout/includes/page/links.pug +23 -11
  29. package/layout/includes/page/music.pug +0 -5
  30. package/layout/includes/rightmenu.pug +20 -20
  31. package/layout/includes/sidebar.pug +2 -2
  32. package/layout/includes/widgets/aside/asideInfoCard.pug +2 -2
  33. package/layout/includes/widgets/aside/asideTag.pug +2 -2
  34. package/layout/includes/widgets/home/bbTimeList.pug +3 -3
  35. package/layout/includes/widgets/home/categoryBar.pug +30 -15
  36. package/layout/includes/widgets/home/hometop.pug +113 -8
  37. package/layout/includes/widgets/home/postList.pug +1 -2
  38. package/layout/includes/widgets/home/topGroup.pug +3 -7
  39. package/layout/includes/widgets/nav/group.pug +4 -2
  40. package/layout/includes/widgets/nav/menu.pug +6 -4
  41. package/layout/includes/widgets/nav/right.pug +7 -6
  42. package/layout/includes/widgets/page/about/award.pug +67 -38
  43. package/layout/includes/widgets/page/about/hobbies.pug +12 -3
  44. package/layout/includes/widgets/page/banner.pug +1 -1
  45. package/layout/includes/widgets/page/kit/content.pug +2 -2
  46. package/layout/includes/widgets/page/links/banner.pug +30 -19
  47. package/layout/includes/widgets/page/message/artalk.pug +3 -3
  48. package/layout/includes/widgets/page/message/content.pug +3 -3
  49. package/layout/includes/widgets/page/message/twikoo.pug +3 -3
  50. package/layout/includes/widgets/page/message/valine.pug +4 -4
  51. package/layout/includes/widgets/page/message/waline.pug +3 -3
  52. package/layout/includes/widgets/page/recentcomment/artalk.pug +5 -9
  53. package/layout/includes/widgets/page/recentcomment/twikoo.pug +5 -9
  54. package/layout/includes/widgets/page/recentcomment/valine.pug +6 -10
  55. package/layout/includes/widgets/page/recentcomment/waline.pug +5 -9
  56. package/layout/includes/widgets/post/award.pug +1 -28
  57. package/layout/includes/widgets/post/copyright.pug +10 -10
  58. package/layout/includes/widgets/post/postInfo.pug +10 -11
  59. package/layout/includes/widgets/post/postMeta.pug +3 -2
  60. package/layout/includes/widgets/rightside/hide.pug +5 -5
  61. package/layout/includes/widgets/rightside/show.pug +7 -7
  62. package/layout/includes/widgets/third-party/comments/artalk.pug +9 -9
  63. package/layout/includes/widgets/third-party/comments/giscus.pug +2 -2
  64. package/layout/includes/widgets/third-party/comments/twikoo.pug +5 -5
  65. package/layout/includes/widgets/third-party/comments/valine.pug +6 -6
  66. package/layout/includes/widgets/third-party/comments/waline.pug +6 -6
  67. package/layout/includes/widgets/third-party/hot/twikoo.pug +1 -1
  68. package/layout/includes/widgets/third-party/music.pug +9 -5
  69. package/layout/includes/widgets/third-party/news-comment/artalk.pug +6 -6
  70. package/layout/includes/widgets/third-party/news-comment/twikoo.pug +7 -7
  71. package/layout/includes/widgets/third-party/news-comment/valine.pug +8 -8
  72. package/layout/includes/widgets/third-party/news-comment/waline.pug +7 -7
  73. package/layout/includes/widgets/third-party/pjax.pug +16 -10
  74. package/layout/includes/widgets/third-party/search/algolia-search.pug +2 -2
  75. package/layout/includes/widgets/third-party/search/docsearch.pug +3 -3
  76. package/layout/includes/widgets/third-party/search/index.pug +1 -3
  77. package/layout/includes/widgets/third-party/search/local-search.pug +9 -9
  78. package/layout/index.pug +8 -6
  79. package/package.json +8 -7
  80. package/plugins.yml +22 -21
  81. package/scripts/event/cdn.js +11 -6
  82. package/scripts/event/friend_links.js +30 -0
  83. package/scripts/event/merge_config.js +15 -7
  84. package/scripts/filter/comment.js +2 -2
  85. package/scripts/filter/default.js +1 -1
  86. package/scripts/helper/inject_head_js.js +79 -33
  87. package/scripts/helper/related_post.js +16 -21
  88. package/scripts/tags/chart.js +1 -1
  89. package/scripts/tags/typeit.js +1 -1
  90. package/source/css/_components/capsule.styl +259 -168
  91. package/source/css/_components/rightside.styl +98 -242
  92. package/source/css/_global/animation.styl +1 -10
  93. package/source/css/_global/index.styl +27 -1
  94. package/source/css/_layout/aside.styl +7 -1
  95. package/source/css/_layout/console.styl +145 -165
  96. package/source/css/_layout/header.styl +238 -47
  97. package/source/css/_layout/pagination.styl +176 -132
  98. package/source/css/_layout/rightmenu.styl +11 -2
  99. package/source/css/_layout/sidebar.styl +39 -17
  100. package/source/css/_mode/index.styl +7 -1
  101. package/source/css/_page/_about/about.styl +18 -2
  102. package/source/css/_page/_about/buff.styl +1 -1
  103. package/source/css/_page/_about/contentinfo.styl +2 -1
  104. package/source/css/_page/_about/game.styl +57 -1
  105. package/source/css/_page/_about/like.styl +7 -2
  106. package/source/css/_page/_about/maxim.styl +1 -1
  107. package/source/css/_page/_about/reward.styl +226 -108
  108. package/source/css/_page/_about/skills.styl +5 -3
  109. package/source/css/_page/_home/category-bar.styl +162 -88
  110. package/source/css/_page/_home/home-top.styl +309 -263
  111. package/source/css/_page/_home/home.styl +34 -7
  112. package/source/css/_page/archive.styl +412 -0
  113. package/source/css/_page/category.styl +27 -1
  114. package/source/css/_page/index.styl +2 -0
  115. package/source/css/_page/links.styl +190 -0
  116. package/source/css/_page/other.styl +37 -0
  117. package/source/css/_post/index.styl +2 -1
  118. package/source/css/_post/meta.styl +245 -217
  119. package/source/css/_search/local-search.styl +158 -82
  120. package/source/css/var.styl +2 -2
  121. package/source/js/archive-page.js +191 -0
  122. package/source/js/core/actions.js +48 -0
  123. package/source/js/core/api.js +32 -0
  124. package/source/js/core/config.js +13 -0
  125. package/source/js/core/lifecycle.js +52 -0
  126. package/source/js/core/preloader.js +34 -0
  127. package/source/js/core/resources.js +65 -0
  128. package/source/js/covercolor/api.js +13 -103
  129. package/source/js/covercolor/ave.js +14 -77
  130. package/source/js/covercolor/local.js +22 -116
  131. package/source/js/covercolor/shared.js +102 -0
  132. package/source/js/friend_links.js +502 -0
  133. package/source/js/main.js +793 -177
  134. package/source/js/music.js +24 -14
  135. package/source/js/post_ai.js +13 -2
  136. package/source/js/right_menu.js +44 -24
  137. package/source/js/search/algolia.js +29 -21
  138. package/source/js/search/local.js +231 -266
  139. package/source/js/tw_cn.js +37 -12
  140. package/source/js/utils.js +37 -25
  141. package/layout/includes/widgets/randomlink.pug +0 -43
  142. package/scripts/filter/randomPosts.js +0 -16
@@ -4,298 +4,154 @@
4
4
  bottom: 20px
5
5
  z-index: 1000
6
6
  opacity: 0
7
- transition: all .5s cubic-bezier(0.4, 0, 0.2, 1)
8
- filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.15))
7
+ transition: opacity 0.3s, transform 0.5s cubic-bezier(0.4, 0, 0.2, 1)
9
8
 
10
9
  &.needEndHide
11
- display block !important
10
+ display: block !important
12
11
 
13
12
  &.hide.needEndHide
14
- bottom 0 !important
13
+ bottom: 0 !important
15
14
  transform: none !important
16
15
 
16
+ .rs_show,
17
+ .rs_hide
18
+ width: 46px
19
+ padding: 2px
20
+ overflow: hidden
21
+ background: linear-gradient(to bottom, var(--efu-maskbg), var(--efu-maskbgdeep))
22
+ border: var(--style-border)
23
+ border-radius: 24px
24
+ box-shadow: var(--efu-shadow-glass-inset), var(--efu-shadow-border)
25
+ backdrop-filter: saturate(180%) blur(20px)
26
+ -webkit-backdrop-filter: saturate(180%) blur(20px)
27
+ transform: translateZ(0)
28
+
29
+ .rs_show
30
+ display: flex
31
+ flex-direction: column
32
+ position: relative
33
+
17
34
  button
18
- display: block
19
- margin-bottom: 8px
20
- width: 2rem
21
- height: 2rem
22
- border-radius: 50%
23
- background: var(--efu-card-bg)
24
- color: var(--font-color)
25
- text-align: center
26
- font-size: 16px
27
- border: 1px solid var(--border-color)
28
- cursor: pointer
35
+ display: flex
36
+ align-items: center
37
+ justify-content: center
29
38
  position: relative
39
+ flex: 0 0 40px
40
+ width: 40px
41
+ height: 40px
42
+ margin: 0
43
+ padding: 0
30
44
  overflow: hidden
31
- transition: all .3s cubic-bezier(0.4, 0, 0.2, 1)
32
- backdrop-filter: blur(10px) saturate(180%)
33
- box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08), 0 1px 3px rgba(0, 0, 0, 0.1)
45
+ color: var(--efu-fontcolor)
46
+ background: transparent
47
+ border: 0
48
+ border-radius: 20px
49
+ font-size: 16px
50
+ line-height: 1
51
+ text-align: center
52
+ cursor: pointer
53
+ transition: color 0.2s, background 0.2s, transform 0.2s, box-shadow 0.2s
34
54
 
35
- // 悬停效果
36
- &:hover
37
- transform: translateY(-2px) scale(1.05)
38
- box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15), 0 2px 6px rgba(0, 0, 0, 0.1)
39
- background: var(--btn-hover-bg, var(--card-bg))
40
- border-color: var(--theme-color)
41
- color: var(--theme-color)
42
-
43
- &::before
44
- transform: scale(1)
45
- opacity: 0.1
55
+ &:hover,
56
+ &:focus-visible
57
+ color: var(--efu-white)
58
+ background: var(--efu-main)
59
+ box-shadow: 0 4px 12px var(--efu-main-op)
46
60
 
47
- // 按下效果
48
61
  &:active
49
- transform: translateY(0) scale(0.95)
50
- transition: all .1s
62
+ transform: scale(0.88)
51
63
 
52
- // 涟漪效果
53
- &::before
54
- content: ''
55
- position: absolute
56
- top: 50%
57
- left: 50%
58
- width: 0
59
- height: 0
60
- background: currentColor
61
- border-radius: 50%
62
- transform: translate(-50%, -50%) scale(0)
63
- transition: transform .3s, opacity .3s
64
- opacity: 0
65
- pointer-events: none
64
+ &:focus-visible
65
+ outline: 2px solid var(--efu-main)
66
+ outline-offset: -2px
66
67
 
67
- // 图标样式优化
68
- i
68
+ i,
69
+ span
69
70
  position: relative
70
71
  z-index: 1
71
- transition: all .3s ease
72
+ pointer-events: none
73
+
74
+ i
75
+ font-size: 16px
76
+ transition: transform 0.25s
72
77
 
73
- // PC端显示
74
78
  &.pc
75
- display: block
79
+ display: flex
80
+
76
81
  +maxWidth1200()
77
82
  display: none
78
83
 
79
- // 移动端显示
80
84
  &.mobile
81
85
  display: none
82
86
 
83
87
  +maxWidth1200()
84
- display: block
88
+ display: flex
85
89
 
86
- // 返回顶部按钮特殊样式
87
90
  &.top
88
- background: linear-gradient(135deg, var(--efu-card-bg), var(--theme-color-alpha-10))
89
- border: 1px solid var(--theme-color-alpha-20)
90
-
91
- &:hover
92
- background: linear-gradient(135deg, var(--theme-color-alpha-10), var(--theme-color-alpha-20))
93
- border-color: var(--theme-color)
94
- color: var(--theme-color)
95
-
96
- #percent
97
- display: none
98
-
99
- i
100
- display: block
101
- transition: all .3s ease
102
- transform: scale(1.2) rotate(-5deg)
103
-
104
- i
105
- transition: all .3s ease
106
- display: none
107
-
108
- &.show
109
- display: block
110
-
111
91
  #percent
92
+ display: block
112
93
  font-size: 12px
113
94
  font-weight: 600
114
95
  line-height: 1
115
96
 
116
- // 评论按钮
117
- &.comment
118
- &:hover
119
- animation: pulse 1.5s infinite
97
+ i
98
+ display: none
120
99
 
121
- // 弹幕按钮
122
- &.barrage
123
- span
124
- font-size: 12px
125
- font-weight: 500
100
+ &:hover,
101
+ &:focus-visible
102
+ #percent
103
+ display: none
126
104
 
127
- // 配置按钮
128
- &.config
129
- &:hover
130
105
  i
131
- animation: spin 2s linear infinite
106
+ display: block
107
+
108
+ &.barrage span
109
+ font-size: 12px
110
+ font-weight: 600
111
+
112
+ &.translate
113
+ font-size: 14px
114
+ font-weight: 600
115
+
116
+ &.config:hover i,
117
+ &.config:focus-visible i
118
+ transform: rotate(90deg)
132
119
 
133
- // 隐藏面板优化
134
120
  .rs_hide
121
+ display: flex
122
+ flex-direction: column-reverse
135
123
  position: absolute
136
124
  right: 0
137
- bottom: 100%
138
- margin-bottom: 8px
139
- transform: translate(60px, 0)
140
- transition: all .4s cubic-bezier(0.4, 0, 0.2, 1)
125
+ bottom: calc(100% + 8px)
141
126
  opacity: 0
142
- filter: blur(2px)
143
127
  pointer-events: none
144
- display: flex
145
- flex-direction: column-reverse
128
+ transform: translateX(58px) scale(0.96)
129
+ transform-origin: right bottom
130
+ transition: opacity 0.25s, transform 0.35s cubic-bezier(0.4, 0, 0.2, 1)
146
131
 
147
132
  &.show
148
133
  opacity: 1
149
- transform: translate(0, 0)
150
- filter: blur(0)
151
134
  pointer-events: auto
135
+ transform: translateX(0) scale(1)
152
136
 
153
- button
154
- display: block
155
- margin-top: 8px
156
- margin-bottom: 0
157
- width: 2rem
158
- height: 2rem
159
- border-radius: 50%
160
- background: var(--efu-card-bg)
161
- color: var(--font-color)
162
- border: 1px solid var(--border-color)
163
- cursor: pointer
164
- transition: all .3s cubic-bezier(0.4, 0, 0.2, 1)
165
- backdrop-filter: blur(10px) saturate(180%)
166
- box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08), 0 1px 3px rgba(0, 0, 0, 0.1)
167
-
168
- &:hover
169
- transform: translateY(-2px) scale(1.05)
170
- box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15), 0 2px 6px rgba(0, 0, 0, 0.1)
171
- background: var(--btn-hover-bg, var(--efu-card-bg))
172
- border-color: var(--theme-color)
173
- color: var(--theme-color)
174
-
175
- &:active
176
- transform: translateY(0) scale(0.95)
177
- transition: all .1s
178
-
179
- // 翻译按钮特殊样式
180
- &.translate
181
- font-weight: 600
182
- font-size: 14px
183
-
184
- &:hover
185
- color: var(--theme-color)
186
- background: var(--theme-color-alpha-10)
187
-
188
- // 深色模式切换按钮
189
- &.mode
190
- &:hover
191
- i
192
- animation: rotate-y 0.6s ease-in-out
193
-
194
- // 侧边栏切换按钮
195
- &.aside
196
- &:hover
197
- i
198
- animation: expand 0.6s ease-in-out
199
-
200
- // 键盘快捷键按钮
201
- &.keyboard
202
- &:hover
203
- i
204
- animation: bounce 0.6s ease-in-out
205
-
206
- i
207
- position: relative
208
- z-index: 1
209
- transition: all .3s ease
210
-
211
- // 动画定义
212
- @keyframes pulse
213
- 0%, 100%
214
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1)
215
- 50%
216
- box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3)
217
-
218
- @keyframes spin
219
- from
220
- transform: rotate(0deg)
221
- to
222
- transform: rotate(360deg)
223
-
224
- @keyframes rotate-y
225
- 0%
226
- transform: rotateY(0deg)
227
- 50%
228
- transform: rotateY(180deg)
229
- 100%
230
- transform: rotateY(360deg)
231
-
232
- @keyframes expand
233
- 0%, 100%
234
- transform: scaleX(1)
235
- 50%
236
- transform: scaleX(1.3)
237
-
238
- @keyframes bounce
239
- 0%, 20%, 50%, 80%, 100%
240
- transform: translateY(0)
241
- 40%
242
- transform: translateY(-3px)
243
- 60%
244
- transform: translateY(-1px)
137
+ [data-theme='dark']
138
+ #rightside
139
+ .rs_show,
140
+ .rs_hide
141
+ border-color: var(--efu-none)
142
+ box-shadow: var(--efu-shadow-glass-inset), 0 8px 20px -8px rgba(0, 0, 0, 0.55)
245
143
 
246
- // 响应式优化
247
144
  +maxWidth768()
248
145
  #rightside
249
- right: -2.5rem
250
146
  bottom: 15px
251
-
252
- button
253
- width: 2rem
254
- height: 2rem
255
- margin-bottom: 6px
256
- font-size: 14px
257
147
 
258
- .rs_hide
259
- button
260
- width: 2rem
261
- height: 2rem
148
+ .rs_show,
149
+ .rs_hide
150
+ width: 44px
262
151
 
263
- // 暗色模式优化
264
- [data-theme='dark']
265
- #rightside
266
- filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.4))
267
-
268
152
  button
269
- background: var(--efu-card-bg)
270
- opacity: 0.9
271
- border-color: rgba(255, 255, 255, 0.1)
272
- box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2), 0 1px 3px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1)
273
-
274
- &:hover
275
- background: var(--efu-card-bg)
276
- opacity: 1
277
- border-color: var(--theme-color)
278
- box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3), 0 2px 6px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.2)
279
-
280
- &.top
281
- background: linear-gradient(135deg, var(--efu-card-bg), var(--theme-color-alpha-10))
282
- border-color: var(--theme-color-alpha-30)
283
- opacity: 0.9
284
-
285
- &:hover
286
- background: linear-gradient(135deg, var(--theme-color-alpha-15), var(--theme-color-alpha-25))
287
- border-color: var(--theme-color)
288
- opacity: 1
289
-
290
- .rs_hide
291
- button
292
- background: var(--efu-card-bg)
293
- opacity: 0.9
294
- border-color: rgba(255, 255, 255, 0.1)
295
- box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2), 0 1px 3px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1)
296
-
297
- &:hover
298
- background: var(--efu-card-bg)
299
- opacity: 1
300
- border-color: var(--theme-color)
301
- box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3), 0 2px 6px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.2)
153
+ flex-basis: 38px
154
+ width: 38px
155
+ height: 38px
156
+ border-radius: 19px
157
+ font-size: 14px
@@ -270,15 +270,6 @@
270
270
  100%
271
271
  transform translate(0, -4px)
272
272
 
273
- @media screen and (min-width: 768px)
274
- @keyframes showCover
275
- from
276
- opacity 0
277
- transform rotate(10deg) translateY(-8%) scale(1.8)
278
- to
279
- opacity 0.5
280
- transform rotate(10deg) translateY(-10%) scale(2)
281
-
282
273
  @keyframes blinking-cursor
283
274
  0%
284
275
  transform scale(.6)
@@ -301,4 +292,4 @@
301
292
  75%
302
293
  opacity .3
303
294
  100%
304
- opacity 1
295
+ opacity 1
@@ -435,4 +435,30 @@ if hexo-config('memorial.enable')
435
435
  -moz-filter grayscale(100%)
436
436
  -ms-filter grayscale(100%)
437
437
  -o-filter grayscale(100%)
438
- filter grayscale(100%)
438
+ filter grayscale(100%)
439
+
440
+ .custom-tooltip
441
+ display none
442
+
443
+ @media (hover: hover)
444
+ .custom-tooltip
445
+ display flex
446
+ position fixed
447
+ z-index 9999
448
+ max-width 200px
449
+ padding 8px 12px
450
+ color var(--efu-fontcolor)
451
+ background var(--efu-maskbgdeep)
452
+ border var(--style-border-always)
453
+ border-radius 12px
454
+ box-shadow var(--efu-shadow-border)
455
+ font-size 14px
456
+ font-weight 400
457
+ line-height 1.3
458
+ text-align center
459
+ white-space pre-wrap
460
+ overflow-wrap break-word
461
+ pointer-events none
462
+ opacity 0
463
+ backdrop-filter none
464
+ transition opacity .15s, backdrop-filter 0s
@@ -201,6 +201,12 @@
201
201
  background var(--efu-black)
202
202
  color var(--efu-white)
203
203
 
204
+ #body-wrap.post #aside-content .card-info
205
+ .description,
206
+ .bottom-group .name,
207
+ .bottom-group .desc
208
+ color var(--efu-white)
209
+
204
210
  .card-webinfo
205
211
  padding .5rem 1rem
206
212
 
@@ -342,7 +348,7 @@
342
348
 
343
349
  .sticky_layout
344
350
  position sticky
345
- top calc(60px + var(--gap))
351
+ top 60px
346
352
  transition top 0s
347
353
  display flex
348
354
  flex-direction column