@leftium/nimble.css 0.1.0 → 0.2.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.
package/dist/nimble.css CHANGED
@@ -1,6 +1,7 @@
1
+ @charset "UTF-8";
1
2
  @layer nimble.reset, nimble.base, nimble.utilities;
2
3
  @layer nimble.reset {
3
- :where(*),
4
+ :where(*:not(progress)),
4
5
  :where(*::before),
5
6
  :where(*::after) {
6
7
  box-sizing: border-box;
@@ -100,6 +101,7 @@
100
101
  }
101
102
  :where(a, area, button, input, label, select, summary, textarea, [tabindex]) {
102
103
  touch-action: manipulation;
104
+ -webkit-tap-highlight-color: transparent;
103
105
  }
104
106
  :where([aria-busy=true]) {
105
107
  cursor: progress;
@@ -125,8 +127,7 @@
125
127
  --nc-surface-2: light-dark(oklch(0.955 0.002 250), oklch(0.2 0.005 260));
126
128
  --nc-surface-3: light-dark(oklch(0.925 0.002 250), oklch(0.23 0.005 260));
127
129
  --nc-surface-4: light-dark(oklch(0.885 0.002 250), oklch(0.27 0.005 260));
128
- --nc-text-1: light-dark(oklch(0.28 0.005 250), oklch(0.86 0.005 250));
129
- --nc-text-2: light-dark(oklch(0.58 0.005 250), oklch(0.65 0.005 250));
130
+ --nc-text: light-dark(oklch(0.28 0.005 250), oklch(0.86 0.005 250));
130
131
  --nc-border: light-dark(oklch(0.83 0.005 250), oklch(0.28 0.005 260));
131
132
  --nc-primary: light-dark(oklch(0.5 0.2 250), oklch(0.6 0.2 250));
132
133
  --nc-primary-hover: light-dark(oklch(0.4 0.2 250), oklch(0.7 0.2 250));
@@ -156,7 +157,7 @@
156
157
  font-family: var(--nc-font-sans);
157
158
  font-size: 100%;
158
159
  line-height: 1.5;
159
- color: var(--nc-text-1);
160
+ color: var(--nc-text);
160
161
  background-color: var(--nc-surface-1);
161
162
  }
162
163
  body {
@@ -166,10 +167,11 @@
166
167
  }
167
168
  body > * {
168
169
  grid-column: 2;
170
+ min-width: 0;
169
171
  }
170
172
  ::selection {
171
173
  background-color: var(--nc-primary-focus);
172
- color: var(--nc-text-1);
174
+ color: var(--nc-text);
173
175
  }
174
176
  }
