@anglefeint/astro-theme 0.1.18 → 0.1.20

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.
@@ -0,0 +1,337 @@
1
+ /* About panel layer: main content/prose, title bar, and reading panel styles. */
2
+ /* ── content ── */
3
+ .hacker-content {
4
+ position: relative;
5
+ z-index: 10;
6
+ }
7
+ .hacker-content .prose {
8
+ position: relative;
9
+ background:
10
+ linear-gradient(180deg, rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.92)),
11
+ linear-gradient(180deg, rgba(30, 30, 30, 0.1), rgba(15, 15, 15, 0.15));
12
+ border: 1px solid rgba(255, 255, 255, 0.2);
13
+ border-radius: 8px;
14
+ box-shadow:
15
+ 0 0 0 1px rgba(255, 255, 255, 0.06),
16
+ 0 16px 48px rgba(0, 0, 0, 0.6);
17
+ }
18
+ .about-shell {
19
+ width: 720px;
20
+ max-width: calc(100% - 2em);
21
+ margin: 0 auto 2rem;
22
+ }
23
+ /* ── toast ── */
24
+ .hacker-toast {
25
+ position: fixed;
26
+ right: 1rem;
27
+ bottom: 1rem;
28
+ z-index: 56;
29
+ padding: 0.5rem 0.75rem;
30
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
31
+ font-size: 0.7rem;
32
+ letter-spacing: 0.08em;
33
+ text-transform: uppercase;
34
+ color: rgba(255, 255, 255, 0.95);
35
+ background: rgba(0, 0, 0, 0.94);
36
+ border: 1px solid rgba(255, 255, 255, 0.25);
37
+ border-radius: 6px;
38
+ box-shadow:
39
+ 0 0 0 1px rgba(255, 255, 255, 0.08),
40
+ 0 0 24px rgba(0, 255, 100, 0.12);
41
+ opacity: 0;
42
+ transform: translateY(8px);
43
+ pointer-events: none;
44
+ transition: opacity 0.18s ease, transform 0.18s ease;
45
+ }
46
+ .hacker-toast.visible {
47
+ opacity: 1;
48
+ transform: translateY(0);
49
+ }
50
+ /* ── progress bar ── */
51
+ .hacker-progress {
52
+ position: fixed;
53
+ top: 0;
54
+ left: 0;
55
+ height: 3px;
56
+ width: calc(var(--read-progress, 0) * 100%);
57
+ background: linear-gradient(90deg, rgba(255, 255, 255, 0.6), rgba(0, 255, 100, 0.9));
58
+ box-shadow: 0 0 12px rgba(0, 255, 100, 0.25);
59
+ z-index: 100;
60
+ pointer-events: none;
61
+ }
62
+ /* ── back to top ── */
63
+ .hacker-back-to-top {
64
+ position: fixed;
65
+ right: 1.5rem;
66
+ bottom: 3.5rem;
67
+ width: 40px;
68
+ height: 40px;
69
+ border: 1px solid rgba(255, 255, 255, 0.25);
70
+ border-radius: 8px;
71
+ background: rgba(0, 0, 0, 0.88);
72
+ color: rgba(255, 255, 255, 0.9);
73
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
74
+ font-size: 1.1rem;
75
+ cursor: pointer;
76
+ z-index: 55;
77
+ opacity: 0;
78
+ transform: translateY(8px);
79
+ transition: opacity 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
80
+ pointer-events: none;
81
+ box-shadow: 0 0 14px rgba(255, 255, 255, 0.08);
82
+ }
83
+ .hacker-back-to-top.visible {
84
+ opacity: 1;
85
+ transform: translateY(0);
86
+ pointer-events: auto;
87
+ }
88
+ .hacker-back-to-top:hover {
89
+ box-shadow: 0 0 20px rgba(0, 255, 100, 0.25);
90
+ border-color: rgba(0, 255, 100, 0.5);
91
+ color: rgba(0, 255, 100, 0.95);
92
+ }
93
+ /* ── title ── */
94
+ .about-title {
95
+ margin-bottom: 1.4rem;
96
+ }
97
+ .hacker-meta {
98
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
99
+ font-size: 0.78em;
100
+ color: rgba(255, 255, 255, 0.55);
101
+ margin-bottom: 0.62em;
102
+ letter-spacing: 0.04em;
103
+ }
104
+ .hacker-title-bar {
105
+ position: relative;
106
+ height: 3px;
107
+ margin: 0.75rem 0 0.1rem;
108
+ border-radius: 999px;
109
+ overflow: hidden;
110
+ background: linear-gradient(
111
+ 90deg,
112
+ rgba(255, 255, 255, 0.1),
113
+ rgba(255, 255, 255, 0.2),
114
+ rgba(255, 255, 255, 0.1)
115
+ );
116
+ box-shadow: 0 0 14px rgba(255, 255, 255, 0.1);
117
+ }
118
+ .hacker-title-bar::after {
119
+ content: "";
120
+ position: absolute;
121
+ top: 0;
122
+ bottom: 0;
123
+ left: -35%;
124
+ width: 35%;
125
+ background: linear-gradient(
126
+ 90deg,
127
+ rgba(11, 15, 20, 0.4),
128
+ rgba(255, 0, 51, 0.7),
129
+ rgba(156, 163, 175, 0.6),
130
+ rgba(11, 15, 20, 0.4)
131
+ );
132
+ animation: hacker-bar-sweep 3.8s linear infinite;
133
+ }
134
+ @keyframes hacker-bar-sweep {
135
+ to { left: 100%; }
136
+ }
137
+ /* ── response panel: Anonymous 窗口风格 (白标题栏 + 黑内容区) ── */
138
+ .hacker-response {
139
+ border: 1px solid rgba(255, 255, 255, 0.25);
140
+ background: #000;
141
+ border-radius: 0;
142
+ padding: 0;
143
+ overflow: hidden;
144
+ box-shadow:
145
+ 0 0 0 1px rgba(255, 255, 255, 0.1),
146
+ 0 8px 32px rgba(0, 0, 0, 0.6);
147
+ }
148
+ .hacker-response-header {
149
+ display: flex;
150
+ align-items: center;
151
+ gap: 0.5em;
152
+ padding: 0.5rem 0.9rem;
153
+ background: #fff;
154
+ border-bottom: 1px solid rgba(0, 0, 0, 0.15);
155
+ }
156
+ .hacker-window-dots {
157
+ display: flex;
158
+ gap: 6px;
159
+ align-items: center;
160
+ }
161
+ .hacker-window-dots span {
162
+ width: 10px;
163
+ height: 10px;
164
+ border-radius: 50%;
165
+ flex-shrink: 0;
166
+ }
167
+ .hacker-window-dots span:nth-child(1) { background: #ff5f57; }
168
+ .hacker-window-dots span:nth-child(2) { background: #febc2e; }
169
+ .hacker-window-dots span:nth-child(3) { background: #28c840; }
170
+ .hacker-response-label {
171
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
172
+ font-size: 0.75em;
173
+ color: #000;
174
+ font-weight: 600;
175
+ letter-spacing: 0.1em;
176
+ text-transform: uppercase;
177
+ }
178
+ .hacker-body {
179
+ padding: 1rem 0.9rem 1.2rem;
180
+ background: #000;
181
+ }
182
+ /* ── prose body ── */
183
+ .hacker-body p,
184
+ .hacker-body h2,
185
+ .hacker-body blockquote,
186
+ .hacker-body .about-manifest {
187
+ opacity: 0;
188
+ transform: translateY(12px);
189
+ transition: opacity 0.5s ease, transform 0.5s ease;
190
+ }
191
+ .hacker-body .hacker-visible {
192
+ opacity: 1;
193
+ transform: translateY(0);
194
+ }
195
+ .hacker-body a {
196
+ color: rgba(255, 255, 255, 0.9);
197
+ text-decoration-color: rgba(255, 255, 255, 0.35);
198
+ }
199
+ .hacker-body a:hover {
200
+ color: rgba(0, 255, 100, 0.95);
201
+ text-decoration-color: rgba(0, 255, 100, 0.6);
202
+ }
203
+ /* ── cursor ── */
204
+ .hacker-cursor {
205
+ display: inline-block;
206
+ width: 0.6em;
207
+ height: 1.1em;
208
+ background: rgba(0, 255, 100, 0.9);
209
+ margin-left: 2px;
210
+ vertical-align: text-bottom;
211
+ animation: hacker-cursor-blink 1s step-end infinite;
212
+ }
213
+ @keyframes hacker-cursor-blink {
214
+ 0%, 50% { opacity: 1; }
215
+ 51%, 100% { opacity: 0; }
216
+ }
217
+ /* ── section titles ── */
218
+ .about-section-title {
219
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
220
+ font-size: 0.78rem;
221
+ letter-spacing: 0.12em;
222
+ text-transform: uppercase;
223
+ color: rgba(255, 255, 255, 0.82);
224
+ margin: 1.7rem 0 0.45rem;
225
+ }
226
+ /* ── manifest box ── */
227
+ .about-manifest {
228
+ margin: 1rem 0 1.4rem;
229
+ padding: 0.8rem 0.95rem;
230
+ border: 1px solid rgba(255, 255, 255, 0.18);
231
+ border-radius: 8px;
232
+ background: rgba(0, 0, 0, 0.4);
233
+ }
234
+ .about-manifest ul {
235
+ margin: 0;
236
+ padding-left: 1.1rem;
237
+ }
238
+ .about-manifest li {
239
+ margin: 0.38rem 0;
240
+ }
241
+ .about-manifest li::marker {
242
+ color: rgba(255, 255, 255, 0.5);
243
+ }
244
+ /* ── signature ── */
245
+ .about-signature {
246
+ margin-top: 1.2rem;
247
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
248
+ font-size: 0.8rem;
249
+ color: rgba(255, 255, 255, 0.6);
250
+ }
251
+ /* ── regenerate ── */
252
+ .hacker-regenerate {
253
+ display: block;
254
+ margin: 2em auto 0;
255
+ padding: 0.5em 1.2em;
256
+ font-size: 0.85em;
257
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
258
+ color: rgba(255, 255, 255, 0.88);
259
+ background: rgba(0, 0, 0, 0.68);
260
+ border: 1px solid rgba(255, 255, 255, 0.25);
261
+ border-radius: 4px;
262
+ cursor: pointer;
263
+ letter-spacing: 0.06em;
264
+ text-transform: uppercase;
265
+ transition: all 0.2s ease;
266
+ }
267
+ .hacker-regenerate:hover:not(:disabled) {
268
+ color: rgba(0, 255, 100, 0.95);
269
+ border-color: rgba(0, 255, 100, 0.4);
270
+ background: rgba(0, 255, 100, 0.06);
271
+ box-shadow: 0 0 14px rgba(0, 255, 100, 0.15);
272
+ }
273
+ /* ── prose container: Anonymous 全等宽 ── */
274
+ .prose {
275
+ width: 720px;
276
+ max-width: calc(100% - 2em);
277
+ margin: auto;
278
+ padding: 1em;
279
+ color: rgba(255, 255, 255, 0.88);
280
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
281
+ font-size: 0.9rem;
282
+ line-height: 1.6;
283
+ }
284
+ .prose p {
285
+ color: rgba(255, 255, 255, 0.82);
286
+ }
287
+ .prose hr {
288
+ border-color: rgba(255, 255, 255, 0.15);
289
+ }
290
+ .title {
291
+ margin-bottom: 1em;
292
+ padding: 1em 0;
293
+ text-align: center;
294
+ line-height: 1;
295
+ }
296
+ .title h1 {
297
+ margin: 0 0 0.5em 0;
298
+ color: rgba(255, 255, 255, 0.92);
299
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
300
+ letter-spacing: 0.04em;
301
+ }
302
+ /* ── mouse glow (green) ── */
303
+ .hacker-mouse-glow {
304
+ position: fixed;
305
+ width: 300px;
306
+ height: 300px;
307
+ left: calc(var(--mouse-x, -9999px) - 150px);
308
+ top: calc(var(--mouse-y, -9999px) - 150px);
309
+ background: radial-gradient(circle, rgba(255, 255, 255, 0.04) 0%, transparent 70%);
310
+ pointer-events: none;
311
+ z-index: 1;
312
+ border-radius: 50%;
313
+ }
314
+ /* ── load scan ── */
315
+ .hacker-load-scan {
316
+ position: fixed;
317
+ left: 0;
318
+ right: 0;
319
+ height: 2px;
320
+ background: linear-gradient(90deg, rgba(11, 15, 20, 0.3), rgba(255, 0, 51, 0.7), rgba(156, 163, 175, 0.6), rgba(11, 15, 20, 0.3));
321
+ box-shadow: 0 0 12px rgba(255, 0, 51, 0.4);
322
+ animation: hacker-scan 0.8s ease-out forwards;
323
+ pointer-events: none;
324
+ z-index: 20;
325
+ }
326
+ @keyframes hacker-scan {
327
+ 0% { top: 0; opacity: 1; }
328
+ 100% { top: 100vh; opacity: 0.2; }
329
+ }
330
+ /* ── flash on regenerate ── */
331
+ .hacker-flash {
332
+ animation: hacker-flash-anim 0.3s ease-out;
333
+ }
334
+ @keyframes hacker-flash-anim {
335
+ 0% { filter: brightness(2) saturate(0.5); }
336
+ 100% { filter: none; }
337
+ }
@@ -0,0 +1 @@
1
+ /* About responsive layer: viewport-specific overrides. */
@@ -0,0 +1,39 @@
1
+ /* About sidebar layer: quick-action folders and related sidebar affordances. */
2
+ /* ── 右侧文件夹 (Anonymous) ── */
3
+ .hacker-sidebar {
4
+ position: fixed;
5
+ top: 20%;
6
+ right: 1rem;
7
+ z-index: 50;
8
+ display: flex;
9
+ flex-direction: column;
10
+ gap: 0.6rem;
11
+ }
12
+ .hacker-folder {
13
+ display: flex;
14
+ align-items: center;
15
+ gap: 0.5rem;
16
+ padding: 0.4rem 0.6rem;
17
+ background: rgba(0, 0, 0, 0.6);
18
+ border: 1px solid rgba(255, 255, 255, 0.2);
19
+ border-radius: 8px;
20
+ cursor: pointer;
21
+ transition: all 0.2s ease;
22
+ text-decoration: none;
23
+ color: rgba(255, 255, 255, 0.9);
24
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
25
+ font-size: 0.72rem;
26
+ letter-spacing: 0.06em;
27
+ }
28
+ .hacker-folder:hover {
29
+ background: rgba(0, 0, 0, 0.85);
30
+ border-color: rgba(0, 255, 100, 0.5);
31
+ color: rgba(0, 255, 100, 0.95);
32
+ box-shadow: 0 0 12px rgba(0, 255, 100, 0.15);
33
+ }
34
+ .hacker-folder-icon {
35
+ width: 24px;
36
+ height: 20px;
37
+ flex-shrink: 0;
38
+ opacity: 0.9;
39
+ }