@xingwangzhe/stalux 1.29.7 → 1.30.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 (115) hide show
  1. package/README.md +6 -2
  2. package/package.json +10 -6
  3. package/src/components/stalux/archives/archivesList.astro +22 -16
  4. package/src/components/stalux/archives/toArchive.astro +2 -2
  5. package/src/components/stalux/categories/categoriesCard.astro +8 -7
  6. package/src/components/stalux/categories/categoriesList.astro +3 -2
  7. package/src/components/stalux/common/author.astro +3 -3
  8. package/src/components/stalux/common/date.astro +3 -4
  9. package/src/components/stalux/common/textType.astro +2 -2
  10. package/src/components/stalux/footer/FooterBadges.astro +9 -97
  11. package/src/components/stalux/footer/FooterBeian.astro +2 -44
  12. package/src/components/stalux/footer/FooterCopyright.astro +1 -16
  13. package/src/components/stalux/footer/FooterStats.astro +4 -25
  14. package/src/components/stalux/footer/FooterThemeInfo.astro +1 -28
  15. package/src/components/stalux/layout/footer.astro +3 -3
  16. package/src/components/stalux/layout/listPage.astro +3 -3
  17. package/src/components/stalux/layout/navs.astro +13 -13
  18. package/src/components/stalux/links/linkCard.astro +7 -6
  19. package/src/components/stalux/links/linkList.astro +4 -3
  20. package/src/components/stalux/links/socialMedia.astro +2 -2
  21. package/src/components/stalux/posts/PostTaxonomy.astro +13 -8
  22. package/src/components/stalux/posts/postAuthor.astro +6 -5
  23. package/src/components/stalux/posts/postCC.astro +10 -9
  24. package/src/components/stalux/posts/postCard.astro +15 -15
  25. package/src/components/stalux/posts/postContent.astro +22 -14
  26. package/src/components/stalux/posts/postLeft.astro +5 -4
  27. package/src/components/stalux/posts/postList.astro +2 -3
  28. package/src/components/stalux/posts/postNavigation.astro +24 -23
  29. package/src/components/stalux/posts/postRight.astro +7 -6
  30. package/src/components/stalux/posts/postToc.astro +7 -19
  31. package/src/components/stalux/posts/randomPost.astro +8 -7
  32. package/src/components/stalux/tags/tagHeader.astro +10 -6
  33. package/src/components/stalux/tags/tagsCloud.astro +10 -9
  34. package/src/components/stalux/words/wordCard.astro +11 -10
  35. package/src/components/stalux/words/wordList.astro +4 -3
  36. package/src/index.ts +5 -4
  37. package/src/internal/runtime-cache-key.ts +13 -1
  38. package/src/layouts/PostLayout.astro +3 -4
  39. package/src/layouts/Stalux.astro +0 -17
  40. package/src/pages/404.astro +6 -77
  41. package/src/pages/archives.astro +3 -3
  42. package/src/pages/categories/index.astro +3 -3
  43. package/src/pages/index.astro +4 -18
  44. package/src/pages/tags/index.astro +3 -3
  45. package/src/pages/words.astro +3 -3
  46. package/src/scripts/analytics-runtime.ts +9 -6
  47. package/src/scripts/waline-client.ts +1 -1
  48. package/src/styles/archives.css +2 -0
  49. package/src/styles/article.css +2 -0
  50. package/src/styles/categories.css +2 -0
  51. package/src/styles/components/posts/waline.css +19 -23
  52. package/src/styles/generated-archives.css +3 -0
  53. package/src/styles/generated-article.css +3 -0
  54. package/src/styles/generated-categories.css +3 -0
  55. package/src/styles/generated-links.css +3 -0
  56. package/src/styles/generated-prose.css +2 -0
  57. package/src/styles/generated-tags.css +3 -0
  58. package/src/styles/generated-waline.css +2 -0
  59. package/src/styles/generated-words.css +3 -0
  60. package/src/styles/generated.css +3 -0
  61. package/src/styles/links.css +2 -0
  62. package/src/styles/prose.css +3 -0
  63. package/src/styles/tags.css +2 -0
  64. package/src/styles/theme/archives.css +138 -0
  65. package/src/styles/theme/article.css +562 -0
  66. package/src/styles/theme/base.css +290 -0
  67. package/src/styles/theme/categories.css +54 -0
  68. package/src/styles/theme/common.css +79 -0
  69. package/src/styles/theme/footer.css +26 -0
  70. package/src/styles/theme/inline.css +153 -0
  71. package/src/styles/theme/layout.css +143 -0
  72. package/src/styles/theme/link-cards.css +114 -0
  73. package/src/styles/theme/links.css +69 -0
  74. package/src/styles/theme/pages.css +35 -0
  75. package/src/styles/theme/posts.css +79 -0
  76. package/src/styles/theme/prose.css +478 -0
  77. package/src/styles/theme/tags.css +130 -0
  78. package/src/styles/theme/words.css +84 -0
  79. package/src/styles/theme.css +12 -0
  80. package/src/styles/words.css +2 -0
  81. package/src/styles/base/init.css +0 -287
  82. package/src/styles/components/archives/archivesList.module.css +0 -203
  83. package/src/styles/components/archives/toArchive.module.css +0 -3
  84. package/src/styles/components/categories/categoriesCard.module.css +0 -88
  85. package/src/styles/components/categories/categoriesList.module.css +0 -23
  86. package/src/styles/components/common/author.module.css +0 -72
  87. package/src/styles/components/common/date.module.css +0 -15
  88. package/src/styles/components/common/textType.module.css +0 -10
  89. package/src/styles/components/footer/footer.module.css +0 -44
  90. package/src/styles/components/layout/navs.module.css +0 -261
  91. package/src/styles/components/links/linkCard.module.css +0 -116
  92. package/src/styles/components/links/linkList.module.css +0 -54
  93. package/src/styles/components/links/socialLinks.module.css +0 -80
  94. package/src/styles/components/markdown.css +0 -523
  95. package/src/styles/components/posts/postAuthor.module.css +0 -31
  96. package/src/styles/components/posts/postCC.module.css +0 -138
  97. package/src/styles/components/posts/postCard.module.css +0 -167
  98. package/src/styles/components/posts/postContent.module.css +0 -238
  99. package/src/styles/components/posts/postLayout.module.css +0 -138
  100. package/src/styles/components/posts/postList.module.css +0 -25
  101. package/src/styles/components/posts/postNavigation.module.css +0 -186
  102. package/src/styles/components/posts/postSidebar.module.css +0 -59
  103. package/src/styles/components/posts/postTaxonomy.module.css +0 -87
  104. package/src/styles/components/posts/postToc.module.css +0 -74
  105. package/src/styles/components/posts/randomPost.module.css +0 -131
  106. package/src/styles/components/tags/tagHeader.module.css +0 -44
  107. package/src/styles/components/tags/tagsCloud.module.css +0 -155
  108. package/src/styles/components/words/wordCard.module.css +0 -136
  109. package/src/styles/components/words/wordList.module.css +0 -26
  110. package/src/styles/pages/archives.module.css +0 -22
  111. package/src/styles/pages/categories.module.css +0 -17
  112. package/src/styles/pages/home.module.css +0 -61
  113. package/src/styles/pages/listPage.module.css +0 -16
  114. package/src/styles/pages/tags.module.css +0 -16
  115. package/src/styles/pages/words.module.css +0 -16