175
177
  @layer nimble.base {
@@ -184,7 +186,7 @@
184
186
  h2 {
185
187
  font-size: 1.75rem;
186
188
  line-height: 1.15;
187
- margin-top: 0;
189
+ margin-top: 2rem;
188
190
  margin-bottom: var(--nc-spacing);
189
191
  font-weight: 700;
190
192
  text-wrap: balance;
@@ -192,7 +194,7 @@
192
194
  h3 {
193
195
  font-size: 1.5rem;
194
196
  line-height: 1.2;
195
- margin-top: 0;
197
+ margin-top: 1.5rem;
196
198
  margin-bottom: var(--nc-spacing);
197
199
  font-weight: 700;
198
200
  text-wrap: balance;
@@ -200,7 +202,7 @@
200
202
  h4 {
201
203
  font-size: 1.25rem;
202
204
  line-height: 1.3;
203
- margin-top: 0;
205
+ margin-top: 1.5rem;
204
206
  margin-bottom: var(--nc-spacing);
205
207
  font-weight: 700;
206
208
  text-wrap: balance;
@@ -208,7 +210,7 @@
208
210
  h5 {
209
211
  font-size: 1.125rem;
210
212
  line-height: 1.4;
211
- margin-top: 0;
213
+ margin-top: 1.5rem;
212
214
  margin-bottom: var(--nc-spacing);
213
215
  font-weight: 700;
214
216
  text-wrap: balance;
@@ -216,7 +218,7 @@
216
218
  h6 {
217
219
  font-size: 1rem;
218
220
  line-height: 1.5;
219
- margin-top: 0;
221
+ margin-top: 1.5rem;
220
222
  margin-bottom: var(--nc-spacing);
221
223
  font-weight: 700;
222
224
  text-wrap: balance;
@@ -236,9 +238,6 @@
236
238
  margin-top: 0;
237
239
  margin-bottom: var(--nc-spacing);
238
240
  }
239
- :where(p, ul, ol, dl, blockquote, pre, table, figure, form) + :is(h1, h2, h3, h4, h5, h6) {
240
- margin-top: calc(var(--nc-spacing) * 2);
241
- }
242
241
  ul, ol {
243
242
  padding-inline-start: 1.5em;
244
243
  }
@@ -266,7 +265,7 @@
266
265
  :where(blockquote) cite {
267
266
  font-style: normal;
268
267
  font-size: 0.9em;
269
- color: var(--nc-text-2);
268
+ color: color-mix(in oklch, var(--nc-text), transparent 40%);
270
269
  }
271
270
  hr {
272
271
  border: none;
@@ -293,8 +292,8 @@
293
292
  transition: color 0.2s, text-decoration-color 0.2s;
294
293
  }
295
294
  :where(a:not([role=button])):visited {
296
- color: color-mix(in oklch, var(--nc-primary) 40%, oklch(0.5 0.2 310));
297
- text-decoration-color: color-mix(in oklch, var(--nc-primary) 40%, oklch(0.5 0.2 310) 30%);
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%);
298
297
  }
299
298
  :where(a:not([role=button])):hover {
300
299
  color: var(--nc-primary-hover);
@@ -328,6 +327,13 @@
328
327
  box-shadow: 0 0 0 2px var(--nc-primary-focus);
329
328
  outline: none;
330
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
+ }
331
337
  :where(button, [type=submit], [type=reset], [type=button], [role=button]):disabled {
332
338
  opacity: 0.5;
333
339
  cursor: not-allowed;
@@ -335,13 +341,41 @@
335
341
  }
336
342
  :where([role=group]) {
337
343
  display: inline-flex;
344
+ margin-bottom: var(--nc-spacing);
338
345
  }
339
346
  [role=group] > * {
340
347
  border-radius: 0;
341
348
  margin: 0;
349
+ position: relative;
342
350
  }
343
351
  [role=group] > * + * {
344
- box-shadow: -1px 0 0 rgba(255, 255, 255, 0.3);
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;
345
379
  }
346
380
  [role=group] > :first-child {
347
381
  border-start-start-radius: var(--nc-radius);
@@ -351,6 +385,16 @@
351
385
  border-start-end-radius: var(--nc-radius);
352
386
  border-end-end-radius: var(--nc-radius);
353
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
+ }
354
398
  [role=search] [role=group] > :first-child {
355
399
  border-start-start-radius: 5rem;
356
400
  border-end-start-radius: 5rem;
@@ -386,32 +430,48 @@
386
430
  }
387
431
  }
388
432
  @layer nimble.base {
389
- :where(input:not([type=checkbox], [type=radio], [type=range], [type=file], [type=color]),
433
+ :where(input:not([type=checkbox], [type=radio], [type=range], [type=file], [type=color], [type=submit], [type=button], [type=reset]),
390
434
  select, textarea) {
391
435
  --_input-bg: color-mix(in oklch, var(--nc-surface-1), var(--nc-surface-2) 20%);
392
436
  padding: 0.5em 0.75em;
437
+ min-height: calc(2.5em + 2px);
393
438
  background-color: var(--_input-bg);
394
439
  border: 1px solid var(--nc-border);
395
440
  border-radius: var(--nc-radius);
396
- color: var(--nc-text-1);
441
+ color: var(--nc-text);
397
442
  font: inherit;
443
+ font-size: 1rem;
398
444
  transition: border-color 0.2s, box-shadow 0.2s;
399
445
  }
400
- :where(input:not([type=checkbox], [type=radio], [type=range], [type=file], [type=color], [type=submit], [type=button], [type=reset]),
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]),
401
447
  select, textarea) {
402
448
  width: 100%;
449
+ margin-bottom: var(--nc-spacing);
403
450
  }
404
451
  :where(input, select, textarea):focus-visible {
405
452
  border-color: var(--nc-primary);
406
453
  box-shadow: 0 0 0 2px var(--nc-primary-focus);
407
454
  outline: none;
408
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
+ }
409
463
  :where(input, select, textarea)[aria-invalid=false] {
410
464
  border-color: var(--nc-valid);
411
465
  }
412
466
  :where(input, select, textarea)[aria-invalid=true] {
413
467
  border-color: var(--nc-invalid);
414
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
+ }
415
475
  :where(label) {
416
476
  display: block;
417
477
  margin-bottom: 0.25em;
@@ -423,6 +483,8 @@
423
483
  border: 1px solid var(--nc-border);
424
484
  border-radius: var(--nc-radius);
425
485
  padding: var(--nc-spacing);
486
+ min-width: 0;
487
+ max-width: 100%;
426
488
  }
427
489
  :where(legend) {
428
490
  font-weight: 600;
@@ -430,14 +492,75 @@
430
492
  }
431
493
  :where([type=checkbox], [type=radio]) {
432
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;
433
507
  }
434
508
  :where([type=range]) {
435
509
  accent-color: var(--nc-primary);
436
510
  width: 100%;
437
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
+ }
438
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);
439
550
  cursor: pointer;
440
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
+ }
441
564
  :where([type=checkbox][role=switch]) {
442
565
  appearance: none;
443
566
  width: 2.5em;
@@ -446,6 +569,8 @@
446
569
  background-color: var(--nc-border);
447
570
  position: relative;
448
571
  cursor: pointer;
572
+ flex-shrink: 0;
573
+ margin: 0;
449
574
  transition: background-color 0.2s;
450
575
  }
451
576
  :where([type=checkbox][role=switch])::before {
@@ -466,6 +591,15 @@
466
591
  transform: translateX(1.25em);
467
592
  }
468
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
+
469
603
  @layer nimble.base {
470
604
  :where(table) {
471
605
  width: 100%;
@@ -520,7 +654,7 @@
520
654
  }
521
655
  :where(figcaption) {
522
656
  font-size: 0.9em;
523
- color: var(--nc-text-2);
657
+ color: color-mix(in oklch, var(--nc-text), transparent 40%);
524
658
  margin-top: 0.5em;
525
659
  }
526
660
  }
@@ -528,14 +662,45 @@
528
662
  :where(details) {
529
663
  border: 1px solid var(--nc-border);
530
664
  border-radius: var(--nc-radius);
531
- padding: 0.75em 1em;
665
+ padding: 0 1em;
532
666
  }
533
667
  :where(summary) {
534
668
  cursor: pointer;
535
669
  font-weight: 600;
670
+ margin: 0 -1em;
671
+ padding: 0.75em 1em;
672
+ list-style-type: "▶ ";
536
673
  }
537
674
  :where(details[open] > summary) {
538
- margin-bottom: 0.5em;
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
+ }
539
704
  }
540
705
  }
541
706
  @layer nimble.base {
@@ -546,8 +711,15 @@
546
711
  max-width: min(90vw, 40rem);
547
712
  padding: var(--nc-spacing);
548
713
  }
549
- :where(dialog::backdrop) {
714
+ dialog::backdrop {
550
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
+ }
551
723
  }
552
724
  }
553
725
  @media print {
@@ -577,6 +749,162 @@
577
749
  margin: 2cm;
578
750
  }
