@karaoke-cms/astro 0.6.3 → 0.9.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.
@@ -1,446 +0,0 @@
1
- /* karaoke-cms default theme — system UI, clean, neutral */
2
-
3
- :root {
4
- --font-body: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
5
- --font-mono: ui-monospace, 'Cascadia Code', 'Fira Code', monospace;
6
-
7
- --font-size-base: 1.0625rem;
8
- --font-size-sm: 0.875rem;
9
- --font-size-lg: 1.25rem;
10
- --font-size-xl: 1.75rem;
11
-
12
- --line-height-body: 1.65;
13
- --line-height-heading: 1.25;
14
-
15
- --color-bg: #fafaf9;
16
- --color-text: #1a1a1a;
17
- --color-muted: #737373;
18
- --color-border: #e5e5e5;
19
- --color-link: #0066cc;
20
- --color-link-hover: #004499;
21
- --color-link-visited: #551a8b;
22
-
23
- --width-content: 680px;
24
- --width-site: 768px;
25
-
26
- --spacing-xs: 0.25rem;
27
- --spacing-sm: 0.5rem;
28
- --spacing-md: 1rem;
29
- --spacing-lg: 2rem;
30
- --spacing-xl: 4rem;
31
- }
32
-
33
- @media (prefers-color-scheme: dark) {
34
- :root {
35
- --color-bg: #0f0f0f;
36
- --color-text: #e5e5e5;
37
- --color-muted: #9ca3af;
38
- --color-border: #262626;
39
- --color-link: #60a5fa;
40
- --color-link-hover: #93c5fd;
41
- --color-link-visited: #a78bfa;
42
- }
43
- }
44
-
45
- *, *::before, *::after {
46
- box-sizing: border-box;
47
- }
48
-
49
- html {
50
- font-size: var(--font-size-base);
51
- }
52
-
53
- body {
54
- margin: 0;
55
- background: var(--color-bg);
56
- color: var(--color-text);
57
- font-family: var(--font-body);
58
- line-height: var(--line-height-body);
59
- }
60
-
61
- /* --- Layout --- */
62
-
63
- .site-wrap {
64
- max-width: var(--width-site);
65
- margin: 0 auto;
66
- padding: 0 var(--spacing-md);
67
- }
68
-
69
- /* --- Navigation --- */
70
-
71
- header {
72
- border-bottom: 1px solid var(--color-border);
73
- margin-bottom: var(--spacing-xl);
74
- }
75
-
76
- .header-inner {
77
- max-width: var(--width-site);
78
- margin: 0 auto;
79
- padding: 0 var(--spacing-md);
80
- display: flex;
81
- align-items: center;
82
- gap: var(--spacing-lg);
83
- height: 3rem;
84
- }
85
-
86
- .site-name {
87
- font-weight: 600;
88
- text-decoration: none;
89
- color: var(--color-text);
90
- flex-shrink: 0;
91
- }
92
-
93
- .site-name:hover {
94
- color: var(--color-link);
95
- }
96
-
97
- header nav ul {
98
- list-style: none;
99
- margin: 0;
100
- padding: 0;
101
- display: flex;
102
- gap: var(--spacing-md);
103
- }
104
-
105
- header nav ul a {
106
- text-decoration: none;
107
- color: var(--color-muted);
108
- font-size: var(--font-size-sm);
109
- padding: var(--spacing-xs) 0;
110
- min-height: 44px;
111
- display: flex;
112
- align-items: center;
113
- }
114
-
115
- header nav ul a:hover,
116
- header nav ul a[aria-current="page"] {
117
- color: var(--color-text);
118
- }
119
-
120
- /* --- Page body (left + main + right regions) --- */
121
-
122
- .page-body {
123
- display: flex;
124
- align-items: flex-start;
125
- max-width: var(--width-site);
126
- margin: 0 auto;
127
- padding: 0 var(--spacing-md);
128
- min-height: calc(100vh - 12rem);
129
- gap: var(--spacing-lg);
130
- }
131
-
132
- .page-body.has-left,
133
- .page-body.has-right {
134
- max-width: calc(var(--width-site) + var(--width-sidebar, 220px) + var(--spacing-lg));
135
- }
136
-
137
- .page-body.has-left.has-right {
138
- max-width: calc(var(--width-site) + 2 * (var(--width-sidebar, 220px) + var(--spacing-lg)));
139
- }
140
-
141
- main {
142
- flex: 1;
143
- min-width: 0;
144
- }
145
-
146
- .region-left,
147
- .region-right {
148
- width: var(--width-sidebar, 220px);
149
- flex-shrink: 0;
150
- padding-top: var(--spacing-xs);
151
- }
152
-
153
- /* --- Sidebar --- */
154
-
155
- .sidebar-section {
156
- margin-bottom: var(--spacing-lg);
157
- }
158
-
159
- .sidebar-heading {
160
- font-size: var(--font-size-sm);
161
- text-transform: uppercase;
162
- letter-spacing: 0.05em;
163
- color: var(--color-muted);
164
- margin: 0 0 var(--spacing-sm);
165
- }
166
-
167
- .sidebar-list {
168
- list-style: none;
169
- margin: 0;
170
- padding: 0;
171
- display: flex;
172
- flex-direction: column;
173
- gap: var(--spacing-xs);
174
- }
175
-
176
- .sidebar-list li {
177
- display: flex;
178
- flex-direction: column;
179
- gap: 2px;
180
- }
181
-
182
- .sidebar-list a {
183
- font-size: var(--font-size-sm);
184
- text-decoration: none;
185
- color: var(--color-text);
186
- }
187
-
188
- .sidebar-list a:hover {
189
- color: var(--color-link);
190
- }
191
-
192
- /* --- Footer --- */
193
-
194
- footer {
195
- border-top: 1px solid var(--color-border);
196
- margin-top: var(--spacing-xl);
197
- padding: var(--spacing-lg) var(--spacing-md);
198
- max-width: var(--width-site);
199
- margin-left: auto;
200
- margin-right: auto;
201
- color: var(--color-muted);
202
- font-size: var(--font-size-sm);
203
- }
204
-
205
- footer a {
206
- color: var(--color-muted);
207
- }
208
-
209
- footer a:hover {
210
- color: var(--color-link);
211
- }
212
-
213
- /* --- Typography --- */
214
-
215
- h1, h2, h3, h4 {
216
- line-height: var(--line-height-heading);
217
- margin-top: 0;
218
- }
219
-
220
- a {
221
- color: var(--color-link);
222
- }
223
-
224
- a:hover {
225
- color: var(--color-link-hover);
226
- }
227
-
228
- a:visited {
229
- color: var(--color-link-visited);
230
- }
231
-
232
- code {
233
- font-family: var(--font-mono);
234
- font-size: 0.9em;
235
- background: var(--color-border);
236
- padding: 0.1em 0.3em;
237
- border-radius: 3px;
238
- }
239
-
240
- pre {
241
- background: var(--color-border);
242
- padding: var(--spacing-md);
243
- overflow-x: auto;
244
- border-radius: 4px;
245
- }
246
-
247
- pre code {
248
- background: none;
249
- padding: 0;
250
- }
251
-
252
- /* --- Post/doc prose --- */
253
-
254
- .prose {
255
- max-width: var(--width-content);
256
- }
257
-
258
- .prose img {
259
- max-width: 100%;
260
- height: auto;
261
- }
262
-
263
- /* --- Listing pages --- */
264
-
265
- .listing-header {
266
- margin-bottom: var(--spacing-lg);
267
- }
268
-
269
- .listing-header h1 {
270
- font-size: var(--font-size-xl);
271
- margin-bottom: 0;
272
- }
273
-
274
- .post-list {
275
- list-style: none;
276
- margin: 0;
277
- padding: 0;
278
- }
279
-
280
- .post-list li {
281
- padding: var(--spacing-sm) 0;
282
- border-bottom: 1px solid var(--color-border);
283
- display: flex;
284
- gap: var(--spacing-md);
285
- align-items: baseline;
286
- }
287
-
288
- .post-list li:first-child {
289
- border-top: 1px solid var(--color-border);
290
- }
291
-
292
- .post-date {
293
- color: var(--color-muted);
294
- font-size: var(--font-size-sm);
295
- white-space: nowrap;
296
- flex-shrink: 0;
297
- }
298
-
299
- .empty-state {
300
- color: var(--color-muted);
301
- padding: var(--spacing-lg) 0;
302
- }
303
-
304
- .empty-state p {
305
- margin: 0 0 var(--spacing-sm);
306
- }
307
-
308
- /* --- Homepage two-column --- */
309
-
310
- .home-grid {
311
- display: grid;
312
- grid-template-columns: 1fr 1fr;
313
- gap: var(--spacing-xl);
314
- }
315
-
316
- @media (max-width: 640px) {
317
- .home-grid {
318
- grid-template-columns: 1fr;
319
- gap: var(--spacing-lg);
320
- }
321
-
322
- .page-body {
323
- flex-direction: column;
324
- }
325
-
326
- .region-left,
327
- .region-right {
328
- width: 100%;
329
- }
330
- }
331
-
332
- .home-section h2 {
333
- font-size: var(--font-size-base);
334
- text-transform: uppercase;
335
- letter-spacing: 0.05em;
336
- color: var(--color-muted);
337
- margin-bottom: var(--spacing-md);
338
- }
339
-
340
- .home-section .post-list li {
341
- flex-direction: column;
342
- gap: var(--spacing-xs);
343
- }
344
-
345
- .view-all {
346
- display: inline-block;
347
- margin-top: var(--spacing-md);
348
- font-size: var(--font-size-sm);
349
- color: var(--color-muted);
350
- }
351
-
352
- .view-all:hover {
353
- color: var(--color-link);
354
- }
355
-
356
- /* --- Single post/doc --- */
357
-
358
- .post-header {
359
- max-width: var(--width-content);
360
- margin-bottom: var(--spacing-lg);
361
- }
362
-
363
- .post-header h1 {
364
- font-size: var(--font-size-xl);
365
- margin-bottom: var(--spacing-sm);
366
- }
367
-
368
- .post-meta {
369
- color: var(--color-muted);
370
- font-size: var(--font-size-sm);
371
- }
372
-
373
- .post-footer {
374
- margin-top: var(--spacing-xl);
375
- padding-top: var(--spacing-md);
376
- border-top: 1px solid var(--color-border);
377
- max-width: var(--width-content);
378
- }
379
-
380
- .post-tags {
381
- display: flex;
382
- flex-wrap: wrap;
383
- gap: var(--spacing-xs);
384
- margin-bottom: var(--spacing-md);
385
- }
386
-
387
- .tag {
388
- font-size: var(--font-size-sm);
389
- color: var(--color-muted);
390
- text-decoration: none;
391
- border: 1px solid var(--color-border);
392
- border-radius: 3px;
393
- padding: 2px 7px;
394
- }
395
-
396
- .tag:hover {
397
- color: var(--color-text);
398
- border-color: var(--color-text);
399
- }
400
-
401
- .tag-list {
402
- list-style: none;
403
- padding: 0;
404
- display: flex;
405
- flex-direction: column;
406
- gap: var(--spacing-xs);
407
- }
408
-
409
- .tag-list li {
410
- display: flex;
411
- align-items: center;
412
- gap: var(--spacing-sm);
413
- }
414
-
415
- .tag-count {
416
- font-size: var(--font-size-sm);
417
- color: var(--color-muted);
418
- }
419
-
420
- .post-collection {
421
- font-size: var(--font-size-sm);
422
- color: var(--color-muted);
423
- }
424
-
425
- /* --- Related posts --- */
426
-
427
- .related-posts {
428
- margin-top: var(--spacing-lg);
429
- }
430
-
431
- .related-label {
432
- font-size: var(--font-size-sm);
433
- text-transform: uppercase;
434
- letter-spacing: 0.05em;
435
- color: var(--color-muted);
436
- margin: 0 0 var(--spacing-sm);
437
- }
438
-
439
- .related-posts ul {
440
- list-style: none;
441
- padding: 0;
442
- margin: 0;
443
- display: flex;
444
- flex-direction: column;
445
- gap: var(--spacing-xs);
446
- }