@@ -0,0 +1,290 @@
1
+ @layer base {
2
+ /* 全局设置 */
3
+ html,
4
+ body {
5
+ margin: 0;
6
+ width: 100%;
7
+ height: 100%;
8
+ color: white;
9
+ main {
10
+ flex: 1;
11
+ }
12
+ scrollbar-color: #4a4a4a #2a2a2a;
13
+ display: block;
14
+ font-family:
15
+ var(--font-body), "Noto Sans SC", "Noto Sans CJK SC", system-ui, -apple-system,
16
+ sans-serif;
17
+ -webkit-font-smoothing: antialiased;
18
+ -moz-osx-font-smoothing: grayscale;
19
+ text-rendering: optimizeLegibility;
20
+ }
21
+
22
+ html[data-clarity-id] {
23
+ opacity: 1 !important;
24
+ }
25
+ /* 将所有链接初始化为无视觉状态,但保留键盘可见焦点 */
26
+ a {
27
+ color: inherit;
28
+ text-decoration: none;
29
+ background-color: transparent;
30
+ cursor: pointer;
31
+ text-decoration-skip-ink: auto;
32
+ }
33
+
34
+ .a-none {
35
+ color: inherit !important;
36
+ text-decoration: none !important;
37
+ background-color: transparent;
38
+ cursor: pointer;
39
+ text-decoration-skip-ink: auto;
40
+ }
41
+
42
+ .a-none::after {
43
+ display: none !important;
44
+ }
45
+
46
+ a {
47
+ position: relative;
48
+ transition:
49
+ color 0.2s ease,
50
+ text-shadow 0.2s ease;
51
+ }
52
+
53
+ /* 下划线动画 */
54
+ a::after {
55
+ content: "";
56
+ position: absolute;
57
+ left: 0;
58
+ bottom: -2px;
59
+ height: 1px;
60
+ width: 100%;
61
+ background: linear-gradient(90deg, var(--stalux-accent-color), var(--accent-50p));
62
+ transform: scaleX(0);
63
+ transform-origin: left;
64
+ transition: transform 0.25s cubic-bezier(0.25, 0.9, 0.2, 1);
65
+ pointer-events: none;
66
+ }
67
+
68
+ a:hover::after,
69
+ a:focus-visible::after,
70
+ a:active::after {
71
+ transform: scaleX(1);
72
+ }
73
+
74
+ a:hover,
75
+ a:active,
76
+ a:focus-visible {
77
+ text-decoration: none;
78
+ /* 保持颜色不变,避免 hover 时颜色跳变 */
79
+ }
80
+
81
+ a:focus {
82
+ outline: none;
83
+ }
84
+
85
+ a:focus-visible {
86
+ outline: 2px solid var(--stalux-accent-color);
87
+ outline-offset: 2px;
88
+ }
89
+ ul {
90
+ list-style: none;
91
+ padding: 0;
92
+ margin: 0;
93
+ }
94
+ .none {
95
+ display: none;
96
+ }
97
+ /* 布局:使 body 成为列 flex 容器,并让 main 填充可用高度 */
98
+ .stalux-root {
99
+ min-height: 100vh;
100
+ color: white;
101
+ }
102
+
103
+ /* 主内容至少撑满视口高度
104
+ * - 内容不足视口时:min-height 让 main = 100vh,页脚紧跟在视口下方
105
+ * - 内容超过视口时:main 自然撑高,页脚在内容末尾
106
+ * 不使用 flex,避免 flex-basis 限制导致内容溢出 main */
107
+ .stalux-main {
108
+ min-height: 100vh;
109
+ }
110
+
111
+ /* 默认 stalux 背景的 CSS 变量(非动态默认值) */
112
+ :root {
113
+ --stalux-bg-color: #202020;
114
+ --stalux-bg-filter: none;
115
+ --stalux-text-shadow: var(--stalux-accent-color) 0.08rem 0.08rem 0.18rem;
116
+ --stalux-accent-color: #eab308;
117
+ --stalux-accent-rgb: 234, 179, 8;
118
+ --surface-glass: var(--black-05p);
119
+ --surface-glass-shadow: var(--shadow-sidebar);
120
+
121
+ /* 卡片和标签颜色 Token(可在这里统一调整主题色/透明度) */
122
+ --card-bg: var(--surface-glass);
123
+ --card-border: rgba(255, 255, 255, 0.1);
124
+ --card-box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
125
+ --card-box-shadow-hover: 0 14px 28px rgba(0, 0, 0, 0.12);
126
+
127
+ --tag-bg: rgba(255, 255, 255, 0.12);
128
+ --tag-bg-hover: rgba(255, 255, 255, 0.18);
129
+ --category-bg: rgba(255, 255, 255, 0.08);
130
+ --category-bg-hover: rgba(255, 255, 255, 0.14);
131
+
132
+ --date-bg: rgba(66, 160, 255, 0.18);
133
+ --date-border: rgba(66, 160, 255, 0.25);
134
+ --updated-bg: rgba(255, 201, 71, 0.2);
135
+ --updated-border: rgba(255, 201, 71, 0.3);
136
+
137
+ /* 常用颜色值 */
138
+ --white-full: #ffffff;
139
+ --white-95p: rgba(255, 255, 255, 0.95);
140
+ --white-90p: rgba(255, 255, 255, 0.9);
141
+ --white-85p: rgba(255, 255, 255, 0.85);
142
+ --white-80p: rgba(255, 255, 255, 0.9);
143
+ --white-78p: rgba(255, 255, 255, 0.78);
144
+ --white-75p: rgba(255, 255, 255, 0.75);
145
+ --white-70p: rgba(255, 255, 255, 0.86);
146
+ --white-60p: rgba(255, 255, 255, 0.6);
147
+ --white-50p: rgba(255, 255, 255, 0.5);
148
+ --white-30p: rgba(255, 255, 255, 0.3);
149
+ --white-20p: rgba(255, 255, 255, 0.2);
150
+ --white-15p: rgba(255, 255, 255, 0.15);
151
+ --white-10p: rgba(255, 255, 255, 0.1);
152
+ --white-05p: rgba(255, 255, 255, 0.05);
153
+
154
+ --black-30p: rgba(0, 0, 0, 0.3);
155
+ --black-20p: rgba(0, 0, 0, 0.2);
156
+ --black-15p: rgba(0, 0, 0, 0.15);
157
+ --black-10p: rgba(0, 0, 0, 0.1);
158
+ --black-05p: rgba(0, 0, 0, 0.05);
159
+
160
+ /* 强调色变体 */
161
+ --accent-90p: rgba(var(--stalux-accent-rgb), 0.9);
162
+ --accent-85p: rgba(var(--stalux-accent-rgb), 0.85);
163
+ --accent-80p: rgba(var(--stalux-accent-rgb), 0.8);
164
+ --accent-70p: rgba(var(--stalux-accent-rgb), 0.7);
165
+ --accent-60p: rgba(var(--stalux-accent-rgb), 0.6);
166
+ --accent-50p: rgba(var(--stalux-accent-rgb), 0.5);
167
+ --accent-40p: rgba(var(--stalux-accent-rgb), 0.4);
168
+ --accent-30p: rgba(var(--stalux-accent-rgb), 0.3);
169
+ --accent-20p: rgba(var(--stalux-accent-rgb), 0.2);
170
+
171
+ /* 常用过渡和动画 */
172
+ --transition-fast: 0.18s ease;
173
+ --transition-medium: 0.2s ease;
174
+ --transition-normal: 0.25s ease;
175
+ --transition-slow: 0.3s ease;
176
+ --transition-slower: 0.5s ease;
177
+ --transition-slowest: 0.6s ease;
178
+
179
+ --easing-bounce: cubic-bezier(0.175, 0.885, 0.32, 1.275);
180
+
181
+ /* 常用间距值 */
182
+ --space-2xs: 0.25rem;
183
+ --space-xs: 0.75rem;
184
+ --space-sm: 0.5rem;
185
+ --space-md: 1rem;
186
+ --space-lg: 1.5rem;
187
+ --space-xl: 2rem;
188
+ --space-2xl: 3rem;
189
+ --space-3xl: 4rem;
190
+
191
+ /* 常用圆角半径值 */
192
+ --radius-sm: 4px;
193
+ --radius-md: 6px;
194
+ --radius-lg: 8px;
195
+ --radius-full: 9999px;
196
+
197
+ /* 常用阴影 */
198
+ --shadow-sm: 0 2px 5px rgba(0, 0, 0, 0.1);
199
+ --shadow-md: 0 6px 16px rgba(0, 0, 0, 0.2);
200
+ --shadow-lg: 0 8px 20px rgba(0, 0, 0, 0.3);
201
+ --shadow-xl: 0 12px 26px rgba(0, 0, 0, 0.28);
202
+ --shadow-sidebar:
203
+ 0 16px 20px -12px rgba(0, 0, 0, 0.84),
204
+ 10px 4px 16px -12px rgba(0, 0, 0, 0.58),
205
+ -10px 4px 16px -12px rgba(0, 0, 0, 0.58);
206
+ --shadow-raised-hover:
207
+ 0 20px 24px -13px rgba(0, 0, 0, 0.9),
208
+ 12px 5px 18px -13px rgba(0, 0, 0, 0.68),
209
+ -12px 5px 18px -13px rgba(0, 0, 0, 0.68);
210
+ --shadow-dark: rgba(0, 0, 0, 0.753);
211
+
212
+ /* 语义化颜色 */
213
+ --muted-text: #bbb;
214
+
215
+ /* 字体族栈 */
216
+ --font-body: "Noto Sans SC", "Noto Sans CJK SC", system-ui, sans-serif;
217
+ /* --font-code 由 Astro Fonts API 提供;构建时将页面 CJK 子集追加为其回退。 */
218
+
219
+ /* 字体大小系统 */
220
+ --font-size-subtitle: 1.35rem;
221
+ --font-size-base: 1.1rem;
222
+ --font-size-small: 0.95rem;
223
+ --font-size-smaller: 0.9rem;
224
+ --font-size-tiny: 0.85rem;
225
+
226
+ /* 边框宽度 */
227
+ --border-thin: 1px;
228
+ --border-medium: 2px;
229
+ --border-thick: 3px;
230
+ }
231
+ ::-webkit-scrollbar {
232
+ width: 8px;
233
+ height: 8px;
234
+ }
235
+
236
+ ::-webkit-scrollbar-track {
237
+ background: #2a2a2a;
238
+ border-radius: 4px;
239
+ }
240
+
241
+ ::-webkit-scrollbar-thumb {
242
+ background: #4a4a4a;
243
+ border-radius: 4px;
244
+ transition: background 0.3s ease-out;
245
+ }
246
+
247
+ ::-webkit-scrollbar-thumb:hover {
248
+ background: #5a5a5a;
249
+ }
250
+
251
+ ::-webkit-scrollbar-corner {
252
+ background: #2a2a2a;
253
+ }
254
+
255
+ /* 背景层 - 双层随机背景,在路由切换时交叉淡入淡出 */
256
+ .bg-layer {
257
+ position: fixed;
258
+ inset: 0;
259
+ z-index: -10;
260
+ background-repeat: repeat;
261
+ background-size: auto;
262
+ background-position: center;
263
+ background-color: var(--stalux-bg-color, transparent);
264
+ filter: var(--stalux-bg-filter, none);
265
+ pointer-events: none;
266
+ opacity: 0;
267
+ transition: opacity 650ms ease-in-out;
268
+ /* 禁止浏览器强制色彩模式(高对比度/暗黑模式)调整背景图颜色 */
269
+ forced-color-adjust: none;
270
+ /* 关键:防止 Safari/WebKit 在暗色模式下自动调整 SVG 背景图颜色 */
271
+ color-scheme: only light;
272
+ }
273
+
274
+ @media (prefers-reduced-motion: reduce) {
275
+ .bg-layer {
276
+ transition-duration: 0ms;
277
+ }
278
+ }
279
+
280
+ /* footer 基础样式,保证页脚始终可见且不覆盖内容 */
281
+ footer {
282
+ padding: var(--space-lg) var(--space-md);
283
+ text-align: center;
284
+ color: var(--muted-text);
285
+ background: linear-gradient(180deg, rgba(12, 14, 18, 0.18), rgba(12, 14, 18, 0.72));
286
+ border-top: 1px solid var(--white-10p);
287
+ backdrop-filter: blur(16px);
288
+ -webkit-backdrop-filter: blur(16px);
289
+ }
290
+ }
@@ -0,0 +1,54 @@
1
+ @layer components {
2
+ /* categoriesList */
3
+
4
+ .stalux-categories > li {
5
+ content-visibility: auto;
6
+ contain-intrinsic-block-size: auto 180px;
7
+ overflow-clip-margin: 30px;
8
+ }
9
+
10
+ @supports not (content-visibility: auto) {
11
+ .stalux-categories > li {
12
+ contain-intrinsic-block-size: auto;
13
+ }
14
+ }
15
+
16
+ /* categoriesCard */
17
+
18
+ .stalux-category-card::before {
19
+ @apply absolute;
20
+ content: "";
21
+ inset: 0;
22
+ background: linear-gradient(
23
+ 120deg,
24
+ rgba(255, 255, 255, 0),
25
+ rgba(255, 255, 255, 0.05),
26
+ rgba(255, 255, 255, 0)
27
+ );
28
+ transform: translateX(-100%);
29
+ transition: transform 360ms ease;
30
+ z-index: 1;
31
+ }
32
+
33
+ .stalux-category-card:hover {
34
+ transform: translateY(-3px);
35
+ background-color: var(--white-05p);
36
+ box-shadow: var(--card-box-shadow-hover);
37
+ }
38
+
39
+ .stalux-category-card:hover::before {
40
+ transform: translateX(100%);
41
+ }
42
+
43
+ .stalux-category-card:hover .stalux-category-icon {
44
+ transform: rotate(-15deg) translateY(-3px);
45
+ background: var(--accent-30p);
46
+ color: var(--white-90p);
47
+ box-shadow: 0 3px 8px var(--accent-30p);
48
+ opacity: 1;
49
+ }
50
+
51
+ .stalux-category-icon svg {
52
+ @apply w-full h-full;
53
+ }
54
+ }
@@ -0,0 +1,79 @@
1
+ @layer components {
2
+ #stalux-to-archive-archs {
3
+ margin-top: 2em;
4
+ }
5
+ /* textType */
6
+
7
+ /* date */
8
+ #stalux-date-date-time {
9
+ @apply stalux-stack items-center;
10
+ margin-top: 2em;
11
+ @apply stalux-glow;
12
+ color: var(--white-full);
13
+ #stalux-date-date {
14
+ font-size: 2em;
15
+ margin-bottom: 0.5em;
16
+ }
17
+ #stalux-date-time {
18
+ font-size: 3em;
19
+ }
20
+ }
21
+
22
+ /* author */
23
+
24
+ .stalux-author-figure {
25
+ @apply stalux-flex-center;
26
+
27
+ img {
28
+ @apply rounded-full;
29
+ transition: transform 1s ease;
30
+ box-shadow: 0 0 10px var(--stalux-accent-color);
31
+ }
32
+
33
+ img:hover {
34
+ transform: rotate(360deg);
35
+ }
36
+
37
+ figcaption {
38
+ @apply font-bold;
39
+ margin-left: 1em;
40
+ font-size: 2.5em;
41
+ @apply stalux-glow;
42
+ color: var(--white-full);
43
+ }
44
+ }
45
+
46
+ .stalux-author-figure-column figcaption {
47
+ @apply text-center;
48
+ margin-left: 0;
49
+ margin-top: 0.5em;
50
+ }
51
+ @media (max-width: 768px) {
52
+ .stalux-author {
53
+ @apply w-full box-border;
54
+ margin-top: 2em;
55
+ padding: 1em 0.5em;
56
+ max-width: 95vw;
57
+ }
58
+ .stalux-author-figure {
59
+ flex-direction: column !important;
60
+ gap: 0.5em;
61
+ }
62
+ .stalux-author-figure img {
63
+ width: 64px !important;
64
+ height: 64px !important;
65
+ max-width: 20vw;
66
+ max-height: 20vw;
67
+ }
68
+ .stalux-author-figure figcaption {
69
+ @apply text-center;
70
+ font-size: 1.5em;
71
+ margin-left: 0;
72
+ margin-top: 0.5em;
73
+ word-break: break-all;
74
+ max-width: 90vw;
75
+ overflow-wrap: break-word;
76
+ white-space: normal;
77
+ }
78
+ }
79
+ }
@@ -0,0 +1,26 @@
1
+ @layer components {
2
+ /* footer */
3
+ @media (max-width: 768px) {
4
+ .stalux-footer {
5
+ padding: 1.2rem 0;
6
+ font-size: 0.8rem;
7
+ }
8
+
9
+ .stalux-footer-content {
10
+ gap: 0.6rem;
11
+ padding: 0 0.8rem;
12
+ }
13
+ }
14
+
15
+ @media (max-width: 480px) {
16
+ .stalux-footer {
17
+ padding: 1rem 0;
18
+ font-size: 0.8rem;
19
+ }
20
+
21
+ .stalux-footer-content {
22
+ gap: 0.6rem;
23
+ padding: 0 0.8rem;
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,153 @@
1
+ @layer components {
2
+ /* index.astro */
3
+
4
+ .agent-home-summary {
5
+ @apply absolute p-0 overflow-hidden;
6
+ width: 1px;
7
+ height: 1px;
8
+ margin: -1px;
9
+ clip: rect(0, 0, 0, 0);
10
+ white-space: normal;
11
+ border: 0;
12
+ }
13
+
14
+ /* 404.astro */
15
+
16
+ .stalux-404-error-content h1 {
17
+ @apply font-bold m-0;
18
+ font-size: 6rem;
19
+ color: var(--white-90p);
20
+ }
21
+
22
+ .stalux-404-error-content p {
23
+ font-size: 1.5rem;
24
+ margin: 1rem 0 2rem 0;
25
+ color: var(--white-70p);
26
+ }
27
+
28
+ .stalux-404-countdown-text {
29
+ font-size: 0.95rem !important;
30
+ color: var(--white-50p) !important;
31
+ margin: -0.5rem 0 1.5rem 0 !important;
32
+ }
33
+
34
+ .agent-recovery {
35
+ max-width: 42rem;
36
+ margin: 0 auto 1.5rem !important;
37
+ font-size: 1rem !important;
38
+ line-height: 1.7;
39
+ }
40
+
41
+ .agent-recovery a {
42
+ @apply text-inherit underline;
43
+ }
44
+
45
+ .stalux-404-home-btn:hover {
46
+ background: var(--accent-20p);
47
+ transform: translateY(-2px);
48
+ box-shadow: 0 4px 12px var(--shadow-dark);
49
+ }
50
+
51
+ @media (max-width: 768px) {
52
+ .stalux-404-error-content h1 {
53
+ font-size: 4rem;
54
+ }
55
+
56
+ .stalux-404-error-content p {
57
+ font-size: 1.2rem;
58
+ }
59
+ }
60
+
61
+ /* Stalux.astro */
62
+
63
+ /* postToc.astro */
64
+
65
+ @keyframes fadeSlideDown {
66
+ from {
67
+ opacity: 0;
68
+ transform: translateY(-8px);
69
+ }
70
+ to {
71
+ opacity: 1;
72
+ transform: translateY(0);
73
+ }
74
+ }
75
+
76
+ /* FooterThemeInfo.astro */
77
+
78
+ .stalux-theme-info span {
79
+ @apply m-0;
80
+ }
81
+
82
+ .stalux-theme-info a {
83
+ @apply no-underline;
84
+ color: rgba(255, 255, 255, 0.8);
85
+ transition: color 0.3s ease;
86
+ margin: 0 0.2em;
87
+ }
88
+
89
+ .stalux-theme-info a:hover {
90
+ @apply no-underline;
91
+ color: rgba(255, 255, 255, 1);
92
+ }
93
+
94
+ /* FooterStats.astro */
95
+
96
+ /* FooterCopyright.astro */
97
+
98
+ .stalux-copyright span {
99
+ @apply m-0;
100
+ }
101
+
102
+ /* FooterBeian.astro */
103
+
104
+ .stalux-beian-beian-info a {
105
+ @apply no-underline;
106
+ color: rgba(255, 255, 255, 0.7);
107
+ transition: color 0.3s ease;
108
+ font-size: 0.9rem;
109
+ }
110
+
111
+ .stalux-beian-beian-info a:hover {
112
+ @apply no-underline;
113
+ color: rgba(255, 255, 255, 0.9);
114
+ }
115
+
116
+ .stalux-beian-public-security-beian:hover {
117
+ @apply no-underline;
118
+ color: rgba(255, 255, 255, 0.9);
119
+ }
120
+
121
+ .stalux-beian-public-security-beian img {
122
+ @apply inline-block;
123
+ width: 15px;
124
+ height: 15px;
125
+ }
126
+
127
+ /* FooterBadges.astro */
128
+ .stalux-badges-wrapper .stalux-badge {
129
+ width: auto;
130
+ }
131
+ .stalux-badge-group-summary:hover {
132
+ color: var(--white-70p);
133
+ }
134
+ .stalux-badge-group-summary::-webkit-details-marker {
135
+ @apply hidden;
136
+ }
137
+ .stalux-badge-group[open] .stalux-badge-group-arrow {
138
+ transform: rotate(90deg);
139
+ }
140
+ .stalux-badge-group[open] .stalux-badge-group-hint[data-hint="collapsed"],
141
+ .stalux-badge-group:not([open]) .stalux-badge-group-hint[data-hint="expanded"] {
142
+ @apply hidden;
143
+ }
144
+
145
+ @media (max-width: 768px) {
146
+ .stalux-badges {
147
+ gap: 0.3rem;
148
+ }
149
+ .stalux-badge {
150
+ width: auto;
151
+ }
152
+ }
153
+ }