579
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
+ }
580
908
  @layer nimble.utilities {
581
909
  .container {
582
910
  max-width: var(--nc-content-width);
@@ -1 +1 @@
1
- @layer nimble.reset{:where(*),:where(),:where(){box-sizing:border-box;background-repeat:no-repeat}:where(html){-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5}:where(body){margin:0}:where(h1){margin-block:.67em;font-size:2em}:where(hr){height:0;color:inherit}:where(nav) :where(ol,ul){padding:0;list-style-type:none}:where(pre){font-family:monospace;font-size:1em}:where(abbr[title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}:where(b,strong){font-weight:bolder}:where(code,kbd,samp){font-family:monospace;font-size:1em}:where(small){font-size:80%}:where(sub,sup){vertical-align:baseline;font-size:75%;line-height:0;position:relative}:where(sub){bottom:-.25em}:where(sup){top:-.5em}:where(iframe){border-style:none}:where(table){border-collapse:collapse;text-indent:0;border-color:currentColor}:where(button,input,select,textarea){font:inherit;letter-spacing:inherit}:where(button,[type=button],[type=reset],[type=submit]){-webkit-appearance:button}:where(fieldset){border:1px solid #a0a0a0}:where(progress){vertical-align:baseline}:where(textarea){resize:vertical;overflow:auto}:where([type=search]){-webkit-appearance:textfield;outline-offset:-2px}:where(){-webkit-appearance:none}:where(),:where(){height:auto}:where(){-webkit-appearance:button;font:inherit}:where(summary){display:list-item}:where(a,area,button,input,label,select,summary,textarea,[tabindex]){touch-action:manipulation}:where([aria-busy=true]){cursor:progress}:where([aria-disabled=true],[disabled]){cursor:not-allowed}@media (prefers-reduced-motion:reduce){:where(*),:where(),:where(){scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer nimble.base{:root{color-scheme:light dark;--nc-surface-1:light-dark(oklch(98.5% .002 250),oklch(17% .005 260));--nc-surface-2:light-dark(oklch(95.5% .002 250),oklch(20% .005 260));--nc-surface-3:light-dark(oklch(92.5% .002 250),oklch(23% .005 260));--nc-surface-4:light-dark(oklch(88.5% .002 250),oklch(27% .005 260));--nc-text-1:light-dark(oklch(28% .005 250),oklch(86% .005 250));--nc-text-2:light-dark(oklch(58% .005 250),oklch(65% .005 250));--nc-border:light-dark(oklch(83% .005 250),oklch(28% .005 260));--nc-primary:light-dark(oklch(50% .2 250),oklch(60% .2 250));--nc-primary-hover:light-dark(oklch(40% .2 250),oklch(70% .2 250));--nc-primary-focus:oklch(50% .2 250/.4);--nc-primary-contrast:light-dark(#fff,oklch(15% .005 250));--nc-secondary:light-dark(oklch(45% .05 250),oklch(60% .05 250));--nc-secondary-hover:light-dark(oklch(35% .05 250),oklch(70% .05 250));--nc-secondary-focus:oklch(45% .05 250/.3);--nc-secondary-contrast:light-dark(#fff,oklch(15% .005 250));--nc-valid:light-dark(oklch(52% .17 145),oklch(65% .2 145));--nc-invalid:light-dark(oklch(55% .22 25),oklch(65% .22 25));--nc-font-sans:system-ui, sans-serif;--nc-font-mono:ui-monospace, Cascadia Code, Source Code Pro, Menlo, Consolas, DejaVu Sans Mono, monospace;--nc-spacing:1rem;--nc-radius:.25rem;--nc-content-width:720px}[data-theme=dark]{color-scheme:dark}[data-theme=light]{color-scheme:light}html{font-family:var(--nc-font-sans);color:var(--nc-text-1);background-color:var(--nc-surface-1);font-size:100%;line-height:1.5}body{grid-template-columns:1fr min(var(--nc-content-width), calc(100% - 2 * var(--nc-spacing))) 1fr;min-height:100dvh;display:grid}body>*{grid-column:2}::selection{background-color:var(--nc-primary-focus);color:var(--nc-text-1)}h1{margin-top:0;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:2rem;font-weight:700;line-height:1.1}h2{margin-top:0;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1.75rem;font-weight:700;line-height:1.15}h3{margin-top:0;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1.5rem;font-weight:700;line-height:1.2}h4{margin-top:0;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1.25rem;font-weight:700;line-height:1.3}h5{margin-top:0;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1.125rem;font-weight:700;line-height:1.4}h6{margin-top:0;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1rem;font-weight:700;line-height:1.5}@media (width<=720px){h1{font-size:1.75rem}h2{font-size:1.5rem}h3{font-size:1.3rem}}p,ul,ol,dl,blockquote,pre,table,figure,form,fieldset{margin-top:0;margin-bottom:var(--nc-spacing)}:where(p,ul,ol,dl,blockquote,pre,table,figure,form)+:is(h1,h2,h3,h4,h5,h6){margin-top:calc(var(--nc-spacing) * 2)}ul,ol{padding-inline-start:1.5em}li{margin-bottom:.25em}:where(li)>:where(ul,ol){margin-bottom:0}dt{font-weight:600}dd{margin-inline-start:1.5em;margin-bottom:.5em}blockquote{margin-block:var(--nc-spacing);padding:.25em var(--nc-spacing);border-inline-start:.25rem solid var(--nc-border);margin-inline:0;font-style:italic}:where(blockquote) footer,:where(blockquote) cite{color:var(--nc-text-2);font-size:.9em;font-style:normal}hr{background-color:color-mix(in oklch, var(--nc-border), transparent 40%);height:1px;margin:calc(var(--nc-spacing) * 2) 0;border:none}mark{color:light-dark(inherit,oklch(95% .01 85));background-color:light-dark(#fde68a,oklch(55% .12 85));border-radius:2px;padding:.1em .25em}address{font-style:normal}:where(a:not([role=button])){color:var(--nc-primary);text-underline-offset:.15em;text-decoration:underline;-webkit-text-decoration-color:color-mix(in oklch, var(--nc-primary), transparent 50%);text-decoration-color:color-mix(in oklch, var(--nc-primary), transparent 50%);transition:color .2s,text-decoration-color .2s}:where(a:not([role=button])):visited{color:color-mix(in oklch, var(--nc-primary) 40%, oklch(50% .2 310));-webkit-text-decoration-color:color-mix(in oklch, var(--nc-primary) 40%, oklch(50% .2 310) 30%);text-decoration-color:color-mix(in oklch, var(--nc-primary) 40%, oklch(50% .2 310) 30%)}:where(a:not([role=button])):hover{color:var(--nc-primary-hover);-webkit-text-decoration-color:var(--nc-primary-hover);text-decoration-color:var(--nc-primary-hover)}:where(button,[type=submit],[type=reset],[type=button],[role=button]){--_btn-padding-v:.5em;--_btn-padding-h:1em;padding:var(--_btn-padding-v) var(--_btn-padding-h);background-color:var(--nc-primary);color:var(--nc-primary-contrast);border:1px solid var(--nc-primary);border-radius:var(--nc-radius);font:inherit;cursor:pointer;text-align:center;margin:0 .25em .25em 0;font-size:1rem;line-height:1.5;text-decoration:none;transition:background-color .2s,border-color .2s;display:inline-block}:where(button,[type=submit],[type=reset],[type=button],[role=button]):hover{background-color:var(--nc-primary-hover);border-color:var(--nc-primary-hover)}:where(button,[type=submit],[type=reset],[type=button],[role=button]):focus-visible{box-shadow:0 0 0 2px var(--nc-primary-focus);outline:none}:where(button,[type=submit],[type=reset],[type=button],[role=button]):disabled{opacity:.5;cursor:not-allowed;pointer-events:none}:where([role=group]){display:inline-flex}[role=group]>*{border-radius:0;margin:0}[role=group]>*+*{box-shadow:-1px 0 #ffffff4d}[role=group]>:first-child{border-start-start-radius:var(--nc-radius);border-end-start-radius:var(--nc-radius)}[role=group]>:last-child{border-start-end-radius:var(--nc-radius);border-end-end-radius:var(--nc-radius)}[role=search] [role=group]>:first-child{border-start-start-radius:5rem;border-end-start-radius:5rem;padding-inline-start:1.25em}[role=search] [role=group]>:last-child{border-start-end-radius:5rem;border-end-end-radius:5rem;padding-inline-end:1.25em}:where(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color]),select,textarea){--_input-bg:color-mix(in oklch, var(--nc-surface-1), var(--nc-surface-2) 20%);background-color:var(--_input-bg);border:1px solid var(--nc-border);border-radius:var(--nc-radius);color:var(--nc-text-1);font:inherit;padding:.5em .75em;transition:border-color .2s,box-shadow .2s}:where(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color],[type=submit],[type=button],[type=reset]),select,textarea){width:100%}:where(input,select,textarea):focus-visible{border-color:var(--nc-primary);box-shadow:0 0 0 2px var(--nc-primary-focus);outline:none}:where(input,select,textarea)[aria-invalid=false]{border-color:var(--nc-valid)}:where(input,select,textarea)[aria-invalid=true]{border-color:var(--nc-invalid)}:where(label){margin-bottom:.25em;display:block}:where(label:has(+input,+select,+textarea)){font-weight:600}:where(fieldset){border:1px solid var(--nc-border);border-radius:var(--nc-radius);padding:var(--nc-spacing)}:where(legend){padding-inline:.25em;font-weight:600}:where([type=checkbox],[type=radio]){accent-color:var(--nc-primary)}:where([type=range]){accent-color:var(--nc-primary);width:100%}:where([type=color]){cursor:pointer}:where([type=checkbox][role=switch]){appearance:none;background-color:var(--nc-border);cursor:pointer;border-radius:1em;width:2.5em;height:1.25em;transition:background-color .2s;position:relative}:where([type=checkbox][role=switch]):before{content:"";background-color:#fff;border-radius:50%;width:calc(1.25em - 4px);height:calc(1.25em - 4px);transition:transform .2s;position:absolute;top:2px;left:2px}:where([type=checkbox][role=switch]):checked{background-color:var(--nc-primary)}:where([type=checkbox][role=switch]):checked:before{transform:translate(1.25em)}:where(table){border-collapse:collapse;width:100%}:where(th,td){border-bottom:1px solid color-mix(in oklch, var(--nc-border), transparent 40%);text-align:start;padding:.5em .75em}:where(thead th,thead td){background-color:var(--nc-surface-2);text-wrap:balance;border-bottom-width:2px;font-weight:600}:where(figure:has(table)){overflow-x:auto}:where(code,kbd,samp){font-family:var(--nc-font-mono);background-color:var(--nc-surface-2);border-radius:var(--nc-radius);padding:.15em .35em;font-size:.875em}:where(pre){background-color:var(--nc-surface-2);border-radius:var(--nc-radius);padding:var(--nc-spacing);overflow-x:auto}:where(pre code){font-size:inherit;background:0 0;padding:0}:where(kbd){border:1px solid var(--nc-border);border-bottom-width:2px}:where(img,video,canvas,svg){max-width:100%;height:auto}:where(figure){margin:0}:where(figcaption){color:var(--nc-text-2);margin-top:.5em;font-size:.9em}:where(details){border:1px solid var(--nc-border);border-radius:var(--nc-radius);padding:.75em 1em}:where(summary){cursor:pointer;font-weight:600}:where(details[open]>summary){margin-bottom:.5em}:where(dialog){background-color:var(--nc-surface-4);border:1px solid var(--nc-border);border-radius:var(--nc-radius);max-width:min(90vw,40rem);padding:var(--nc-spacing)}:where(){background:#00000080}}@layer nimble.utilities{.secondary{background-color:var(--nc-secondary);border-color:var(--nc-secondary);color:var(--nc-secondary-contrast)}.secondary:hover{background-color:var(--nc-secondary-hover);border-color:var(--nc-secondary-hover)}.secondary:focus-visible{box-shadow:0 0 0 2px var(--nc-secondary-focus)}.outline{color:var(--nc-primary);background-color:#0000}.outline:hover{background-color:var(--nc-primary-focus);color:var(--nc-primary-hover);border-color:var(--nc-primary-hover)}.container{max-width:var(--nc-content-width);padding-inline:var(--nc-spacing);margin-inline:auto}.fluid{max-width:none;padding-inline:var(--nc-spacing);display:block}.full-bleed{grid-column:1/-1}.wide{width:100%;max-width:1200px;padding-inline:var(--nc-spacing);grid-column:1/-1;margin-inline:auto}.striped :where(tbody tr:nth-child(2n)){background-color:var(--nc-surface-2)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.overflow-auto{overflow:auto}}@media print{body{color:#000;background:#fff}a[href]:after{content:" (" attr(href) ")";color:#555;font-size:.85em}a[href^=\#]:after,a[href^=javascript\:]:after{content:none}pre,blockquote{page-break-inside:avoid}h2,h3,h4{page-break-after:avoid}img{max-width:100%!important}@page{margin:2cm}}
1
+ @layer nimble.reset{:where(:not(progress)),:where(),:where(){box-sizing:border-box;background-repeat:no-repeat}:where(html){-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5}:where(body){margin:0}:where(h1){margin-block:.67em;font-size:2em}:where(hr){height:0;color:inherit}:where(nav) :where(ol,ul){padding:0;list-style-type:none}:where(pre){font-family:monospace;font-size:1em}:where(abbr[title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}:where(b,strong){font-weight:bolder}:where(code,kbd,samp){font-family:monospace;font-size:1em}:where(small){font-size:80%}:where(sub,sup){vertical-align:baseline;font-size:75%;line-height:0;position:relative}:where(sub){bottom:-.25em}:where(sup){top:-.5em}:where(iframe){border-style:none}:where(table){border-collapse:collapse;text-indent:0;border-color:currentColor}:where(button,input,select,textarea){font:inherit;letter-spacing:inherit}:where(button,[type=button],[type=reset],[type=submit]){-webkit-appearance:button}:where(fieldset){border:1px solid #a0a0a0}:where(progress){vertical-align:baseline}:where(textarea){resize:vertical;overflow:auto}:where([type=search]){-webkit-appearance:textfield;outline-offset:-2px}:where(){-webkit-appearance:none}:where(),:where(){height:auto}:where(){-webkit-appearance:button;font:inherit}:where(summary){display:list-item}:where(a,area,button,input,label,select,summary,textarea,[tabindex]){touch-action:manipulation;-webkit-tap-highlight-color:transparent}:where([aria-busy=true]){cursor:progress}:where([aria-disabled=true],[disabled]){cursor:not-allowed}@media (prefers-reduced-motion:reduce){:where(*),:where(),:where(){scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer nimble.base{:root{color-scheme:light dark;--nc-surface-1:light-dark(oklch(98.5% .002 250),oklch(17% .005 260));--nc-surface-2:light-dark(oklch(95.5% .002 250),oklch(20% .005 260));--nc-surface-3:light-dark(oklch(92.5% .002 250),oklch(23% .005 260));--nc-surface-4:light-dark(oklch(88.5% .002 250),oklch(27% .005 260));--nc-text:light-dark(oklch(28% .005 250),oklch(86% .005 250));--nc-border:light-dark(oklch(83% .005 250),oklch(28% .005 260));--nc-primary:light-dark(oklch(50% .2 250),oklch(60% .2 250));--nc-primary-hover:light-dark(oklch(40% .2 250),oklch(70% .2 250));--nc-primary-focus:oklch(50% .2 250/.4);--nc-primary-contrast:light-dark(#fff,oklch(15% .005 250));--nc-secondary:light-dark(oklch(45% .05 250),oklch(60% .05 250));--nc-secondary-hover:light-dark(oklch(35% .05 250),oklch(70% .05 250));--nc-secondary-focus:oklch(45% .05 250/.3);--nc-secondary-contrast:light-dark(#fff,oklch(15% .005 250));--nc-valid:light-dark(oklch(52% .17 145),oklch(65% .2 145));--nc-invalid:light-dark(oklch(55% .22 25),oklch(65% .22 25));--nc-font-sans:system-ui, sans-serif;--nc-font-mono:ui-monospace, Cascadia Code, Source Code Pro, Menlo, Consolas, DejaVu Sans Mono, monospace;--nc-spacing:1rem;--nc-radius:.25rem;--nc-content-width:720px}[data-theme=dark]{color-scheme:dark}[data-theme=light]{color-scheme:light}html{font-family:var(--nc-font-sans);color:var(--nc-text);background-color:var(--nc-surface-1);font-size:100%;line-height:1.5}body{grid-template-columns:1fr min(var(--nc-content-width), calc(100% - 2 * var(--nc-spacing))) 1fr;min-height:100dvh;display:grid}body>*{grid-column:2;min-width:0}::selection{background-color:var(--nc-primary-focus);color:var(--nc-text)}h1{margin-top:0;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:2rem;font-weight:700;line-height:1.1}h2{margin-top:2rem;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1.75rem;font-weight:700;line-height:1.15}h3{margin-top:1.5rem;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1.5rem;font-weight:700;line-height:1.2}h4{margin-top:1.5rem;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1.25rem;font-weight:700;line-height:1.3}h5{margin-top:1.5rem;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1.125rem;font-weight:700;line-height:1.4}h6{margin-top:1.5rem;margin-bottom:var(--nc-spacing);text-wrap:balance;font-size:1rem;font-weight:700;line-height:1.5}@media (width<=720px){h1{font-size:1.75rem}h2{font-size:1.5rem}h3{font-size:1.3rem}}p,ul,ol,dl,blockquote,pre,table,figure,form,fieldset{margin-top:0;margin-bottom:var(--nc-spacing)}ul,ol{padding-inline-start:1.5em}li{margin-bottom:.25em}:where(li)>:where(ul,ol){margin-bottom:0}dt{font-weight:600}dd{margin-inline-start:1.5em;margin-bottom:.5em}blockquote{margin-block:var(--nc-spacing);padding:.25em var(--nc-spacing);border-inline-start:.25rem solid var(--nc-border);margin-inline:0;font-style:italic}:where(blockquote) footer,:where(blockquote) cite{color:color-mix(in oklch, var(--nc-text), transparent 40%);font-size:.9em;font-style:normal}hr{background-color:color-mix(in oklch, var(--nc-border), transparent 40%);height:1px;margin:calc(var(--nc-spacing) * 2) 0;border:none}mark{color:light-dark(inherit,oklch(95% .01 85));background-color:light-dark(#fde68a,oklch(55% .12 85));border-radius:2px;padding:.1em .25em}address{font-style:normal}:where(a:not([role=button])){color:var(--nc-primary);text-underline-offset:.15em;text-decoration:underline;-webkit-text-decoration-color:color-mix(in oklch, var(--nc-primary), transparent 50%);text-decoration-color:color-mix(in oklch, var(--nc-primary), transparent 50%);transition:color .2s,text-decoration-color .2s}:where(a:not([role=button])):visited{color:color-mix(in oklch, var(--nc-primary) 40%, oklch(38% .15 310));-webkit-text-decoration-color:color-mix(in oklch, var(--nc-primary) 40%, oklch(38% .15 310) 30%);text-decoration-color:color-mix(in oklch, var(--nc-primary) 40%, oklch(38% .15 310) 30%)}:where(a:not([role=button])):hover{color:var(--nc-primary-hover);-webkit-text-decoration-color:var(--nc-primary-hover);text-decoration-color:var(--nc-primary-hover)}:where(button,[type=submit],[type=reset],[type=button],[role=button]){--_btn-padding-v:.5em;--_btn-padding-h:1em;padding:var(--_btn-padding-v) var(--_btn-padding-h);background-color:var(--nc-primary);color:var(--nc-primary-contrast);border:1px solid var(--nc-primary);border-radius:var(--nc-radius);font:inherit;cursor:pointer;text-align:center;margin:0 .25em .25em 0;font-size:1rem;line-height:1.5;text-decoration:none;transition:background-color .2s,border-color .2s;display:inline-block}:where(button,[type=submit],[type=reset],[type=button],[role=button]):hover{background-color:var(--nc-primary-hover);border-color:var(--nc-primary-hover)}:where(button,[type=submit],[type=reset],[type=button],[role=button]):focus-visible{box-shadow:0 0 0 2px var(--nc-primary-focus);outline:none}:where(button,[type=submit],[type=reset],[type=button],[role=button]).inline{--_btn-padding-v:.05em;--_btn-padding-h:.4em;vertical-align:baseline;margin:.1em .15em;font-size:.875em}:where(button,[type=submit],[type=reset],[type=button],[role=button]):disabled{opacity:.5;cursor:not-allowed;pointer-events:none}:where([role=group]){margin-bottom:var(--nc-spacing);display:inline-flex}[role=group]>*{border-radius:0;margin:0;position:relative}[role=group]>*+*{--_divider:""}[role=group]>*+:before{content:var(--_divider);inset-inline-start:0;pointer-events:none;background:#ffffff4d;width:1px;position:absolute;top:20%;bottom:20%}[role=group]>:not(.secondary):not(.outline)+.secondary,[role=group]>.secondary+:not(.secondary):not(.outline),[role=group]>:not(.secondary):not(.outline)+.outline,[role=group]>.outline+:not(.secondary):not(.outline),[role=group]>.secondary+.outline,[role=group]>.outline+.secondary,[role=group]>input+*,[role=group]>select+*{--_divider:none}[role=group]>:first-child{border-start-start-radius:var(--nc-radius);border-end-start-radius:var(--nc-radius)}[role=group]>:last-child{border-start-end-radius:var(--nc-radius);border-end-end-radius:var(--nc-radius)}[role=group]:has(.outline):not(:has(>:not(.outline))){border:1px solid var(--nc-primary);border-radius:var(--nc-radius)}[role=group]:has(.outline):not(:has(>:not(.outline)))>.outline{border:none}[role=group]>.outline+.outline:before{background:var(--nc-primary)}[role=search] [role=group]>:first-child{border-start-start-radius:5rem;border-end-start-radius:5rem;padding-inline-start:1.25em}[role=search] [role=group]>:last-child{border-start-end-radius:5rem;border-end-end-radius:5rem;padding-inline-end:1.25em}:where(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color],[type=submit],[type=button],[type=reset]),select,textarea){--_input-bg:color-mix(in oklch, var(--nc-surface-1), var(--nc-surface-2) 20%);background-color:var(--_input-bg);border:1px solid var(--nc-border);border-radius:var(--nc-radius);min-height:calc(2.5em + 2px);color:var(--nc-text);font:inherit;padding:.5em .75em;font-size:1rem;transition:border-color .2s,box-shadow .2s}: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]),select,textarea){width:100%;margin-bottom:var(--nc-spacing)}:where(input,select,textarea):focus-visible{border-color:var(--nc-primary);box-shadow:0 0 0 2px var(--nc-primary-focus);outline:none}:where(input,select,textarea)+:where(small){margin-top:calc(var(--nc-spacing) * -.75);margin-bottom:var(--nc-spacing);color:color-mix(in oklch, var(--nc-text), transparent 40%);font-size:.875em;display:block}:where(input,select,textarea)[aria-invalid=false]{border-color:var(--nc-valid)}:where(input,select,textarea)[aria-invalid=true]{border-color:var(--nc-invalid)}:where(input,select,textarea)[aria-invalid=false]+:where(small){color:var(--nc-valid)}:where(input,select,textarea)[aria-invalid=true]+:where(small){color:var(--nc-invalid)}:where(label){margin-bottom:.25em;display:block}:where(label:has(+input,+select,+textarea)){font-weight:600}:where(fieldset){border:1px solid var(--nc-border);border-radius:var(--nc-radius);padding:var(--nc-spacing);min-width:0;max-width:100%}:where(legend){padding-inline:.25em;font-weight:600}:where([type=checkbox],[type=radio]){accent-color:var(--nc-primary);width:1.125em;height:1.125em;margin:0}:where(label:has([type=checkbox],[type=radio])){margin-bottom:var(--nc-spacing);align-items:center;gap:.35em;display:flex}:where(label:has([type=radio])){margin-bottom:.35em}:where([type=range]){accent-color:var(--nc-primary);width:100%}:where(input[list]){width:auto}:where([type=file]){color:var(--nc-text);font:inherit;cursor:pointer;max-width:100%}:where([type=file])::file-selector-button{margin-right:.75em;background-color:var(--nc-primary);color:var(--nc-primary-contrast);border:1px solid var(--nc-primary);border-radius:var(--nc-radius);font:inherit;cursor:pointer;margin-inline-end:.75em;padding:.5em 1em;transition:background-color .2s,border-color .2s}:where([type=file])::file-selector-button:hover{background-color:var(--nc-primary-hover);border-color:var(--nc-primary-hover)}:where([type=date],[type=month],[type=week],[type=time],[type=datetime-local]){min-width:10em;margin-bottom:var(--nc-spacing)}:where([type=color]){--_color-size:calc(1em * 1.5 + 1em + 2px);--_color-pad:.25em;height:var(--_color-size);width:calc((var(--_color-size) - 2 * var(--_color-pad)) * 1.618 + 2 * var(--_color-pad));padding:var(--_color-pad);background-color:color-mix(in oklch, var(--nc-surface-1), var(--nc-surface-2) 20%);border:1px solid var(--nc-border);border-radius:var(--nc-radius);cursor:pointer}:where([type=color])::-webkit-color-swatch-wrapper{padding:0}:where([type=color])::-webkit-color-swatch{border-radius:calc(var(--nc-radius) * .5);border:none}:where(label:has([type=checkbox][role=switch])){align-items:center;gap:.5em;display:inline-flex}:where([type=checkbox][role=switch]){appearance:none;background-color:var(--nc-border);cursor:pointer;border-radius:1em;flex-shrink:0;width:2.5em;height:1.25em;margin:0;transition:background-color .2s;position:relative}:where([type=checkbox][role=switch]):before{content:"";background-color:#fff;border-radius:50%;width:calc(1.25em - 4px);height:calc(1.25em - 4px);transition:transform .2s;position:absolute;top:2px;left:2px}:where([type=checkbox][role=switch]):checked{background-color:var(--nc-primary)}:where([type=checkbox][role=switch]):checked:before{transform:translate(1.25em)}:where(table){border-collapse:collapse;width:100%}:where(th,td){border-bottom:1px solid color-mix(in oklch, var(--nc-border), transparent 40%);text-align:start;padding:.5em .75em}:where(thead th,thead td){background-color:var(--nc-surface-2);text-wrap:balance;border-bottom-width:2px;font-weight:600}:where(figure:has(table)){overflow-x:auto}:where(code,kbd,samp){font-family:var(--nc-font-mono);background-color:var(--nc-surface-2);border-radius:var(--nc-radius);padding:.15em .35em;font-size:.875em}:where(pre){background-color:var(--nc-surface-2);border-radius:var(--nc-radius);padding:var(--nc-spacing);overflow-x:auto}:where(pre code){font-size:inherit;background:0 0;padding:0}:where(kbd){border:1px solid var(--nc-border);border-bottom-width:2px}:where(img,video,canvas,svg){max-width:100%;height:auto}:where(figure){margin:0}:where(figcaption){color:color-mix(in oklch, var(--nc-text), transparent 40%);margin-top:.5em;font-size:.9em}:where(details){border:1px solid var(--nc-border);border-radius:var(--nc-radius);padding:0 1em}:where(summary){cursor:pointer;margin:0 -1em;padding:.75em 1em;font-weight:600;list-style-type:"▶ "}:where(details[open]>summary){list-style-type:"▼ "}:where(details[open]){padding-bottom:.75em}details :last-child{margin-bottom:0}:where(dialog){background-color:var(--nc-surface-4);border:1px solid var(--nc-border);border-radius:var(--nc-radius);max-width:min(90vw,40rem);padding:var(--nc-spacing)}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;animation:.2s nc-backdrop-in}@keyframes nc-backdrop-in{0%{opacity:0}}:where(progress){appearance:none;border-radius:var(--nc-radius);background-color:var(--nc-surface-3);width:100%;height:.5rem;color:var(--nc-primary);border:0;position:relative;overflow:hidden}:where(progress)::-webkit-progress-bar{border-radius:var(--nc-radius);background-color:var(--nc-surface-3)}:where(progress)::-webkit-progress-value{background-color:var(--nc-primary);border-radius:var(--nc-radius);transition:inline-size .3s}:where(progress)::-moz-progress-bar{background-color:var(--nc-primary);border-radius:var(--nc-radius)}:where(progress):not([value]){--nc-progress-track:linear-gradient(to right, var(--nc-surface-3) 0%, var(--nc-primary) 25%, var(--nc-primary) 25%, var(--nc-surface-3) 50%, var(--nc-surface-3) 50%, var(--nc-primary) 75%, var(--nc-primary) 75%, var(--nc-surface-3) 100%);--nc-progress-track-size:200% 100%}@media (prefers-reduced-motion:no-preference){@supports selector(progress::after){:where(progress):not([value]):after{content:"";background:var(--nc-progress-track);background-size:var(--nc-progress-track-size);animation:12s linear infinite nc-progress-indeterminate;position:absolute;inset:0}}:where(progress):not([value])::-webkit-progress-bar{background:var(--nc-progress-track);background-size:var(--nc-progress-track-size);animation:12s linear infinite nc-progress-indeterminate}:where(progress):not([value])::-moz-progress-bar{background:var(--nc-progress-track);background-size:var(--nc-progress-track-size);animation:12s linear infinite nc-progress-indeterminate}}@keyframes nc-progress-indeterminate{0%{background-position:0 0}to{background-position:-200% 0}}:where(meter){appearance:none;border-radius:var(--nc-radius);background-color:var(--nc-surface-3);border:0;width:100%;height:.5rem;overflow:hidden}:where(meter)::-webkit-meter-bar{border-radius:var(--nc-radius);background-color:var(--nc-surface-3);border:0;height:.5rem}:where(meter)::-webkit-meter-optimum-value{background-color:var(--nc-valid);border-radius:var(--nc-radius)}:where(meter)::-webkit-meter-suboptimum-value{background-color:var(--nc-primary);border-radius:var(--nc-radius)}:where(meter)::-webkit-meter-even-less-good-value{background-color:var(--nc-invalid);border-radius:var(--nc-radius)}:where(meter)::-moz-meter-bar{background-color:var(--nc-primary);border-radius:var(--nc-radius)}:where(meter):-moz-meter-optimum::-moz-meter-bar{background-color:var(--nc-valid)}:where(meter):-moz-meter-sub-optimum::-moz-meter-bar{background-color:var(--nc-primary)}:where(meter):-moz-meter-sub-sub-optimum::-moz-meter-bar{background-color:var(--nc-invalid)}@supports (appearance:base-select){:where(select){appearance:base-select}:where(select)::picker(select){appearance:base-select}:where(select)::picker-icon{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");transition:rotate .4s}:where(select):open::picker-icon{rotate:180deg}:where(select)::picker(select){border:1px solid var(--nc-border);border-radius:var(--nc-radius);background-color:var(--nc-surface-1);opacity:0;transition:opacity .2s, overlay .2s allow-discrete, display .2s allow-discrete;padding:.25em}:where(select):open::picker(select){opacity:1}@starting-style{:where(select):open::picker(select){opacity:0}}:where(select) option{border-radius:var(--nc-radius);padding:.5em .75em;transition:background-color .15s}:where(select) option:hover{background-color:var(--nc-surface-2)}:where(select) option:checked{font-weight:600}}}@layer nimble.utilities{.secondary{background-color:var(--nc-secondary);border-color:var(--nc-secondary);color:var(--nc-secondary-contrast)}.secondary:hover{background-color:var(--nc-secondary-hover);border-color:var(--nc-secondary-hover)}.secondary:focus-visible{box-shadow:0 0 0 2px var(--nc-secondary-focus)}.outline{color:var(--nc-primary);background-color:#0000}.outline:hover{background-color:var(--nc-primary-focus);color:var(--nc-primary-hover);border-color:var(--nc-primary-hover)}.container{max-width:var(--nc-content-width);padding-inline:var(--nc-spacing);margin-inline:auto}.fluid{max-width:none;padding-inline:var(--nc-spacing);display:block}.full-bleed{grid-column:1/-1}.wide{width:100%;max-width:1200px;padding-inline:var(--nc-spacing);grid-column:1/-1;margin-inline:auto}.striped :where(tbody tr:nth-child(2n)){background-color:var(--nc-surface-2)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.overflow-auto{overflow:auto}}[type=date],[type=month],[type=week],[type=time],[type=datetime-local]{appearance:none}@supports selector(details::details-content){details::details-content{transition:opacity .3s ease, content-visibility .3s ease allow-discrete;opacity:0}details[open]::details-content{opacity:1}@supports (interpolate-size:allow-keywords){details{interpolate-size:allow-keywords}details::details-content{transition:height .3s ease, opacity .3s ease, content-visibility .3s ease allow-discrete;height:0;overflow:clip}details[open]::details-content{height:auto}}}@media print{body{color:#000;background:#fff}a[href]:after{content:" (" attr(href) ")";color:#555;font-size:.85em}a[href^=\#]:after,a[href^=javascript\:]:after{content:none}pre,blockquote{page-break-inside:avoid}h2,h3,h4{page-break-after:avoid}img{max-width:100%!important}@page{margin:2cm}}
package/package.json CHANGED
@@ -1,15 +1,23 @@
1
1
  {
2
2
  "name": "@leftium/nimble.css",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "A minimal class/classless CSS library combining Open Props design tokens with PicoCSS aesthetics",
5
5
  "type": "module",
6
6
  "main": "dist/nimble.min.css",
7
7
  "exports": {
8
8
  ".": "./dist/nimble.min.css",
9
+ "./core": "./dist/nimble-core.min.css",
9
10
  "./base": "./dist/nimble-base.min.css",
10
11
  "./reset": "./dist/nimble-reset.min.css",
11
12
  "./utilities": "./dist/nimble-utilities.min.css",
12
- "./scss": "./src/nimble.scss"
13
+ "./progress": "./dist/nimble-progress.min.css",
14
+ "./meter": "./dist/nimble-meter.min.css",
15
+ "./select": "./dist/nimble-select.min.css",
16
+ "./scss": "./src/nimble.scss",
17
+ "./scss/core": "./src/nimble-core.scss",
18
+ "./scss/progress": "./src/_progress.scss",
19
+ "./scss/meter": "./src/_meter.scss",
20
+ "./scss/select": "./src/_select.scss"
13
21
  },
14
22
  "repository": {
15
23
  "type": "git",