@leftium/nimble.css 0.2.0 → 0.4.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,946 +0,0 @@
1
- @charset "UTF-8";
2
- @layer nimble.reset, nimble.base, nimble.utilities;
3
- @layer nimble.reset {
4
- :where(*:not(progress)),
5
- :where(*::before),
6
- :where(*::after) {
7
- box-sizing: border-box;
8
- background-repeat: no-repeat;
9
- }
10
- :where(html) {
11
- line-height: 1.5;
12
- -webkit-text-size-adjust: 100%;
13
- tab-size: 4;
14
- }
15
- :where(body) {
16
- margin: 0;
17
- }
18
- :where(h1) {
19
- font-size: 2em;
20
- margin-block: 0.67em;
21
- }
22
- :where(hr) {
23
- height: 0;
24
- color: inherit;
25
- }
26
- :where(nav) :where(ol, ul) {
27
- list-style-type: none;
28
- padding: 0;
29
- }
30
- :where(pre) {
31
- font-family: monospace, monospace;
32
- font-size: 1em;
33
- }
34
- :where(abbr[title]) {
35
- text-decoration: underline dotted;
36
- }
37
- :where(b, strong) {
38
- font-weight: bolder;
39
- }
40
- :where(code, kbd, samp) {
41
- font-family: monospace, monospace;
42
- font-size: 1em;
43
- }
44
- :where(small) {
45
- font-size: 80%;
46
- }
47
- :where(sub, sup) {
48
- font-size: 75%;
49
- line-height: 0;
50
- position: relative;
51
- vertical-align: baseline;
52
- }
53
- :where(sub) {
54
- bottom: -0.25em;
55
- }
56
- :where(sup) {
57
- top: -0.5em;
58
- }
59
- :where(iframe) {
60
- border-style: none;
61
- }
62
- :where(table) {
63
- border-collapse: collapse;
64
- border-color: currentColor;
65
- text-indent: 0;
66
- }
67
- :where(button, input, select, textarea) {
68
- font: inherit;
69
- letter-spacing: inherit;
70
- }
71
- :where(button, [type=button], [type=reset], [type=submit]) {
72
- -webkit-appearance: button;
73
- }
74
- :where(fieldset) {
75
- border: 1px solid #a0a0a0;
76
- }
77
- :where(progress) {
78
- vertical-align: baseline;
79
- }
80
- :where(textarea) {
81
- resize: vertical;
82
- overflow: auto;
83
- }
84
- :where([type=search]) {
85
- -webkit-appearance: textfield;
86
- outline-offset: -2px;
87
- }
88
- :where(::-webkit-search-decoration) {
89
- -webkit-appearance: none;
90
- }
91
- :where(::-webkit-inner-spin-button),
92
- :where(::-webkit-outer-spin-button) {
93
- height: auto;
94
- }
95
- :where(::-webkit-file-upload-button) {
96
- -webkit-appearance: button;
97
- font: inherit;
98
- }
99
- :where(summary) {
100
- display: list-item;
101
- }
102
- :where(a, area, button, input, label, select, summary, textarea, [tabindex]) {
103
- touch-action: manipulation;
104
- -webkit-tap-highlight-color: transparent;
105
- }
106
- :where([aria-busy=true]) {
107
- cursor: progress;
108
- }
109
- :where([aria-disabled=true], [disabled]) {
110
- cursor: not-allowed;
111
- }
112
- @media (prefers-reduced-motion: reduce) {
113
- :where(*),
114
- :where(*::before),
115
- :where(*::after) {
116
- animation-duration: 0.01ms !important;
117
- animation-iteration-count: 1 !important;
118
- transition-duration: 0.01ms !important;
119
- scroll-behavior: auto !important;
120
- }
121
- }
122
- }
123
- @layer nimble.base {
124
- :root {
125
- color-scheme: light dark;
126
- --nc-surface-1: light-dark(oklch(0.985 0.002 250), oklch(0.17 0.005 260));
127
- --nc-surface-2: light-dark(oklch(0.955 0.002 250), oklch(0.2 0.005 260));
128
- --nc-surface-3: light-dark(oklch(0.925 0.002 250), oklch(0.23 0.005 260));
129
- --nc-surface-4: light-dark(oklch(0.885 0.002 250), oklch(0.27 0.005 260));
130
- --nc-text: light-dark(oklch(0.28 0.005 250), oklch(0.86 0.005 250));
131
- --nc-border: light-dark(oklch(0.83 0.005 250), oklch(0.28 0.005 260));
132
- --nc-primary: light-dark(oklch(0.5 0.2 250), oklch(0.6 0.2 250));
133
- --nc-primary-hover: light-dark(oklch(0.4 0.2 250), oklch(0.7 0.2 250));
134
- --nc-primary-focus: oklch(0.5 0.2 250 / 0.4);
135
- --nc-primary-contrast: light-dark(#fff, oklch(0.15 0.005 250));
136
- --nc-secondary: light-dark(oklch(0.45 0.05 250), oklch(0.6 0.05 250));
137
- --nc-secondary-hover: light-dark(oklch(0.35 0.05 250), oklch(0.7 0.05 250));
138
- --nc-secondary-focus: oklch(0.45 0.05 250 / 0.3);
139
- --nc-secondary-contrast: light-dark(#fff, oklch(0.15 0.005 250));
140
- --nc-valid: light-dark(oklch(0.52 0.17 145), oklch(0.65 0.2 145));
141
- --nc-invalid: light-dark(oklch(0.55 0.22 25), oklch(0.65 0.22 25));
142
- --nc-font-sans: system-ui, sans-serif;
143
- --nc-font-mono: ui-monospace, Cascadia Code, Source Code Pro, Menlo, Consolas, DejaVu Sans Mono, monospace;
144
- --nc-spacing: 1rem;
145
- --nc-radius: 0.25rem;
146
- --nc-content-width: 720px;
147
- }
148
- [data-theme=dark] {
149
- color-scheme: dark;
150
- }
151
- [data-theme=light] {
152
- color-scheme: light;
153
- }
154
- }
155
- @layer nimble.base {
156
- html {
157
- font-family: var(--nc-font-sans);
158
- font-size: 100%;
159
- line-height: 1.5;
160
- color: var(--nc-text);
161
- background-color: var(--nc-surface-1);
162
- }
163
- body {
164
- display: grid;
165
- grid-template-columns: 1fr min(var(--nc-content-width), calc(100% - 2 * var(--nc-spacing))) 1fr;
166
- min-height: 100dvh;
167
- }
168
- body > * {
169
- grid-column: 2;
170
- min-width: 0;
171
- }
172
- ::selection {
173
- background-color: var(--nc-primary-focus);
174
- color: var(--nc-text);
175
- }
176
- }
177
- @layer nimble.base {
178
- h1 {
179
- font-size: 2rem;
180
- line-height: 1.1;
181
- margin-top: 0;
182
- margin-bottom: var(--nc-spacing);
183
- font-weight: 700;
184
- text-wrap: balance;
185
- }
186
- h2 {
187
- font-size: 1.75rem;
188
- line-height: 1.15;
189
- margin-top: 2rem;
190
- margin-bottom: var(--nc-spacing);
191
- font-weight: 700;
192
- text-wrap: balance;
193
- }
194
- h3 {
195
- font-size: 1.5rem;
196
- line-height: 1.2;
197
- margin-top: 1.5rem;
198
- margin-bottom: var(--nc-spacing);
199
- font-weight: 700;
200
- text-wrap: balance;
201
- }
202
- h4 {
203
- font-size: 1.25rem;
204
- line-height: 1.3;
205
- margin-top: 1.5rem;
206
- margin-bottom: var(--nc-spacing);
207
- font-weight: 700;
208
- text-wrap: balance;
209
- }
210
- h5 {
211
- font-size: 1.125rem;
212
- line-height: 1.4;
213
- margin-top: 1.5rem;
214
- margin-bottom: var(--nc-spacing);
215
- font-weight: 700;
216
- text-wrap: balance;
217
- }
218
- h6 {
219
- font-size: 1rem;
220
- line-height: 1.5;
221
- margin-top: 1.5rem;
222
- margin-bottom: var(--nc-spacing);
223
- font-weight: 700;
224
- text-wrap: balance;
225
- }
226
- @media (max-width: 720px) {
227
- h1 {
228
- font-size: 1.75rem;
229
- }
230
- h2 {
231
- font-size: 1.5rem;
232
- }
233
- h3 {
234
- font-size: 1.3rem;
235
- }
236
- }
237
- p, ul, ol, dl, blockquote, pre, table, figure, form, fieldset {
238
- margin-top: 0;
239
- margin-bottom: var(--nc-spacing);
240
- }
241
- ul, ol {
242
- padding-inline-start: 1.5em;
243
- }
244
- li {
245
- margin-bottom: 0.25em;
246
- }
247
- :where(li) > :where(ul, ol) {
248
- margin-bottom: 0;
249
- }
250
- dt {
251
- font-weight: 600;
252
- }
253
- dd {
254
- margin-inline-start: 1.5em;
255
- margin-bottom: 0.5em;
256
- }
257
- blockquote {
258
- margin-block: var(--nc-spacing);
259
- margin-inline: 0;
260
- padding: 0.25em var(--nc-spacing);
261
- border-inline-start: 0.25rem solid var(--nc-border);
262
- font-style: italic;
263
- }
264
- :where(blockquote) footer,
265
- :where(blockquote) cite {
266
- font-style: normal;
267
- font-size: 0.9em;
268
- color: color-mix(in oklch, var(--nc-text), transparent 40%);
269
- }
270
- hr {
271
- border: none;
272
- height: 1px;
273
- background-color: color-mix(in oklch, var(--nc-border), transparent 40%);
274
- margin: calc(var(--nc-spacing) * 2) 0;
275
- }
276
- mark {
277
- padding: 0.1em 0.25em;
278
- background-color: light-dark(#fde68a, oklch(0.55 0.12 85));
279
- color: light-dark(inherit, oklch(0.95 0.01 85));
280
- border-radius: 2px;
281
- }
282
- address {
283
- font-style: normal;
284
- }
285
- }
286
- @layer nimble.base {
287
- :where(a:not([role=button])) {
288
- color: var(--nc-primary);
289
- text-decoration: underline;
290
- text-underline-offset: 0.15em;
291
- text-decoration-color: color-mix(in oklch, var(--nc-primary), transparent 50%);
292
- transition: color 0.2s, text-decoration-color 0.2s;
293
- }
294
- :where(a:not([role=button])):visited {
295
- color: color-mix(in oklch, var(--nc-primary) 40%, oklch(0.38 0.15 310));
296
- text-decoration-color: color-mix(in oklch, var(--nc-primary) 40%, oklch(0.38 0.15 310) 30%);
297
- }
298
- :where(a:not([role=button])):hover {
299
- color: var(--nc-primary-hover);
300
- text-decoration-color: var(--nc-primary-hover);
301
- }
302
- }
303
- @layer nimble.base {
304
- :where(button, [type=submit], [type=reset], [type=button], [role=button]) {
305
- --_btn-padding-v: 0.5em;
306
- --_btn-padding-h: 1em;
307
- padding: var(--_btn-padding-v) var(--_btn-padding-h);
308
- background-color: var(--nc-primary);
309
- color: var(--nc-primary-contrast);
310
- border: 1px solid var(--nc-primary);
311
- border-radius: var(--nc-radius);
312
- font: inherit;
313
- font-size: 1rem;
314
- line-height: 1.5;
315
- cursor: pointer;
316
- text-decoration: none;
317
- display: inline-block;
318
- text-align: center;
319
- margin: 0 0.25em 0.25em 0;
320
- transition: background-color 0.2s, border-color 0.2s;
321
- }
322
- :where(button, [type=submit], [type=reset], [type=button], [role=button]):hover {
323
- background-color: var(--nc-primary-hover);
324
- border-color: var(--nc-primary-hover);
325
- }
326
- :where(button, [type=submit], [type=reset], [type=button], [role=button]):focus-visible {
327
- box-shadow: 0 0 0 2px var(--nc-primary-focus);
328
- outline: none;
329
- }
330
- :where(button, [type=submit], [type=reset], [type=button], [role=button]).inline {
331
- --_btn-padding-v: 0.05em;
332
- --_btn-padding-h: 0.4em;
333
- margin: 0.1em 0.15em;
334
- font-size: 0.875em;
335
- vertical-align: baseline;
336
- }
337
- :where(button, [type=submit], [type=reset], [type=button], [role=button]):disabled {
338
- opacity: 0.5;
339
- cursor: not-allowed;
340
- pointer-events: none;
341
- }
342
- :where([role=group]) {
343
- display: inline-flex;
344
- margin-bottom: var(--nc-spacing);
345
- }
346
- [role=group] > * {
347
- border-radius: 0;
348
- margin: 0;
349
- position: relative;
350
- }
351
- [role=group] > * + * {
352
- --_divider: "";
353
- }
354
- [role=group] > * + *::before {
355
- content: var(--_divider);
356
- position: absolute;
357
- inset-inline-start: 0;
358
- top: 20%;
359
- bottom: 20%;
360
- width: 1px;
361
- background: rgba(255, 255, 255, 0.3);
362
- pointer-events: none;
363
- }
364
- [role=group] > :not(.secondary):not(.outline) + .secondary,
365
- [role=group] > .secondary + :not(.secondary):not(.outline) {
366
- --_divider: none;
367
- }
368
- [role=group] > :not(.secondary):not(.outline) + .outline,
369
- [role=group] > .outline + :not(.secondary):not(.outline) {
370
- --_divider: none;
371
- }
372
- [role=group] > .secondary + .outline,
373
- [role=group] > .outline + .secondary {
374
- --_divider: none;
375
- }
376
- [role=group] > input + *,
377
- [role=group] > select + * {
378
- --_divider: none;
379
- }
380
- [role=group] > :first-child {
381
- border-start-start-radius: var(--nc-radius);
382
- border-end-start-radius: var(--nc-radius);
383
- }
384
- [role=group] > :last-child {
385
- border-start-end-radius: var(--nc-radius);
386
- border-end-end-radius: var(--nc-radius);
387
- }
388
- [role=group]:has(.outline):not(:has(> :not(.outline))) {
389
- border: 1px solid var(--nc-primary);
390
- border-radius: var(--nc-radius);
391
- }
392
- [role=group]:has(.outline):not(:has(> :not(.outline))) > .outline {
393
- border: none;
394
- }
395
- [role=group] > .outline + .outline::before {
396
- background: var(--nc-primary);
397
- }
398
- [role=search] [role=group] > :first-child {
399
- border-start-start-radius: 5rem;
400
- border-end-start-radius: 5rem;
401
- padding-inline-start: 1.25em;
402
- }
403
- [role=search] [role=group] > :last-child {
404
- border-start-end-radius: 5rem;
405
- border-end-end-radius: 5rem;
406
- padding-inline-end: 1.25em;
407
- }
408
- }
409
- @layer nimble.utilities {
410
- .secondary {
411
- background-color: var(--nc-secondary);
412
- border-color: var(--nc-secondary);
413
- color: var(--nc-secondary-contrast);
414
- }
415
- .secondary:hover {
416
- background-color: var(--nc-secondary-hover);
417
- border-color: var(--nc-secondary-hover);
418
- }
419
- .secondary:focus-visible {
420
- box-shadow: 0 0 0 2px var(--nc-secondary-focus);
421
- }
422
- .outline {
423
- background-color: transparent;
424
- color: var(--nc-primary);
425
- }
426
- .outline:hover {
427
- background-color: var(--nc-primary-focus);
428
- color: var(--nc-primary-hover);
429
- border-color: var(--nc-primary-hover);
430
- }
431
- }
432
- @layer nimble.base {
433
- :where(input:not([type=checkbox], [type=radio], [type=range], [type=file], [type=color], [type=submit], [type=button], [type=reset]),
434
- select, textarea) {
435
- --_input-bg: color-mix(in oklch, var(--nc-surface-1), var(--nc-surface-2) 20%);
436
- padding: 0.5em 0.75em;
437
- min-height: calc(2.5em + 2px);
438
- background-color: var(--_input-bg);
439
- border: 1px solid var(--nc-border);
440
- border-radius: var(--nc-radius);
441
- color: var(--nc-text);
442
- font: inherit;
443
- font-size: 1rem;
444
- transition: border-color 0.2s, box-shadow 0.2s;
445
- }
446
- :where(input:not([type=checkbox], [type=radio], [type=range], [type=file], [type=color], [type=submit], [type=button], [type=reset], [type=date], [type=month], [type=week], [type=time], [type=datetime-local]),
447
- select, textarea) {
448
- width: 100%;
449
- margin-bottom: var(--nc-spacing);
450
- }
451
- :where(input, select, textarea):focus-visible {
452
- border-color: var(--nc-primary);
453
- box-shadow: 0 0 0 2px var(--nc-primary-focus);
454
- outline: none;
455
- }
456
- :where(input, select, textarea) + :where(small) {
457
- display: block;
458
- margin-top: calc(var(--nc-spacing) * -0.75);
459
- margin-bottom: var(--nc-spacing);
460
- font-size: 0.875em;
461
- color: color-mix(in oklch, var(--nc-text), transparent 40%);
462
- }
463
- :where(input, select, textarea)[aria-invalid=false] {
464
- border-color: var(--nc-valid);
465
- }
466
- :where(input, select, textarea)[aria-invalid=true] {
467
- border-color: var(--nc-invalid);
468
- }
469
- :where(input, select, textarea)[aria-invalid=false] + :where(small) {
470
- color: var(--nc-valid);
471
- }
472
- :where(input, select, textarea)[aria-invalid=true] + :where(small) {
473
- color: var(--nc-invalid);
474
- }
475
- :where(label) {
476
- display: block;
477
- margin-bottom: 0.25em;
478
- }
479
- :where(label:has(+ input, + select, + textarea)) {
480
- font-weight: 600;
481
- }
482
- :where(fieldset) {
483
- border: 1px solid var(--nc-border);
484
- border-radius: var(--nc-radius);
485
- padding: var(--nc-spacing);
486
- min-width: 0;
487
- max-width: 100%;
488
- }
489
- :where(legend) {
490
- font-weight: 600;
491
- padding-inline: 0.25em;
492
- }
493
- :where([type=checkbox], [type=radio]) {
494
- accent-color: var(--nc-primary);
495
- width: 1.125em;
496
- height: 1.125em;
497
- margin: 0;
498
- }
499
- :where(label:has([type=checkbox], [type=radio])) {
500
- display: flex;
501
- align-items: center;
502
- gap: 0.35em;
503
- margin-bottom: var(--nc-spacing);
504
- }
505
- :where(label:has([type=radio])) {
506
- margin-bottom: 0.35em;
507
- }
508
- :where([type=range]) {
509
- accent-color: var(--nc-primary);
510
- width: 100%;
511
- }
512
- :where(input[list]) {
513
- width: auto;
514
- }
515
- :where([type=file]) {
516
- color: var(--nc-text);
517
- font: inherit;
518
- cursor: pointer;
519
- max-width: 100%;
520
- }
521
- :where([type=file])::file-selector-button {
522
- padding: 0.5em 1em;
523
- margin-right: 0.75em;
524
- margin-inline-end: 0.75em;
525
- background-color: var(--nc-primary);
526
- color: var(--nc-primary-contrast);
527
- border: 1px solid var(--nc-primary);
528
- border-radius: var(--nc-radius);
529
- font: inherit;
530
- cursor: pointer;
531
- transition: background-color 0.2s, border-color 0.2s;
532
- }
533
- :where([type=file])::file-selector-button:hover {
534
- background-color: var(--nc-primary-hover);
535
- border-color: var(--nc-primary-hover);
536
- }
537
- :where([type=date], [type=month], [type=week], [type=time], [type=datetime-local]) {
538
- min-width: 10em;
539
- margin-bottom: var(--nc-spacing);
540
- }
541
- :where([type=color]) {
542
- --_color-size: calc(1em * 1.5 + 1em + 2px);
543
- --_color-pad: 0.25em;
544
- height: var(--_color-size);
545
- width: calc((var(--_color-size) - 2 * var(--_color-pad)) * 1.618 + 2 * var(--_color-pad));
546
- padding: var(--_color-pad);
547
- background-color: color-mix(in oklch, var(--nc-surface-1), var(--nc-surface-2) 20%);
548
- border: 1px solid var(--nc-border);
549
- border-radius: var(--nc-radius);
550
- cursor: pointer;
551
- }
552
- :where([type=color])::-webkit-color-swatch-wrapper {
553
- padding: 0;
554
- }
555
- :where([type=color])::-webkit-color-swatch {
556
- border: none;
557
- border-radius: calc(var(--nc-radius) * 0.5);
558
- }
559
- :where(label:has([type=checkbox][role=switch])) {
560
- display: inline-flex;
561
- align-items: center;
562
- gap: 0.5em;
563
- }
564
- :where([type=checkbox][role=switch]) {
565
- appearance: none;
566
- width: 2.5em;
567
- height: 1.25em;
568
- border-radius: 1em;
569
- background-color: var(--nc-border);
570
- position: relative;
571
- cursor: pointer;
572
- flex-shrink: 0;
573
- margin: 0;
574
- transition: background-color 0.2s;
575
- }
576
- :where([type=checkbox][role=switch])::before {
577
- content: "";
578
- position: absolute;
579
- top: 2px;
580
- left: 2px;
581
- width: calc(1.25em - 4px);
582
- height: calc(1.25em - 4px);
583
- border-radius: 50%;
584
- background-color: #fff;
585
- transition: transform 0.2s;
586
- }
587
- :where([type=checkbox][role=switch]):checked {
588
- background-color: var(--nc-primary);
589
- }
590
- :where([type=checkbox][role=switch]):checked::before {
591
- transform: translateX(1.25em);
592
- }
593
- }
594
- [type=date],
595
- [type=month],
596
- [type=week],
597
- [type=time],
598
- [type=datetime-local] {
599
- -webkit-appearance: none;
600
- appearance: none;
601
- }
602
-
603
- @layer nimble.base {
604
- :where(table) {
605
- width: 100%;
606
- border-collapse: collapse;
607
- }
608
- :where(th, td) {
609
- padding: 0.5em 0.75em;
610
- border-bottom: 1px solid color-mix(in oklch, var(--nc-border), transparent 40%);
611
- text-align: start;
612
- }
613
- :where(thead th, thead td) {
614
- font-weight: 600;
615
- border-bottom-width: 2px;
616
- background-color: var(--nc-surface-2);
617
- text-wrap: balance;
618
- }
619
- :where(figure:has(table)) {
620
- overflow-x: auto;
621
- }
622
- }
623
- @layer nimble.base {
624
- :where(code, kbd, samp) {
625
- font-family: var(--nc-font-mono);
626
- font-size: 0.875em;
627
- background-color: var(--nc-surface-2);
628
- border-radius: var(--nc-radius);
629
- padding: 0.15em 0.35em;
630
- }
631
- :where(pre) {
632
- background-color: var(--nc-surface-2);
633
- border-radius: var(--nc-radius);
634
- padding: var(--nc-spacing);
635
- overflow-x: auto;
636
- }
637
- :where(pre code) {
638
- background: none;
639
- padding: 0;
640
- font-size: inherit;
641
- }
642
- :where(kbd) {
643
- border: 1px solid var(--nc-border);
644
- border-bottom-width: 2px;
645
- }
646
- }
647
- @layer nimble.base {
648
- :where(img, video, canvas, svg) {
649
- max-width: 100%;
650
- height: auto;
651
- }
652
- :where(figure) {
653
- margin: 0;
654
- }
655
- :where(figcaption) {
656
- font-size: 0.9em;
657
- color: color-mix(in oklch, var(--nc-text), transparent 40%);
658
- margin-top: 0.5em;
659
- }
660
- }
661
- @layer nimble.base {
662
- :where(details) {
663
- border: 1px solid var(--nc-border);
664
- border-radius: var(--nc-radius);
665
- padding: 0 1em;
666
- }
667
- :where(summary) {
668
- cursor: pointer;
669
- font-weight: 600;
670
- margin: 0 -1em;
671
- padding: 0.75em 1em;
672
- list-style-type: "▶ ";
673
- }
674
- :where(details[open] > summary) {
675
- list-style-type: "▼ ";
676
- }
677
- :where(details[open]) {
678
- padding-bottom: 0.75em;
679
- }
680
- details :last-child {
681
- margin-bottom: 0;
682
- }
683
- }
684
- @supports selector(details::details-content) {
685
- details::details-content {
686
- transition: opacity 0.3s ease, content-visibility 0.3s ease allow-discrete;
687
- opacity: 0;
688
- }
689
- details[open]::details-content {
690
- opacity: 1;
691
- }
692
- @supports (interpolate-size: allow-keywords) {
693
- details {
694
- interpolate-size: allow-keywords;
695
- }
696
- details::details-content {
697
- transition: height 0.3s ease, opacity 0.3s ease, content-visibility 0.3s ease allow-discrete;
698
- height: 0;
699
- overflow: clip;
700
- }
701
- details[open]::details-content {
702
- height: auto;
703
- }
704
- }
705
- }
706
- @layer nimble.base {
707
- :where(dialog) {
708
- background-color: var(--nc-surface-4);
709
- border: 1px solid var(--nc-border);
710
- border-radius: var(--nc-radius);
711
- max-width: min(90vw, 40rem);
712
- padding: var(--nc-spacing);
713
- }
714
- dialog::backdrop {
715
- background: rgba(0, 0, 0, 0.5);
716
- backdrop-filter: blur(4px);
717
- animation: nc-backdrop-in 0.2s ease;
718
- }
719
- @keyframes nc-backdrop-in {
720
- from {
721
- opacity: 0;
722
- }
723
- }
724
- }
725
- @media print {
726
- body {
727
- background: #fff;
728
- color: #000;
729
- }
730
- a[href]::after {
731
- content: " (" attr(href) ")";
732
- font-size: 0.85em;
733
- color: #555;
734
- }
735
- a[href^="#"]::after,
736
- a[href^="javascript:"]::after {
737
- content: none;
738
- }
739
- pre, blockquote {
740
- page-break-inside: avoid;
741
- }
742
- h2, h3, h4 {
743
- page-break-after: avoid;
744
- }
745
- img {
746
- max-width: 100% !important;
747
- }
748
- @page {
749
- margin: 2cm;
750
- }
751
- }
752
- @layer nimble.base {
753
- :where(progress) {
754
- -webkit-appearance: none;
755
- appearance: none;
756
- position: relative;
757
- width: 100%;
758
- height: 0.5rem;
759
- overflow: hidden;
760
- border: 0;
761
- border-radius: var(--nc-radius);
762
- background-color: var(--nc-surface-3);
763
- color: var(--nc-primary);
764
- }
765
- :where(progress)::-webkit-progress-bar {
766
- border-radius: var(--nc-radius);
767
- background-color: var(--nc-surface-3);
768
- }
769
- :where(progress)::-webkit-progress-value {
770
- background-color: var(--nc-primary);
771
- border-radius: var(--nc-radius);
772
- transition: inline-size 0.3s ease;
773
- }
774
- :where(progress)::-moz-progress-bar {
775
- background-color: var(--nc-primary);
776
- border-radius: var(--nc-radius);
777
- }
778
- :where(progress):not([value]) {
779
- --nc-progress-track:
780
- linear-gradient(to right,
781
- var(--nc-surface-3) 0%,
782
- var(--nc-primary) 25%,
783
- var(--nc-primary) 25%,
784
- var(--nc-surface-3) 50%,
785
- var(--nc-surface-3) 50%,
786
- var(--nc-primary) 75%,
787
- var(--nc-primary) 75%,
788
- var(--nc-surface-3) 100%);
789
- --nc-progress-track-size: 200% 100%;
790
- }
791
- @media (prefers-reduced-motion: no-preference) {
792
- @supports selector(progress::after) {
793
- :where(progress):not([value])::after {
794
- content: "";
795
- position: absolute;
796
- inset: 0;
797
- background: var(--nc-progress-track);
798
- background-size: var(--nc-progress-track-size);
799
- animation: nc-progress-indeterminate 12s linear infinite;
800
- }
801
- }
802
- :where(progress):not([value])::-webkit-progress-bar {
803
- background: var(--nc-progress-track);
804
- background-size: var(--nc-progress-track-size);
805
- animation: nc-progress-indeterminate 12s linear infinite;
806
- }
807
- :where(progress):not([value])::-moz-progress-bar {
808
- background: var(--nc-progress-track);
809
- background-size: var(--nc-progress-track-size);
810
- animation: nc-progress-indeterminate 12s linear infinite;
811
- }
812
- }
813
- @keyframes nc-progress-indeterminate {
814
- from {
815
- background-position: 0% 0%;
816
- }
817
- to {
818
- background-position: -200% 0%;
819
- }
820
- }
821
- }
822
- @layer nimble.base {
823
- :where(meter) {
824
- -webkit-appearance: none;
825
- -moz-appearance: none;
826
- appearance: none;
827
- width: 100%;
828
- height: 0.5rem;
829
- overflow: hidden;
830
- border: 0;
831
- border-radius: var(--nc-radius);
832
- background-color: var(--nc-surface-3);
833
- }
834
- :where(meter)::-webkit-meter-bar {
835
- border-radius: var(--nc-radius);
836
- background-color: var(--nc-surface-3);
837
- border: 0;
838
- height: 0.5rem;
839
- }
840
- :where(meter)::-webkit-meter-optimum-value {
841
- background-color: var(--nc-valid);
842
- border-radius: var(--nc-radius);
843
- }
844
- :where(meter)::-webkit-meter-suboptimum-value {
845
- background-color: var(--nc-primary);
846
- border-radius: var(--nc-radius);
847
- }
848
- :where(meter)::-webkit-meter-even-less-good-value {
849
- background-color: var(--nc-invalid);
850
- border-radius: var(--nc-radius);
851
- }
852
- :where(meter)::-moz-meter-bar {
853
- background-color: var(--nc-primary);
854
- border-radius: var(--nc-radius);
855
- }
856
- :where(meter):-moz-meter-optimum::-moz-meter-bar {
857
- background-color: var(--nc-valid);
858
- }
859
- :where(meter):-moz-meter-sub-optimum::-moz-meter-bar {
860
- background-color: var(--nc-primary);
861
- }
862
- :where(meter):-moz-meter-sub-sub-optimum::-moz-meter-bar {
863
- background-color: var(--nc-invalid);
864
- }
865
- }
866
- @layer nimble.base {
867
- @supports (appearance: base-select) {
868
- :where(select),
869
- :where(select)::picker(select) {
870
- appearance: base-select;
871
- }
872
- :where(select)::picker-icon {
873
- content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 2l6 6 6-6'/%3E%3C/svg%3E");
874
- transition: rotate 0.4s;
875
- }
876
- :where(select):open::picker-icon {
877
- rotate: 180deg;
878
- }
879
- :where(select)::picker(select) {
880
- border: 1px solid var(--nc-border);
881
- border-radius: var(--nc-radius);
882
- background-color: var(--nc-surface-1);
883
- padding: 0.25em;
884
- opacity: 0;
885
- transition: opacity 0.2s, overlay 0.2s allow-discrete, display 0.2s allow-discrete;
886
- }
887
- :where(select):open::picker(select) {
888
- opacity: 1;
889
- }
890
- @starting-style {
891
- :where(select):open::picker(select) {
892
- opacity: 0;
893
- }
894
- }
895
- :where(select) option {
896
- padding: 0.5em 0.75em;
897
- border-radius: var(--nc-radius);
898
- transition: background-color 0.15s;
899
- }
900
- :where(select) option:hover {
901
- background-color: var(--nc-surface-2);
902
- }
903
- :where(select) option:checked {
904
- font-weight: 600;
905
- }
906
- }
907
- }
908
- @layer nimble.utilities {
909
- .container {
910
- max-width: var(--nc-content-width);
911
- margin-inline: auto;
912
- padding-inline: var(--nc-spacing);
913
- }
914
- .fluid {
915
- display: block;
916
- max-width: none;
917
- padding-inline: var(--nc-spacing);
918
- }
919
- .full-bleed {
920
- grid-column: 1/-1;
921
- }
922
- .wide {
923
- grid-column: 1/-1;
924
- width: 100%;
925
- max-width: 1200px;
926
- margin-inline: auto;
927
- padding-inline: var(--nc-spacing);
928
- }
929
- .striped :where(tbody tr:nth-child(even)) {
930
- background-color: var(--nc-surface-2);
931
- }
932
- .visually-hidden {
933
- position: absolute;
934
- width: 1px;
935
- height: 1px;
936
- padding: 0;
937
- margin: -1px;
938
- overflow: hidden;
939
- clip-path: inset(50%);
940
- white-space: nowrap;
941
- border: 0;
942
- }
943
- .overflow-auto {
944
- overflow: auto;
945
- }
946
- }