zinc.css 0.0.0-pre.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Corey McGeachie
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,95 @@
1
+ # 🏖️ zinc.css
2
+
3
+ **A classless CSS framework for semantic HTML.**
4
+
5
+ Drop in one stylesheet and every semantic element looks sharp — no class names,
6
+ no build step, no configuration. Write plain markup; `zinc.css` brings the
7
+ sunshine.
8
+
9
+ ```html
10
+ <!-- one line. that's the install. -->
11
+ <link rel="stylesheet" href="zinc.css" />
12
+
13
+ <h1>Hello, world</h1>
14
+ <p>No classes. <a href="#">Just markup.</a></p>
15
+ <button>It styles itself</button>
16
+ ```
17
+
18
+ ---
19
+
20
+ ### Fonts (optional but recommended)
21
+
22
+ `zinc.css` defaults to **Space Grotesk** for display and body text, and
23
+ **Space Mono** for code — with safe system fallbacks if you skip this step.
24
+
25
+ ```html
26
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
27
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
28
+ <link
29
+ rel="stylesheet"
30
+ href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=Space+Mono:wght@400;700&display=swap"
31
+ />
32
+ ```
33
+
34
+ ## Theming
35
+
36
+ Set hooks on the `<html>` element — no classes anywhere.
37
+
38
+ | Hook | Values | Effect |
39
+ | ------------- | -------------------------------------------------- | ------------------------------------------------ |
40
+ | `data-mode` | `light` · `dark` | Force a color scheme (omit to follow the system) |
41
+ | `data-accent` | `electric` · `hot` · `amber` · `forest` · `violet` | Pick the accent color |
42
+
43
+ ```html
44
+ <html data-mode="dark" data-accent="electric"></html>
45
+ ```
46
+
47
+ ### Tune the tokens
48
+
49
+ Override any of these on `:root` to rebrand without touching the framework:
50
+
51
+ ```css
52
+ :root {
53
+ --accent: #0d9488; /* your brand color */
54
+ --radius: 9px; /* global corner radius */
55
+ --width: 72rem; /* max content width */
56
+ --gutter: 2.5rem; /* page padding */
57
+ --font-sans: "Space Grotesk", system-ui, sans-serif;
58
+ --font-mono: "Space Mono", monospace;
59
+ --font-display: var(--font-sans);
60
+ }
61
+ ```
62
+
63
+ The full token set (neutrals, surfaces, shadows, code panel) is documented at
64
+ the top of [`zinc.css`](./src/lib/zinc.css).
65
+
66
+ ## Optional variant hooks
67
+
68
+ A few **attributes** opt into
69
+ variants:
70
+
71
+ ```html
72
+ <!-- button variants -->
73
+ <button>Primary</button>
74
+ <button data-variant="secondary">Secondary</button>
75
+ <button data-variant="outline">Outline</button>
76
+ <button data-variant="ghost">Ghost</button>
77
+ <button data-variant="danger">Danger</button>
78
+
79
+ <!-- button sizes -->
80
+ <button data-size="sm">Small</button>
81
+ <button data-size="lg">Large</button>
82
+
83
+ <!-- segmented group -->
84
+ <div role="group">
85
+ <button data-variant="secondary">Day</button>
86
+ <button data-variant="secondary">Week</button>
87
+ <button data-variant="secondary">Month</button>
88
+ </div>
89
+
90
+ <!-- a link that looks like a button -->
91
+ <a role="button" href="#">Get started</a>
92
+
93
+ <!-- a toggle switch -->
94
+ <input type="checkbox" role="switch" />
95
+ ```
package/dist/zinc.css ADDED
@@ -0,0 +1,958 @@
1
+ :root {
2
+ color-scheme: light dark;
3
+ --font-sans: "Space Grotesk", ui-sans-serif, system-ui, -apple-system,
4
+ "Segoe UI", Helvetica, Arial, sans-serif;
5
+ --font-mono: "Space Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
6
+ --font-display: var(--font-sans);
7
+ --radius: 6px;
8
+ --radius-lg: 12px;
9
+ --radius-pill: 999px;
10
+ --width: 72rem;
11
+ --gutter: clamp(1.25rem, 4vw, 2.5rem);
12
+ --accent: #2a6ff3;
13
+ --on-accent: #fff;
14
+ --accent-press: color-mix(in srgb, var(--accent) 86%, #000);
15
+ --accent-soft: color-mix(in srgb, var(--accent) 14%, transparent);
16
+ --accent-faint: color-mix(in srgb, var(--accent) 7%, transparent);
17
+ --bg: #faf9f7;
18
+ --surface: #fff;
19
+ --surface-alt: #f1efea;
20
+ --text: #131210;
21
+ --muted: #6c6a64;
22
+ --line: #e4e1da;
23
+ --ink: #131210;
24
+ --shadow: 0 1px 2px #1312100d, 0 14px 30px -18px #13121047;
25
+ --code-bg: #18181b;
26
+ --code-text: #ededf0;
27
+ accent-color: var(--accent);
28
+ caret-color: var(--accent);
29
+ }
30
+
31
+ :root[data-accent="electric"] {
32
+ --accent: #2a6ff3;
33
+ --on-accent: #fff;
34
+ }
35
+
36
+ :root[data-accent="hot"] {
37
+ --accent: #ff2d78;
38
+ --on-accent: #fff;
39
+ }
40
+
41
+ :root[data-accent="amber"] {
42
+ --accent: #f59e0b;
43
+ --on-accent: #1c1407;
44
+ }
45
+
46
+ :root[data-accent="forest"] {
47
+ --accent: #15803d;
48
+ --on-accent: #fff;
49
+ }
50
+
51
+ :root[data-accent="violet"] {
52
+ --accent: #7c3aed;
53
+ --on-accent: #fff;
54
+ }
55
+
56
+ @media (prefers-color-scheme: dark) {
57
+ :root:not([data-mode="light"]) {
58
+ --bg: #0c0c0d;
59
+ --surface: #161618;
60
+ --surface-alt: #1e1e21;
61
+ --text: #f4f3f0;
62
+ --muted: #a3a19a;
63
+ --line: #2a2a2e;
64
+ --ink: #f4f3f0;
65
+ --shadow: 0 1px 2px #0006, 0 18px 40px -20px #000000bf;
66
+ --accent-press: color-mix(in srgb, var(--accent) 82%, #fff);
67
+ }
68
+ }
69
+
70
+ :root[data-mode="dark"] {
71
+ --bg: #0c0c0d;
72
+ --surface: #161618;
73
+ --surface-alt: #1e1e21;
74
+ --text: #f4f3f0;
75
+ --muted: #a3a19a;
76
+ --line: #2a2a2e;
77
+ --ink: #f4f3f0;
78
+ --shadow: 0 1px 2px #0006, 0 18px 40px -20px #000000bf;
79
+ --accent-press: color-mix(in srgb, var(--accent) 82%, #fff);
80
+ }
81
+
82
+ *, :before, :after {
83
+ box-sizing: border-box;
84
+ }
85
+
86
+ * {
87
+ margin: 0;
88
+ }
89
+
90
+ html {
91
+ -webkit-text-size-adjust: 100%;
92
+ background: var(--bg);
93
+ scroll-behavior: smooth;
94
+ scrollbar-color: var(--muted) transparent;
95
+ }
96
+
97
+ body {
98
+ font-family: var(--font-sans);
99
+ color: var(--text);
100
+ background: var(--bg);
101
+ max-width: var(--width);
102
+ padding: var(--gutter);
103
+ -webkit-font-smoothing: antialiased;
104
+ text-rendering: optimizelegibility;
105
+ margin-inline: auto;
106
+ font-size: clamp(1rem, .965rem + .18vw, 1.0625rem);
107
+ line-height: 1.65;
108
+ }
109
+
110
+ ::selection {
111
+ background: var(--accent);
112
+ color: var(--on-accent);
113
+ }
114
+
115
+ :focus-visible {
116
+ outline: 3px solid var(--accent-soft);
117
+ outline-offset: 2px;
118
+ border-radius: 3px;
119
+ }
120
+
121
+ [hidden] {
122
+ display: none !important;
123
+ }
124
+
125
+ @media (prefers-reduced-motion: reduce) {
126
+ * {
127
+ scroll-behavior: auto !important;
128
+ transition-duration: .001ms !important;
129
+ animation-duration: .001ms !important;
130
+ }
131
+ }
132
+
133
+ h1, h2, h3, h4, h5, h6 {
134
+ letter-spacing: -.025em;
135
+ text-wrap: balance;
136
+ color: var(--text);
137
+ font-weight: 700;
138
+ line-height: 1.08;
139
+ }
140
+
141
+ h1 {
142
+ letter-spacing: -.04em;
143
+ font-size: clamp(2.4rem, 1.7rem + 3vw, 3.9rem);
144
+ }
145
+
146
+ h2 {
147
+ letter-spacing: -.032em;
148
+ font-size: clamp(1.8rem, 1.4rem + 1.7vw, 2.55rem);
149
+ }
150
+
151
+ h3 {
152
+ font-size: clamp(1.3rem, 1.15rem + .7vw, 1.65rem);
153
+ }
154
+
155
+ h4 {
156
+ font-size: 1.2rem;
157
+ }
158
+
159
+ h5 {
160
+ text-transform: uppercase;
161
+ letter-spacing: .1em;
162
+ font-size: .95rem;
163
+ }
164
+
165
+ h6 {
166
+ text-transform: uppercase;
167
+ letter-spacing: .14em;
168
+ color: var(--muted);
169
+ font-size: .8rem;
170
+ }
171
+
172
+ :where(h1, h2, h3, h4, h5, h6) {
173
+ margin-block-end: .5em;
174
+ }
175
+
176
+ :where(h2) {
177
+ margin-block-start: 1.7em;
178
+ }
179
+
180
+ :where(h3) {
181
+ margin-block-start: 1.4em;
182
+ }
183
+
184
+ :where(p, ul, ol, dl, blockquote, pre, table, figure, hr, details, fieldset, address, video, audio) {
185
+ margin-block-end: 1.2rem;
186
+ }
187
+
188
+ p {
189
+ text-wrap: pretty;
190
+ }
191
+
192
+ small {
193
+ color: var(--muted);
194
+ font-size: .8125rem;
195
+ }
196
+
197
+ strong, b {
198
+ font-weight: 700;
199
+ }
200
+
201
+ em, i, cite {
202
+ font-style: italic;
203
+ }
204
+
205
+ address {
206
+ font-style: normal;
207
+ }
208
+
209
+ a {
210
+ color: var(--accent);
211
+ text-underline-offset: .18em;
212
+ text-decoration: underline .1em;
213
+ text-decoration-color: var(--accent-soft);
214
+ transition: text-decoration-color .15s, color .15s;
215
+ }
216
+
217
+ a:hover {
218
+ text-decoration-color: var(--accent);
219
+ }
220
+
221
+ mark {
222
+ background: var(--accent);
223
+ color: var(--on-accent);
224
+ border-radius: 4px;
225
+ padding: .05em .28em;
226
+ }
227
+
228
+ ins {
229
+ background: var(--accent-soft);
230
+ border-radius: 3px;
231
+ padding: 0 .2em;
232
+ text-decoration: none;
233
+ }
234
+
235
+ del {
236
+ color: var(--muted);
237
+ }
238
+
239
+ abbr[title] {
240
+ text-underline-offset: .2em;
241
+ cursor: help;
242
+ text-decoration: underline dotted;
243
+ }
244
+
245
+ sub, sup {
246
+ font-size: .72em;
247
+ line-height: 0;
248
+ }
249
+
250
+ ul, ol {
251
+ padding-inline-start: 1.4em;
252
+ }
253
+
254
+ li {
255
+ margin-block: .35em;
256
+ }
257
+
258
+ li::marker {
259
+ color: var(--accent);
260
+ font-weight: 700;
261
+ }
262
+
263
+ ul ul, ul ol, ol ul, ol ol {
264
+ margin-block: .35em;
265
+ }
266
+
267
+ dl {
268
+ grid-template-columns: minmax(7rem, auto) 1fr;
269
+ gap: .5rem 1.5rem;
270
+ display: grid;
271
+ }
272
+
273
+ dt {
274
+ color: var(--text);
275
+ font-weight: 600;
276
+ }
277
+
278
+ dd {
279
+ color: var(--muted);
280
+ margin: 0;
281
+ }
282
+
283
+ blockquote {
284
+ border-inline-start: 4px solid var(--accent);
285
+ color: var(--text);
286
+ padding: .4rem 0 .4rem 1.4rem;
287
+ font-size: 1.18rem;
288
+ line-height: 1.5;
289
+ }
290
+
291
+ blockquote p {
292
+ margin: 0 0 .6rem;
293
+ }
294
+
295
+ blockquote cite {
296
+ color: var(--muted);
297
+ font-size: .875rem;
298
+ font-style: normal;
299
+ font-weight: 600;
300
+ display: block;
301
+ }
302
+
303
+ blockquote cite:before {
304
+ content: "— ";
305
+ }
306
+
307
+ hr {
308
+ background: var(--line);
309
+ border: none;
310
+ height: 2px;
311
+ margin-block: 2rem;
312
+ }
313
+
314
+ code, kbd, samp, pre {
315
+ font-family: var(--font-mono);
316
+ }
317
+
318
+ code {
319
+ background: var(--surface-alt);
320
+ color: var(--text);
321
+ border: 1px solid var(--line);
322
+ border-radius: 5px;
323
+ padding: .12em .42em;
324
+ font-size: .875em;
325
+ }
326
+
327
+ pre {
328
+ background: var(--code-bg);
329
+ color: var(--code-text);
330
+ border-radius: var(--radius-lg);
331
+ tab-size: 2;
332
+ padding: 1.15rem 1.3rem;
333
+ font-size: .875rem;
334
+ line-height: 1.55;
335
+ overflow-x: auto;
336
+ }
337
+
338
+ pre code {
339
+ font-size: inherit;
340
+ color: inherit;
341
+ background: none;
342
+ border: none;
343
+ padding: 0;
344
+ }
345
+
346
+ kbd {
347
+ background: var(--surface);
348
+ color: var(--text);
349
+ border: 1px solid var(--line);
350
+ border-bottom-width: 2px;
351
+ border-radius: 5px;
352
+ padding: .12em .45em;
353
+ font-size: .8em;
354
+ }
355
+
356
+ samp {
357
+ font-size: .875em;
358
+ }
359
+
360
+ img, picture, svg, video, canvas {
361
+ max-width: 100%;
362
+ height: auto;
363
+ }
364
+
365
+ img, video {
366
+ border-radius: var(--radius);
367
+ display: block;
368
+ }
369
+
370
+ svg {
371
+ fill: currentColor;
372
+ }
373
+
374
+ figure {
375
+ text-align: center;
376
+ }
377
+
378
+ figure img, figure video {
379
+ margin-inline: auto;
380
+ }
381
+
382
+ figcaption {
383
+ color: var(--muted);
384
+ margin-top: .6rem;
385
+ font-size: .85rem;
386
+ }
387
+
388
+ table {
389
+ border-collapse: collapse;
390
+ width: 100%;
391
+ font-size: .95rem;
392
+ }
393
+
394
+ caption {
395
+ caption-side: bottom;
396
+ color: var(--muted);
397
+ text-align: left;
398
+ padding-top: .75rem;
399
+ font-size: .85rem;
400
+ }
401
+
402
+ th, td {
403
+ text-align: left;
404
+ vertical-align: top;
405
+ padding: .7rem 1rem;
406
+ }
407
+
408
+ thead th {
409
+ text-transform: uppercase;
410
+ letter-spacing: .08em;
411
+ color: var(--muted);
412
+ border-bottom: 2px solid var(--ink);
413
+ white-space: nowrap;
414
+ font-size: .74rem;
415
+ }
416
+
417
+ tbody td {
418
+ border-bottom: 1px solid var(--line);
419
+ }
420
+
421
+ tbody tr {
422
+ transition: background .12s;
423
+ }
424
+
425
+ tbody tr:hover {
426
+ background: var(--accent-faint);
427
+ }
428
+
429
+ tfoot th, tfoot td {
430
+ border-top: 2px solid var(--ink);
431
+ font-weight: 600;
432
+ }
433
+
434
+ label {
435
+ margin-bottom: .4rem;
436
+ font-size: .92rem;
437
+ font-weight: 600;
438
+ display: block;
439
+ }
440
+
441
+ :is(input[type="text"], input[type="email"], input[type="password"], input[type="search"], input[type="url"], input[type="tel"], input[type="number"], input[type="date"], input[type="datetime-local"], input[type="month"], input[type="week"], input[type="time"], input:not([type])), textarea, select {
442
+ font: inherit;
443
+ width: 100%;
444
+ color: var(--text);
445
+ background: var(--surface);
446
+ border: 1.5px solid var(--line);
447
+ border-radius: var(--radius);
448
+ padding: .62rem .8rem;
449
+ transition: border-color .15s, box-shadow .15s;
450
+ }
451
+
452
+ textarea {
453
+ resize: vertical;
454
+ min-height: 6.5rem;
455
+ line-height: 1.55;
456
+ }
457
+
458
+ :is(input, textarea, select):focus {
459
+ border-color: var(--accent);
460
+ box-shadow: 0 0 0 3px var(--accent-soft);
461
+ outline: none;
462
+ }
463
+
464
+ ::placeholder {
465
+ color: var(--muted);
466
+ opacity: 1;
467
+ }
468
+
469
+ :disabled {
470
+ opacity: .55;
471
+ cursor: not-allowed;
472
+ }
473
+
474
+ :user-invalid {
475
+ border-color: #e5484d;
476
+ }
477
+
478
+ :user-invalid:focus {
479
+ box-shadow: 0 0 0 3px #e5484d38;
480
+ }
481
+
482
+ select {
483
+ -webkit-appearance: none;
484
+ appearance: none;
485
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
486
+ background-position: right .85rem center;
487
+ background-repeat: no-repeat;
488
+ background-size: .85rem;
489
+ padding-right: 2.3rem;
490
+ }
491
+
492
+ select[multiple] {
493
+ background-image: none;
494
+ padding-right: .8rem;
495
+ }
496
+
497
+ input[type="checkbox"]:not([role="switch"]), input[type="radio"] {
498
+ -webkit-appearance: none;
499
+ appearance: none;
500
+ border: 1.5px solid var(--line);
501
+ background: var(--surface);
502
+ cursor: pointer;
503
+ vertical-align: -.22em;
504
+ flex: none;
505
+ place-content: center;
506
+ width: 1.25rem;
507
+ height: 1.25rem;
508
+ transition: background .12s, border-color .12s;
509
+ display: inline-grid;
510
+ }
511
+
512
+ input[type="checkbox"]:not([role="switch"]) {
513
+ border-radius: 5px;
514
+ }
515
+
516
+ input[type="radio"] {
517
+ border-radius: 50%;
518
+ }
519
+
520
+ input[type="checkbox"]:not([role="switch"]):checked, input[type="radio"]:checked {
521
+ background: var(--accent);
522
+ border-color: var(--accent);
523
+ }
524
+
525
+ input[type="checkbox"]:not([role="switch"]):checked:after {
526
+ content: "";
527
+ border: solid var(--on-accent);
528
+ border-width: 0 2.5px 2.5px 0;
529
+ width: .34rem;
530
+ height: .62rem;
531
+ transform: translateY(-1px) rotate(45deg);
532
+ }
533
+
534
+ input[type="radio"]:checked:after {
535
+ content: "";
536
+ background: var(--on-accent);
537
+ border-radius: 50%;
538
+ width: .55rem;
539
+ height: .55rem;
540
+ }
541
+
542
+ input[type="checkbox"][role="switch"] {
543
+ -webkit-appearance: none;
544
+ appearance: none;
545
+ background: var(--line);
546
+ cursor: pointer;
547
+ vertical-align: -.4em;
548
+ border-radius: 999px;
549
+ flex: none;
550
+ width: 2.7rem;
551
+ height: 1.55rem;
552
+ transition: background .2s;
553
+ position: relative;
554
+ }
555
+
556
+ input[type="checkbox"][role="switch"]:after {
557
+ content: "";
558
+ background: #fff;
559
+ border-radius: 50%;
560
+ width: 1.15rem;
561
+ height: 1.15rem;
562
+ transition: left .2s;
563
+ position: absolute;
564
+ top: 50%;
565
+ left: 3px;
566
+ transform: translateY(-50%);
567
+ box-shadow: 0 1px 3px #00000059;
568
+ }
569
+
570
+ input[type="checkbox"][role="switch"]:checked {
571
+ background: var(--accent);
572
+ }
573
+
574
+ input[type="checkbox"][role="switch"]:checked:after {
575
+ left: calc(100% - 1.15rem - 3px);
576
+ }
577
+
578
+ input[type="range"] {
579
+ -webkit-appearance: none;
580
+ appearance: none;
581
+ cursor: pointer;
582
+ background: none;
583
+ width: 100%;
584
+ }
585
+
586
+ input[type="range"]::-webkit-slider-runnable-track {
587
+ background: var(--line);
588
+ border-radius: 999px;
589
+ height: 6px;
590
+ }
591
+
592
+ input[type="range"]::-moz-range-track {
593
+ background: var(--line);
594
+ border-radius: 999px;
595
+ height: 6px;
596
+ }
597
+
598
+ input[type="range"]::-webkit-slider-thumb {
599
+ -webkit-appearance: none;
600
+ appearance: none;
601
+ background: var(--accent);
602
+ border: 2px solid var(--surface);
603
+ border-radius: 50%;
604
+ width: 19px;
605
+ height: 19px;
606
+ margin-top: -6.5px;
607
+ box-shadow: 0 1px 4px #0000004d;
608
+ }
609
+
610
+ input[type="range"]::-moz-range-thumb {
611
+ background: var(--accent);
612
+ border: 2px solid var(--surface);
613
+ border-radius: 50%;
614
+ width: 19px;
615
+ height: 19px;
616
+ }
617
+
618
+ input[type="color"] {
619
+ border: 1.5px solid var(--line);
620
+ border-radius: var(--radius);
621
+ background: var(--surface);
622
+ cursor: pointer;
623
+ width: 3rem;
624
+ height: 2.5rem;
625
+ padding: .25rem;
626
+ }
627
+
628
+ input[type="color"]::-webkit-color-swatch-wrapper {
629
+ padding: 0;
630
+ }
631
+
632
+ input[type="color"]::-webkit-color-swatch {
633
+ border: none;
634
+ border-radius: 3px;
635
+ }
636
+
637
+ input[type="file"] {
638
+ font: inherit;
639
+ color: var(--muted);
640
+ max-width: 100%;
641
+ }
642
+
643
+ input[type="file"]::file-selector-button {
644
+ font: inherit;
645
+ color: var(--text);
646
+ background: var(--surface);
647
+ border: 1.5px solid var(--ink);
648
+ border-radius: var(--radius);
649
+ cursor: pointer;
650
+ margin-right: .85rem;
651
+ padding: .5rem .9rem;
652
+ font-weight: 600;
653
+ transition: background .15s;
654
+ }
655
+
656
+ input[type="file"]::file-selector-button:hover {
657
+ background: var(--surface-alt);
658
+ }
659
+
660
+ fieldset {
661
+ border: 1.5px solid var(--line);
662
+ border-radius: var(--radius-lg);
663
+ padding: 1.2rem 1.3rem;
664
+ }
665
+
666
+ legend {
667
+ letter-spacing: -.01em;
668
+ padding-inline: .5rem;
669
+ font-weight: 700;
670
+ }
671
+
672
+ button, input[type="submit"], input[type="button"], input[type="reset"], a[role="button"], [data-variant] {
673
+ font: inherit;
674
+ color: var(--on-accent);
675
+ background: var(--accent);
676
+ border-radius: var(--radius);
677
+ white-space: nowrap;
678
+ cursor: pointer;
679
+ border: 1.5px solid #0000;
680
+ justify-content: center;
681
+ align-items: center;
682
+ gap: .5rem;
683
+ padding: .62rem 1.15rem;
684
+ font-weight: 600;
685
+ line-height: 1.2;
686
+ text-decoration: none;
687
+ transition: background .15s, transform 60ms, box-shadow .15s, color .15s;
688
+ display: inline-flex;
689
+ }
690
+
691
+ button:hover, input[type="submit"]:hover, input[type="button"]:hover, a[role="button"]:hover, [data-variant]:hover {
692
+ background: var(--accent-press);
693
+ }
694
+
695
+ button:active, input[type="submit"]:active, input[type="button"]:active, a[role="button"]:active, [data-variant]:active {
696
+ transform: translateY(1px);
697
+ }
698
+
699
+ button:disabled, input:disabled[type="submit"], [data-variant]:disabled {
700
+ transform: none;
701
+ }
702
+
703
+ [data-variant="secondary"], button[type="reset"], input[type="reset"] {
704
+ background: var(--surface);
705
+ color: var(--text);
706
+ border-color: var(--ink);
707
+ }
708
+
709
+ [data-variant="secondary"]:hover, button[type="reset"]:hover, input[type="reset"]:hover {
710
+ background: var(--surface-alt);
711
+ }
712
+
713
+ [data-variant="outline"] {
714
+ color: var(--accent);
715
+ border-color: var(--accent);
716
+ background: none;
717
+ }
718
+
719
+ [data-variant="outline"]:hover {
720
+ background: var(--accent-soft);
721
+ }
722
+
723
+ [data-variant="ghost"] {
724
+ color: var(--text);
725
+ background: none;
726
+ border-color: #0000;
727
+ }
728
+
729
+ [data-variant="ghost"]:hover {
730
+ background: var(--surface-alt);
731
+ }
732
+
733
+ [data-variant="danger"] {
734
+ color: #fff;
735
+ background: #e5484d;
736
+ }
737
+
738
+ [data-variant="danger"]:hover {
739
+ background: #cf3b40;
740
+ }
741
+
742
+ [data-size="sm"] {
743
+ border-radius: calc(var(--radius) - 1px);
744
+ padding: .4rem .8rem;
745
+ font-size: .85rem;
746
+ }
747
+
748
+ [data-size="lg"] {
749
+ padding: .85rem 1.6rem;
750
+ font-size: 1.08rem;
751
+ }
752
+
753
+ [role="group"] {
754
+ display: inline-flex;
755
+ }
756
+
757
+ [role="group"] > * {
758
+ border-radius: 0;
759
+ }
760
+
761
+ [role="group"] > :first-child {
762
+ border-start-start-radius: var(--radius);
763
+ border-end-start-radius: var(--radius);
764
+ }
765
+
766
+ [role="group"] > :last-child {
767
+ border-start-end-radius: var(--radius);
768
+ border-end-end-radius: var(--radius);
769
+ }
770
+
771
+ [role="group"] > :not(:first-child) {
772
+ margin-inline-start: -1.5px;
773
+ }
774
+
775
+ article {
776
+ background: var(--surface);
777
+ border: 1px solid var(--line);
778
+ border-radius: var(--radius-lg);
779
+ box-shadow: var(--shadow);
780
+ padding: clamp(1.3rem, 3vw, 1.8rem);
781
+ }
782
+
783
+ article > header {
784
+ margin-bottom: 1rem;
785
+ }
786
+
787
+ article > header > :last-child {
788
+ margin-bottom: 0;
789
+ }
790
+
791
+ article > footer {
792
+ border-top: 1px solid var(--line);
793
+ flex-wrap: wrap;
794
+ align-items: center;
795
+ gap: .75rem;
796
+ margin-top: 1.2rem;
797
+ padding-top: 1rem;
798
+ display: flex;
799
+ }
800
+
801
+ aside {
802
+ background: var(--accent-soft);
803
+ border-inline-start: 4px solid var(--accent);
804
+ border-radius: 0 var(--radius) var(--radius) 0;
805
+ padding: 1rem 1.25rem;
806
+ }
807
+
808
+ aside > :last-child {
809
+ margin-bottom: 0;
810
+ }
811
+
812
+ nav ul {
813
+ flex-wrap: wrap;
814
+ align-items: center;
815
+ gap: .4rem 1.4rem;
816
+ margin: 0;
817
+ padding: 0;
818
+ list-style: none;
819
+ display: flex;
820
+ }
821
+
822
+ nav li {
823
+ margin: 0;
824
+ }
825
+
826
+ nav a {
827
+ color: var(--text);
828
+ font-weight: 600;
829
+ text-decoration: none;
830
+ }
831
+
832
+ nav a:hover, nav a[aria-current] {
833
+ color: var(--accent);
834
+ }
835
+
836
+ details {
837
+ border: 1.5px solid var(--line);
838
+ border-radius: var(--radius);
839
+ background: var(--surface);
840
+ }
841
+
842
+ summary {
843
+ cursor: pointer;
844
+ justify-content: space-between;
845
+ align-items: center;
846
+ gap: 1rem;
847
+ padding: .9rem 1.1rem;
848
+ font-weight: 600;
849
+ list-style: none;
850
+ display: flex;
851
+ }
852
+
853
+ summary::-webkit-details-marker {
854
+ display: none;
855
+ }
856
+
857
+ summary:after {
858
+ content: "+";
859
+ color: var(--muted);
860
+ font-size: 1.4em;
861
+ line-height: 1;
862
+ transition: transform .2s;
863
+ }
864
+
865
+ details[open] summary:after {
866
+ transform: rotate(45deg);
867
+ }
868
+
869
+ details[open] summary {
870
+ border-bottom: 1.5px solid var(--line);
871
+ }
872
+
873
+ details > :not(summary) {
874
+ padding-inline: 1.1rem;
875
+ }
876
+
877
+ details > :not(summary):first-of-type {
878
+ padding-top: .95rem;
879
+ }
880
+
881
+ details > :not(summary):last-child {
882
+ margin-bottom: 0;
883
+ padding-bottom: 1.1rem;
884
+ }
885
+
886
+ dialog {
887
+ max-width: min(32rem, 100vw - 2rem);
888
+ color: var(--text);
889
+ background: var(--surface);
890
+ border: 1px solid var(--line);
891
+ border-radius: var(--radius-lg);
892
+ margin: auto;
893
+ padding: clamp(1.3rem, 4vw, 1.9rem);
894
+ box-shadow: 0 24px 60px -20px #00000080;
895
+ }
896
+
897
+ dialog::backdrop {
898
+ backdrop-filter: blur(2px);
899
+ background: #0808098c;
900
+ }
901
+
902
+ dialog > :last-child {
903
+ margin-bottom: 0;
904
+ }
905
+
906
+ progress, meter {
907
+ -webkit-appearance: none;
908
+ appearance: none;
909
+ background: var(--line);
910
+ border: none;
911
+ border-radius: 999px;
912
+ width: 100%;
913
+ height: .65rem;
914
+ overflow: hidden;
915
+ }
916
+
917
+ progress::-webkit-progress-bar {
918
+ background: var(--line);
919
+ }
920
+
921
+ progress::-webkit-progress-value {
922
+ background: var(--accent);
923
+ border-radius: 999px;
924
+ }
925
+
926
+ progress::-moz-progress-bar {
927
+ background: var(--accent);
928
+ }
929
+
930
+ meter::-webkit-meter-bar {
931
+ background: var(--line);
932
+ border: none;
933
+ }
934
+
935
+ meter::-webkit-meter-optimum-value {
936
+ background: var(--accent);
937
+ }
938
+
939
+ meter::-moz-meter-bar {
940
+ background: var(--accent);
941
+ }
942
+
943
+ footer {
944
+ border-top: 1px solid var(--line);
945
+ color: var(--muted);
946
+ margin-top: 3.5rem;
947
+ padding-top: 1.6rem;
948
+ font-size: .9rem;
949
+ }
950
+
951
+ footer a {
952
+ color: var(--muted);
953
+ text-decoration-color: var(--line);
954
+ }
955
+
956
+ footer a:hover {
957
+ color: var(--accent);
958
+ }
@@ -0,0 +1 @@
1
+ :root{color-scheme:light dark;--font-sans:"Space Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono:"Space Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-display:var(--font-sans);--radius:6px;--radius-lg:12px;--radius-pill:999px;--width:72rem;--gutter:clamp(1.25rem, 4vw, 2.5rem);--accent:#2a6ff3;--on-accent:#fff;--accent-press:color-mix(in srgb, var(--accent) 86%, #000);--accent-soft:color-mix(in srgb, var(--accent) 14%, transparent);--accent-faint:color-mix(in srgb, var(--accent) 7%, transparent);--bg:#faf9f7;--surface:#fff;--surface-alt:#f1efea;--text:#131210;--muted:#6c6a64;--line:#e4e1da;--ink:#131210;--shadow:0 1px 2px #1312100d, 0 14px 30px -18px #13121047;--code-bg:#18181b;--code-text:#ededf0;accent-color:var(--accent);caret-color:var(--accent)}:root[data-accent=electric]{--accent:#2a6ff3;--on-accent:#fff}:root[data-accent=hot]{--accent:#ff2d78;--on-accent:#fff}:root[data-accent=amber]{--accent:#f59e0b;--on-accent:#1c1407}:root[data-accent=forest]{--accent:#15803d;--on-accent:#fff}:root[data-accent=violet]{--accent:#7c3aed;--on-accent:#fff}@media (prefers-color-scheme:dark){:root:not([data-mode=light]){--bg:#0c0c0d;--surface:#161618;--surface-alt:#1e1e21;--text:#f4f3f0;--muted:#a3a19a;--line:#2a2a2e;--ink:#f4f3f0;--shadow:0 1px 2px #0006, 0 18px 40px -20px #000000bf;--accent-press:color-mix(in srgb, var(--accent) 82%, #fff)}}:root[data-mode=dark]{--bg:#0c0c0d;--surface:#161618;--surface-alt:#1e1e21;--text:#f4f3f0;--muted:#a3a19a;--line:#2a2a2e;--ink:#f4f3f0;--shadow:0 1px 2px #0006, 0 18px 40px -20px #000000bf;--accent-press:color-mix(in srgb, var(--accent) 82%, #fff)}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;background:var(--bg);scroll-behavior:smooth;scrollbar-color:var(--muted) transparent}body{font-family:var(--font-sans);color:var(--text);background:var(--bg);max-width:var(--width);padding:var(--gutter);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin-inline:auto;font-size:clamp(1rem,.965rem + .18vw,1.0625rem);line-height:1.65}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:3px solid var(--accent-soft);outline-offset:2px;border-radius:3px}[hidden]{display:none!important}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}}h1,h2,h3,h4,h5,h6{letter-spacing:-.025em;text-wrap:balance;color:var(--text);font-weight:700;line-height:1.08}h1{letter-spacing:-.04em;font-size:clamp(2.4rem,1.7rem + 3vw,3.9rem)}h2{letter-spacing:-.032em;font-size:clamp(1.8rem,1.4rem + 1.7vw,2.55rem)}h3{font-size:clamp(1.3rem,1.15rem + .7vw,1.65rem)}h4{font-size:1.2rem}h5{text-transform:uppercase;letter-spacing:.1em;font-size:.95rem}h6{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-size:.8rem}:where(h1,h2,h3,h4,h5,h6){margin-block-end:.5em}:where(h2){margin-block-start:1.7em}:where(h3){margin-block-start:1.4em}:where(p,ul,ol,dl,blockquote,pre,table,figure,hr,details,fieldset,address,video,audio){margin-block-end:1.2rem}p{text-wrap:pretty}small{color:var(--muted);font-size:.8125rem}strong,b{font-weight:700}em,i,cite{font-style:italic}address{font-style:normal}a{color:var(--accent);text-underline-offset:.18em;text-decoration:underline .1em;text-decoration-color:var(--accent-soft);transition:text-decoration-color .15s,color .15s}a:hover{text-decoration-color:var(--accent)}mark{background:var(--accent);color:var(--on-accent);border-radius:4px;padding:.05em .28em}ins{background:var(--accent-soft);border-radius:3px;padding:0 .2em;text-decoration:none}del{color:var(--muted)}abbr[title]{text-underline-offset:.2em;cursor:help;text-decoration:underline dotted}sub,sup{font-size:.72em;line-height:0}ul,ol{padding-inline-start:1.4em}li{margin-block:.35em}li::marker{color:var(--accent);font-weight:700}ul ul,ul ol,ol ul,ol ol{margin-block:.35em}dl{grid-template-columns:minmax(7rem,auto) 1fr;gap:.5rem 1.5rem;display:grid}dt{color:var(--text);font-weight:600}dd{color:var(--muted);margin:0}blockquote{border-inline-start:4px solid var(--accent);color:var(--text);padding:.4rem 0 .4rem 1.4rem;font-size:1.18rem;line-height:1.5}blockquote p{margin:0 0 .6rem}blockquote cite{color:var(--muted);font-size:.875rem;font-style:normal;font-weight:600;display:block}blockquote cite:before{content:"— "}hr{background:var(--line);border:none;height:2px;margin-block:2rem}code,kbd,samp,pre{font-family:var(--font-mono)}code{background:var(--surface-alt);color:var(--text);border:1px solid var(--line);border-radius:5px;padding:.12em .42em;font-size:.875em}pre{background:var(--code-bg);color:var(--code-text);border-radius:var(--radius-lg);tab-size:2;padding:1.15rem 1.3rem;font-size:.875rem;line-height:1.55;overflow-x:auto}pre code{font-size:inherit;color:inherit;background:0 0;border:none;padding:0}kbd{background:var(--surface);color:var(--text);border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:.12em .45em;font-size:.8em}samp{font-size:.875em}img,picture,svg,video,canvas{max-width:100%;height:auto}img,video{border-radius:var(--radius);display:block}svg{fill:currentColor}figure{text-align:center}figure img,figure video{margin-inline:auto}figcaption{color:var(--muted);margin-top:.6rem;font-size:.85rem}table{border-collapse:collapse;width:100%;font-size:.95rem}caption{caption-side:bottom;color:var(--muted);text-align:left;padding-top:.75rem;font-size:.85rem}th,td{text-align:left;vertical-align:top;padding:.7rem 1rem}thead th{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-bottom:2px solid var(--ink);white-space:nowrap;font-size:.74rem}tbody td{border-bottom:1px solid var(--line)}tbody tr{transition:background .12s}tbody tr:hover{background:var(--accent-faint)}tfoot th,tfoot td{border-top:2px solid var(--ink);font-weight:600}label{margin-bottom:.4rem;font-size:.92rem;font-weight:600;display:block}:is(input[type=text],input[type=email],input[type=password],input[type=search],input[type=url],input[type=tel],input[type=number],input[type=date],input[type=datetime-local],input[type=month],input[type=week],input[type=time],input:not([type])),textarea,select{font:inherit;width:100%;color:var(--text);background:var(--surface);border:1.5px solid var(--line);border-radius:var(--radius);padding:.62rem .8rem;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;min-height:6.5rem;line-height:1.55}:is(input,textarea,select):focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}::placeholder{color:var(--muted);opacity:1}:disabled{opacity:.55;cursor:not-allowed}:user-invalid{border-color:#e5484d}:user-invalid:focus{box-shadow:0 0 0 3px #e5484d38}select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%23999' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-position:right .85rem center;background-repeat:no-repeat;background-size:.85rem;padding-right:2.3rem}select[multiple]{background-image:none;padding-right:.8rem}input[type=checkbox]:not([role=switch]),input[type=radio]{-webkit-appearance:none;appearance:none;border:1.5px solid var(--line);background:var(--surface);cursor:pointer;vertical-align:-.22em;flex:none;place-content:center;width:1.25rem;height:1.25rem;transition:background .12s,border-color .12s;display:inline-grid}input[type=checkbox]:not([role=switch]){border-radius:5px}input[type=radio]{border-radius:50%}input[type=checkbox]:not([role=switch]):checked,input[type=radio]:checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox]:not([role=switch]):checked:after{content:"";border:solid var(--on-accent);border-width:0 2.5px 2.5px 0;width:.34rem;height:.62rem;transform:translateY(-1px)rotate(45deg)}input[type=radio]:checked:after{content:"";background:var(--on-accent);border-radius:50%;width:.55rem;height:.55rem}input[type=checkbox][role=switch]{-webkit-appearance:none;appearance:none;background:var(--line);cursor:pointer;vertical-align:-.4em;border-radius:999px;flex:none;width:2.7rem;height:1.55rem;transition:background .2s;position:relative}input[type=checkbox][role=switch]:after{content:"";background:#fff;border-radius:50%;width:1.15rem;height:1.15rem;transition:left .2s;position:absolute;top:50%;left:3px;transform:translateY(-50%);box-shadow:0 1px 3px #00000059}input[type=checkbox][role=switch]:checked{background:var(--accent)}input[type=checkbox][role=switch]:checked:after{left:calc(100% - 1.15rem - 3px)}input[type=range]{-webkit-appearance:none;appearance:none;cursor:pointer;background:0 0;width:100%}input[type=range]::-webkit-slider-runnable-track{background:var(--line);border-radius:999px;height:6px}input[type=range]::-moz-range-track{background:var(--line);border-radius:999px;height:6px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--accent);border:2px solid var(--surface);border-radius:50%;width:19px;height:19px;margin-top:-6.5px;box-shadow:0 1px 4px #0000004d}input[type=range]::-moz-range-thumb{background:var(--accent);border:2px solid var(--surface);border-radius:50%;width:19px;height:19px}input[type=color]{border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer;width:3rem;height:2.5rem;padding:.25rem}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:none;border-radius:3px}input[type=file]{font:inherit;color:var(--muted);max-width:100%}input[type=file]::file-selector-button{font:inherit;color:var(--text);background:var(--surface);border:1.5px solid var(--ink);border-radius:var(--radius);cursor:pointer;margin-right:.85rem;padding:.5rem .9rem;font-weight:600;transition:background .15s}input[type=file]::file-selector-button:hover{background:var(--surface-alt)}fieldset{border:1.5px solid var(--line);border-radius:var(--radius-lg);padding:1.2rem 1.3rem}legend{letter-spacing:-.01em;padding-inline:.5rem;font-weight:700}button,input[type=submit],input[type=button],input[type=reset],a[role=button],[data-variant]{font:inherit;color:var(--on-accent);background:var(--accent);border-radius:var(--radius);white-space:nowrap;cursor:pointer;border:1.5px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.62rem 1.15rem;font-weight:600;line-height:1.2;text-decoration:none;transition:background .15s,transform 60ms,box-shadow .15s,color .15s;display:inline-flex}button:hover,input[type=submit]:hover,input[type=button]:hover,a[role=button]:hover,[data-variant]:hover{background:var(--accent-press)}button:active,input[type=submit]:active,input[type=button]:active,a[role=button]:active,[data-variant]:active{transform:translateY(1px)}button:disabled,input:disabled[type=submit],[data-variant]:disabled{transform:none}[data-variant=secondary],button[type=reset],input[type=reset]{background:var(--surface);color:var(--text);border-color:var(--ink)}[data-variant=secondary]:hover,button[type=reset]:hover,input[type=reset]:hover{background:var(--surface-alt)}[data-variant=outline]{color:var(--accent);border-color:var(--accent);background:0 0}[data-variant=outline]:hover{background:var(--accent-soft)}[data-variant=ghost]{color:var(--text);background:0 0;border-color:#0000}[data-variant=ghost]:hover{background:var(--surface-alt)}[data-variant=danger]{color:#fff;background:#e5484d}[data-variant=danger]:hover{background:#cf3b40}[data-size=sm]{border-radius:calc(var(--radius) - 1px);padding:.4rem .8rem;font-size:.85rem}[data-size=lg]{padding:.85rem 1.6rem;font-size:1.08rem}[role=group]{display:inline-flex}[role=group]>*{border-radius:0}[role=group]>:first-child{border-start-start-radius:var(--radius);border-end-start-radius:var(--radius)}[role=group]>:last-child{border-start-end-radius:var(--radius);border-end-end-radius:var(--radius)}[role=group]>:not(:first-child){margin-inline-start:-1.5px}article{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:clamp(1.3rem,3vw,1.8rem)}article>header{margin-bottom:1rem}article>header>:last-child{margin-bottom:0}article>footer{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.2rem;padding-top:1rem;display:flex}aside{background:var(--accent-soft);border-inline-start:4px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;padding:1rem 1.25rem}aside>:last-child{margin-bottom:0}nav ul{flex-wrap:wrap;align-items:center;gap:.4rem 1.4rem;margin:0;padding:0;list-style:none;display:flex}nav li{margin:0}nav a{color:var(--text);font-weight:600;text-decoration:none}nav a:hover,nav a[aria-current]{color:var(--accent)}details{border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface)}summary{cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.1rem;font-weight:600;list-style:none;display:flex}summary::-webkit-details-marker{display:none}summary:after{content:"+";color:var(--muted);font-size:1.4em;line-height:1;transition:transform .2s}details[open] summary:after{transform:rotate(45deg)}details[open] summary{border-bottom:1.5px solid var(--line)}details>:not(summary){padding-inline:1.1rem}details>:not(summary):first-of-type{padding-top:.95rem}details>:not(summary):last-child{margin-bottom:0;padding-bottom:1.1rem}dialog{max-width:min(32rem,100vw - 2rem);color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);margin:auto;padding:clamp(1.3rem,4vw,1.9rem);box-shadow:0 24px 60px -20px #00000080}dialog::backdrop{backdrop-filter:blur(2px);background:#0808098c}dialog>:last-child{margin-bottom:0}progress,meter{-webkit-appearance:none;appearance:none;background:var(--line);border:none;border-radius:999px;width:100%;height:.65rem;overflow:hidden}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--accent);border-radius:999px}progress::-moz-progress-bar{background:var(--accent)}meter::-webkit-meter-bar{background:var(--line);border:none}meter::-webkit-meter-optimum-value{background:var(--accent)}meter::-moz-meter-bar{background:var(--accent)}footer{border-top:1px solid var(--line);color:var(--muted);margin-top:3.5rem;padding-top:1.6rem;font-size:.9rem}footer a{color:var(--muted);text-decoration-color:var(--line)}footer a:hover{color:var(--accent)}
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "zinc.css",
3
+ "version": "0.0.0-pre.1",
4
+ "description": "A classless CSS framework for semantic HTML. Sun-bleached, coastal, one bright accent. No classes, no build step.",
5
+ "license": "MIT",
6
+ "author": "Corey McGeachie",
7
+ "type": "module",
8
+ "main": "dist/zinc.css",
9
+ "style": "dist/zinc.css",
10
+ "exports": {
11
+ ".": "./dist/zinc.css",
12
+ "./min": "./dist/zinc.min.css"
13
+ },
14
+ "files": [
15
+ "dist/zinc.css",
16
+ "dist/zinc.min.css",
17
+ "README.md",
18
+ "LICENSE"
19
+ ],
20
+ "scripts": {
21
+ "build": "node build.js",
22
+ "dev": "http-server . -c-1 -o /tests/",
23
+ "prepublishOnly": "pnpm run build"
24
+ },
25
+ "keywords": [
26
+ "css",
27
+ "classless",
28
+ "framework",
29
+ "semantic-html",
30
+ "no-class",
31
+ "dark-mode",
32
+ "design-system",
33
+ "zinc"
34
+ ],
35
+ "homepage": "https://github.com/Rkaede/zinc.css#readme",
36
+ "repository": {
37
+ "type": "git",
38
+ "url": "https://github.com/Rkaede/zinc.css.git"
39
+ },
40
+ "devDependencies": {
41
+ "http-server": "^14.1.1",
42
+ "lightningcss": "^1.32.0"
43
+ },
44
+ "packageManager": "pnpm@9.15.3+sha512.1f79bc245a66eb0b07c5d4d83131240774642caaa86ef7d0434ab47c0d16f66b04e21e0c086eb61e62c77efc4d7f7ec071afad3796af64892fae66509173893a"
45
+ }