@pyreon/create-zero 0.1.1

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,629 @@
1
+ /* ─── Reset & Base ────────────────────────────────────────────────────────── */
2
+
3
+ *,
4
+ *::before,
5
+ *::after {
6
+ box-sizing: border-box;
7
+ margin: 0;
8
+ padding: 0;
9
+ }
10
+
11
+ :root {
12
+ --font-sans: 'Inter', system-ui, -apple-system, sans-serif;
13
+ --font-mono: 'JetBrains Mono', 'Fira Code', ui-monospace, monospace;
14
+
15
+ /* Colors — neutral palette with electric accent */
16
+ --c-bg: #0a0a0b;
17
+ --c-surface: #141416;
18
+ --c-surface-hover: #1c1c20;
19
+ --c-border: #27272a;
20
+ --c-border-subtle: #1e1e22;
21
+ --c-text: #fafafa;
22
+ --c-text-secondary: #a1a1aa;
23
+ --c-text-muted: #71717a;
24
+ --c-accent: #6d5cff;
25
+ --c-accent-hover: #7d6fff;
26
+ --c-accent-glow: rgba(109, 92, 255, 0.15);
27
+ --c-accent-subtle: rgba(109, 92, 255, 0.08);
28
+ --c-success: #22c55e;
29
+ --c-warning: #eab308;
30
+ --c-danger: #ef4444;
31
+
32
+ /* Spacing */
33
+ --space-xs: 0.25rem;
34
+ --space-sm: 0.5rem;
35
+ --space-md: 1rem;
36
+ --space-lg: 1.5rem;
37
+ --space-xl: 2rem;
38
+ --space-2xl: 3rem;
39
+ --space-3xl: 4rem;
40
+
41
+ /* Radii */
42
+ --radius-sm: 6px;
43
+ --radius-md: 10px;
44
+ --radius-lg: 16px;
45
+ --radius-full: 9999px;
46
+
47
+ /* Transitions */
48
+ --ease: cubic-bezier(0.4, 0, 0.2, 1);
49
+ --duration: 150ms;
50
+ }
51
+
52
+ /* ─── Light theme ─────────────────────────────────────────────────────────── */
53
+
54
+ [data-theme='light'] {
55
+ --c-bg: #ffffff;
56
+ --c-surface: #f4f4f5;
57
+ --c-surface-hover: #e4e4e7;
58
+ --c-border: #d4d4d8;
59
+ --c-border-subtle: #e4e4e7;
60
+ --c-text: #18181b;
61
+ --c-text-secondary: #52525b;
62
+ --c-text-muted: #a1a1aa;
63
+ --c-accent: #5b4cdb;
64
+ --c-accent-hover: #4c3fc7;
65
+ --c-accent-glow: rgba(91, 76, 219, 0.12);
66
+ --c-accent-subtle: rgba(91, 76, 219, 0.06);
67
+ --c-success: #16a34a;
68
+ --c-warning: #ca8a04;
69
+ --c-danger: #dc2626;
70
+ }
71
+
72
+ html {
73
+ color-scheme: dark light;
74
+ -webkit-font-smoothing: antialiased;
75
+ -moz-osx-font-smoothing: grayscale;
76
+ }
77
+
78
+ body {
79
+ font-family: var(--font-sans);
80
+ background: var(--c-bg);
81
+ color: var(--c-text);
82
+ line-height: 1.6;
83
+ min-height: 100dvh;
84
+ transition:
85
+ background-color 0.2s ease,
86
+ color 0.2s ease;
87
+ }
88
+
89
+ a {
90
+ color: var(--c-accent);
91
+ text-decoration: none;
92
+ transition: color var(--duration) var(--ease);
93
+ }
94
+
95
+ a:hover {
96
+ color: var(--c-accent-hover);
97
+ }
98
+
99
+ code {
100
+ font-family: var(--font-mono);
101
+ font-size: 0.875em;
102
+ background: var(--c-surface);
103
+ border: 1px solid var(--c-border);
104
+ border-radius: var(--radius-sm);
105
+ padding: 0.15em 0.4em;
106
+ }
107
+
108
+ pre {
109
+ font-family: var(--font-mono);
110
+ font-size: 0.875rem;
111
+ background: var(--c-surface);
112
+ border: 1px solid var(--c-border);
113
+ border-radius: var(--radius-md);
114
+ padding: var(--space-lg);
115
+ overflow-x: auto;
116
+ line-height: 1.7;
117
+ }
118
+
119
+ pre code {
120
+ background: none;
121
+ border: none;
122
+ padding: 0;
123
+ font-size: inherit;
124
+ }
125
+
126
+ /* ─── Layout ──────────────────────────────────────────────────────────────── */
127
+
128
+ .app-header {
129
+ position: sticky;
130
+ top: 0;
131
+ z-index: 50;
132
+ backdrop-filter: blur(12px) saturate(180%);
133
+ background: color-mix(in srgb, var(--c-bg) 80%, transparent);
134
+ border-bottom: 1px solid var(--c-border-subtle);
135
+ }
136
+
137
+ .nav-active {
138
+ color: var(--c-text) !important;
139
+ background: var(--c-surface) !important;
140
+ }
141
+
142
+ .theme-toggle {
143
+ display: inline-flex;
144
+ align-items: center;
145
+ justify-content: center;
146
+ width: 36px;
147
+ height: 36px;
148
+ border: 1px solid var(--c-border);
149
+ border-radius: var(--radius-sm);
150
+ background: var(--c-surface);
151
+ color: var(--c-text-secondary);
152
+ cursor: pointer;
153
+ transition: all var(--duration) var(--ease);
154
+ }
155
+
156
+ .theme-toggle:hover {
157
+ color: var(--c-text);
158
+ border-color: var(--c-text-muted);
159
+ background: var(--c-surface-hover);
160
+ }
161
+
162
+ .app-header-inner {
163
+ max-width: 1100px;
164
+ margin: 0 auto;
165
+ padding: 0 var(--space-xl);
166
+ height: 60px;
167
+ display: flex;
168
+ align-items: center;
169
+ justify-content: space-between;
170
+ }
171
+
172
+ .app-logo {
173
+ display: flex;
174
+ align-items: center;
175
+ gap: var(--space-sm);
176
+ font-weight: 700;
177
+ font-size: 1.05rem;
178
+ color: var(--c-text);
179
+ letter-spacing: -0.02em;
180
+ }
181
+
182
+ .app-logo .logo-mark {
183
+ display: inline-flex;
184
+ align-items: center;
185
+ justify-content: center;
186
+ width: 28px;
187
+ height: 28px;
188
+ background: linear-gradient(135deg, var(--c-accent), #a78bfa);
189
+ border-radius: var(--radius-sm);
190
+ font-size: 0.85rem;
191
+ }
192
+
193
+ .app-nav {
194
+ display: flex;
195
+ align-items: center;
196
+ gap: var(--space-xs);
197
+ }
198
+
199
+ .app-nav a {
200
+ color: var(--c-text-secondary);
201
+ font-size: 0.9rem;
202
+ font-weight: 500;
203
+ padding: var(--space-xs) var(--space-md);
204
+ border-radius: var(--radius-sm);
205
+ transition: all var(--duration) var(--ease);
206
+ }
207
+
208
+ .app-nav a:hover {
209
+ color: var(--c-text);
210
+ background: var(--c-surface);
211
+ }
212
+
213
+ .app-main {
214
+ max-width: 1100px;
215
+ margin: 0 auto;
216
+ padding: var(--space-2xl) var(--space-xl);
217
+ min-height: calc(100dvh - 60px - 80px);
218
+ }
219
+
220
+ .app-footer {
221
+ border-top: 1px solid var(--c-border-subtle);
222
+ text-align: center;
223
+ padding: var(--space-xl);
224
+ color: var(--c-text-muted);
225
+ font-size: 0.85rem;
226
+ }
227
+
228
+ /* ─── Components ──────────────────────────────────────────────────────────── */
229
+
230
+ .btn {
231
+ display: inline-flex;
232
+ align-items: center;
233
+ justify-content: center;
234
+ gap: var(--space-sm);
235
+ padding: 0.6rem 1.25rem;
236
+ font-family: inherit;
237
+ font-size: 0.9rem;
238
+ font-weight: 600;
239
+ border: none;
240
+ border-radius: var(--radius-sm);
241
+ cursor: pointer;
242
+ transition: all var(--duration) var(--ease);
243
+ }
244
+
245
+ .btn-primary {
246
+ background: var(--c-accent);
247
+ color: white;
248
+ box-shadow: 0 0 0 0 var(--c-accent-glow);
249
+ }
250
+
251
+ .btn-primary:hover {
252
+ background: var(--c-accent-hover);
253
+ box-shadow: 0 0 20px 4px var(--c-accent-glow);
254
+ transform: translateY(-1px);
255
+ }
256
+
257
+ .btn-secondary {
258
+ background: var(--c-surface);
259
+ color: var(--c-text);
260
+ border: 1px solid var(--c-border);
261
+ }
262
+
263
+ .btn-secondary:hover {
264
+ background: var(--c-surface-hover);
265
+ border-color: var(--c-text-muted);
266
+ }
267
+
268
+ .card {
269
+ background: var(--c-surface);
270
+ border: 1px solid var(--c-border);
271
+ border-radius: var(--radius-md);
272
+ padding: var(--space-lg);
273
+ transition: all var(--duration) var(--ease);
274
+ }
275
+
276
+ .card:hover {
277
+ border-color: var(--c-accent);
278
+ box-shadow: 0 0 24px -4px var(--c-accent-glow);
279
+ transform: translateY(-2px);
280
+ }
281
+
282
+ .badge {
283
+ display: inline-flex;
284
+ align-items: center;
285
+ gap: var(--space-xs);
286
+ font-size: 0.75rem;
287
+ font-weight: 600;
288
+ text-transform: uppercase;
289
+ letter-spacing: 0.06em;
290
+ padding: 0.25rem 0.65rem;
291
+ border-radius: var(--radius-full);
292
+ background: var(--c-accent-subtle);
293
+ color: var(--c-accent);
294
+ border: 1px solid rgba(109, 92, 255, 0.2);
295
+ }
296
+
297
+ /* ─── Hero ────────────────────────────────────────────────────────────────── */
298
+
299
+ .hero {
300
+ text-align: center;
301
+ padding: var(--space-3xl) 0;
302
+ }
303
+
304
+ .hero h1 {
305
+ font-size: clamp(2.5rem, 6vw, 4rem);
306
+ font-weight: 800;
307
+ letter-spacing: -0.03em;
308
+ line-height: 1.1;
309
+ margin-bottom: var(--space-lg);
310
+ }
311
+
312
+ .hero h1 .gradient {
313
+ background: linear-gradient(135deg, var(--c-accent), #a78bfa, #f472b6);
314
+ background-clip: text;
315
+ -webkit-background-clip: text;
316
+ -webkit-text-fill-color: transparent;
317
+ }
318
+
319
+ .hero p {
320
+ font-size: 1.15rem;
321
+ color: var(--c-text-secondary);
322
+ max-width: 560px;
323
+ margin: 0 auto var(--space-xl);
324
+ line-height: 1.7;
325
+ }
326
+
327
+ .hero-actions {
328
+ display: flex;
329
+ gap: var(--space-md);
330
+ justify-content: center;
331
+ flex-wrap: wrap;
332
+ }
333
+
334
+ /* ─── Feature grid ────────────────────────────────────────────────────────── */
335
+
336
+ .features {
337
+ display: grid;
338
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
339
+ gap: var(--space-lg);
340
+ margin-top: var(--space-3xl);
341
+ }
342
+
343
+ .feature-icon {
344
+ font-size: 1.5rem;
345
+ margin-bottom: var(--space-md);
346
+ width: 44px;
347
+ height: 44px;
348
+ display: flex;
349
+ align-items: center;
350
+ justify-content: center;
351
+ background: var(--c-accent-subtle);
352
+ border-radius: var(--radius-sm);
353
+ }
354
+
355
+ .feature h3 {
356
+ font-size: 1rem;
357
+ font-weight: 700;
358
+ margin-bottom: var(--space-sm);
359
+ letter-spacing: -0.01em;
360
+ }
361
+
362
+ .feature p {
363
+ font-size: 0.9rem;
364
+ color: var(--c-text-secondary);
365
+ line-height: 1.6;
366
+ }
367
+
368
+ /* ─── Code snippet ────────────────────────────────────────────────────────── */
369
+
370
+ .code-block {
371
+ margin-top: var(--space-3xl);
372
+ text-align: left;
373
+ max-width: 640px;
374
+ margin-left: auto;
375
+ margin-right: auto;
376
+ }
377
+
378
+ .code-block-header {
379
+ display: flex;
380
+ align-items: center;
381
+ justify-content: space-between;
382
+ padding: var(--space-sm) var(--space-lg);
383
+ background: var(--c-surface);
384
+ border: 1px solid var(--c-border);
385
+ border-bottom: none;
386
+ border-radius: var(--radius-md) var(--radius-md) 0 0;
387
+ font-size: 0.8rem;
388
+ color: var(--c-text-muted);
389
+ }
390
+
391
+ .code-block pre {
392
+ border-radius: 0 0 var(--radius-md) var(--radius-md);
393
+ margin: 0;
394
+ border-top: 1px solid var(--c-border);
395
+ }
396
+
397
+ .code-block .kw {
398
+ color: #c084fc;
399
+ }
400
+ .code-block .fn {
401
+ color: #60a5fa;
402
+ }
403
+ .code-block .str {
404
+ color: #34d399;
405
+ }
406
+ .code-block .cm {
407
+ color: var(--c-text-muted);
408
+ }
409
+ .code-block .tag {
410
+ color: #f472b6;
411
+ }
412
+ .code-block .attr {
413
+ color: #fbbf24;
414
+ }
415
+
416
+ /* ─── Counter demo ────────────────────────────────────────────────────────── */
417
+
418
+ .counter-demo {
419
+ max-width: 480px;
420
+ margin: var(--space-2xl) auto;
421
+ text-align: center;
422
+ }
423
+
424
+ .counter-display {
425
+ font-size: 5rem;
426
+ font-weight: 800;
427
+ font-variant-numeric: tabular-nums;
428
+ letter-spacing: -0.04em;
429
+ background: linear-gradient(135deg, var(--c-accent), #a78bfa);
430
+ background-clip: text;
431
+ -webkit-background-clip: text;
432
+ -webkit-text-fill-color: transparent;
433
+ margin: var(--space-xl) 0;
434
+ line-height: 1;
435
+ }
436
+
437
+ .counter-controls {
438
+ display: flex;
439
+ gap: var(--space-md);
440
+ justify-content: center;
441
+ margin-bottom: var(--space-xl);
442
+ }
443
+
444
+ .counter-controls .btn {
445
+ min-width: 52px;
446
+ font-size: 1.25rem;
447
+ padding: 0.5rem 1rem;
448
+ }
449
+
450
+ .counter-meta {
451
+ padding: var(--space-lg);
452
+ background: var(--c-surface);
453
+ border: 1px solid var(--c-border);
454
+ border-radius: var(--radius-md);
455
+ font-size: 0.85rem;
456
+ color: var(--c-text-secondary);
457
+ line-height: 1.8;
458
+ font-family: var(--font-mono);
459
+ }
460
+
461
+ /* ─── Posts ────────────────────────────────────────────────────────────────── */
462
+
463
+ .posts-grid {
464
+ display: grid;
465
+ gap: var(--space-md);
466
+ margin-top: var(--space-xl);
467
+ }
468
+
469
+ .post-card {
470
+ display: flex;
471
+ align-items: center;
472
+ gap: var(--space-lg);
473
+ text-decoration: none;
474
+ color: inherit;
475
+ }
476
+
477
+ .post-card:hover {
478
+ color: inherit;
479
+ }
480
+
481
+ .post-card .post-id {
482
+ font-family: var(--font-mono);
483
+ font-size: 0.8rem;
484
+ color: var(--c-text-muted);
485
+ min-width: 28px;
486
+ }
487
+
488
+ .post-card h3 {
489
+ font-size: 0.95rem;
490
+ font-weight: 600;
491
+ }
492
+
493
+ .post-card p {
494
+ font-size: 0.85rem;
495
+ color: var(--c-text-secondary);
496
+ margin-top: var(--space-xs);
497
+ }
498
+
499
+ .post-detail {
500
+ max-width: 680px;
501
+ }
502
+
503
+ .post-detail h1 {
504
+ font-size: 2rem;
505
+ font-weight: 800;
506
+ letter-spacing: -0.02em;
507
+ margin-bottom: var(--space-md);
508
+ }
509
+
510
+ .post-detail .post-meta {
511
+ display: flex;
512
+ gap: var(--space-lg);
513
+ color: var(--c-text-muted);
514
+ font-size: 0.85rem;
515
+ margin-bottom: var(--space-xl);
516
+ padding-bottom: var(--space-xl);
517
+ border-bottom: 1px solid var(--c-border);
518
+ }
519
+
520
+ .post-detail .post-body {
521
+ font-size: 1.05rem;
522
+ line-height: 1.8;
523
+ color: var(--c-text-secondary);
524
+ }
525
+
526
+ /* ─── About ───────────────────────────────────────────────────────────────── */
527
+
528
+ .about-grid {
529
+ display: grid;
530
+ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
531
+ gap: var(--space-lg);
532
+ margin-top: var(--space-xl);
533
+ }
534
+
535
+ .about-stat {
536
+ text-align: center;
537
+ padding: var(--space-xl);
538
+ }
539
+
540
+ .about-stat .stat-value {
541
+ font-size: 2.5rem;
542
+ font-weight: 800;
543
+ color: var(--c-accent);
544
+ }
545
+
546
+ .about-stat .stat-label {
547
+ font-size: 0.85rem;
548
+ color: var(--c-text-muted);
549
+ margin-top: var(--space-xs);
550
+ }
551
+
552
+ /* ─── Error / Loading ─────────────────────────────────────────────────────── */
553
+
554
+ .error-page,
555
+ .loading-page {
556
+ display: flex;
557
+ flex-direction: column;
558
+ align-items: center;
559
+ justify-content: center;
560
+ min-height: 50vh;
561
+ text-align: center;
562
+ gap: var(--space-md);
563
+ }
564
+
565
+ .error-page .error-code {
566
+ font-size: 6rem;
567
+ font-weight: 800;
568
+ color: var(--c-danger);
569
+ line-height: 1;
570
+ opacity: 0.6;
571
+ }
572
+
573
+ .loading-spinner {
574
+ width: 40px;
575
+ height: 40px;
576
+ border: 3px solid var(--c-border);
577
+ border-top-color: var(--c-accent);
578
+ border-radius: 50%;
579
+ animation: spin 0.8s linear infinite;
580
+ }
581
+
582
+ @keyframes spin {
583
+ to {
584
+ transform: rotate(360deg);
585
+ }
586
+ }
587
+
588
+ /* ─── Page headers ────────────────────────────────────────────────────────── */
589
+
590
+ .page-header {
591
+ margin-bottom: var(--space-2xl);
592
+ }
593
+
594
+ .page-header h1 {
595
+ font-size: 2rem;
596
+ font-weight: 800;
597
+ letter-spacing: -0.02em;
598
+ margin-bottom: var(--space-sm);
599
+ }
600
+
601
+ .page-header p {
602
+ color: var(--c-text-secondary);
603
+ font-size: 1.05rem;
604
+ }
605
+
606
+ /* ─── Responsive ──────────────────────────────────────────────────────────── */
607
+
608
+ @media (max-width: 640px) {
609
+ .app-header-inner {
610
+ padding: 0 var(--space-md);
611
+ }
612
+
613
+ .app-main {
614
+ padding: var(--space-xl) var(--space-md);
615
+ }
616
+
617
+ .hero {
618
+ padding: var(--space-xl) 0;
619
+ }
620
+
621
+ .hero-actions {
622
+ flex-direction: column;
623
+ align-items: center;
624
+ }
625
+
626
+ .features {
627
+ grid-template-columns: 1fr;
628
+ }
629
+ }