@phcdevworks/spectre-ui 1.7.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css CHANGED
@@ -41,6 +41,41 @@
41
41
  --sp-icon-box-icon-success: #16a34a;
42
42
  --sp-icon-box-icon-warning: #d48806;
43
43
  --sp-icon-box-icon-danger: #dc2626;
44
+ --sp-nav-bg: #ffffff;
45
+ --sp-nav-text: #141b24;
46
+ --sp-nav-link: #374253;
47
+ --sp-nav-link-hover: #1f57db;
48
+ --sp-nav-link-active: #1946b4;
49
+ --sp-nav-border: #d9dfeb;
50
+ --sp-modal-bg: #ffffff;
51
+ --sp-modal-shadow: 0 20px 48px -12px rgba(0, 0, 0, 0.20);
52
+ --sp-modal-border: #d9dfeb;
53
+ --sp-modal-overlay: rgba(0, 0, 0, 0.6);
54
+ --sp-toast-success-bg: #f0fdf4;
55
+ --sp-toast-success-text: #166534;
56
+ --sp-toast-success-border: #bbf7d0;
57
+ --sp-toast-success-icon: #16a34a;
58
+ --sp-toast-warning-bg: #fffbea;
59
+ --sp-toast-warning-text: #8f5200;
60
+ --sp-toast-warning-border: #ffe08a;
61
+ --sp-toast-warning-icon: #d48806;
62
+ --sp-toast-danger-bg: #fef2f2;
63
+ --sp-toast-danger-text: #991b1b;
64
+ --sp-toast-danger-border: #fecaca;
65
+ --sp-toast-danger-icon: #dc2626;
66
+ --sp-toast-info-bg: #f0f9ff;
67
+ --sp-toast-info-text: #0c4a6e;
68
+ --sp-toast-info-border: #bae6fd;
69
+ --sp-toast-info-icon: #0369a1;
70
+ --sp-tooltip-bg: #141b24;
71
+ --sp-tooltip-text: #ffffff;
72
+ --sp-tooltip-border: #374253;
73
+ --sp-dropdown-bg: #ffffff;
74
+ --sp-dropdown-border: #d9dfeb;
75
+ --sp-dropdown-item-default: transparent;
76
+ --sp-dropdown-item-hover: #eef1f6;
77
+ --sp-dropdown-item-active: #f0f9ff;
78
+ --sp-dropdown-item-text: #141b24;
44
79
  --sp-color-brand-50: #eef4ff;
45
80
  --sp-color-brand-100: #d9e7ff;
46
81
  --sp-color-brand-200: #b9d2ff;
@@ -120,17 +155,24 @@
120
155
  --sp-color-white: #ffffff;
121
156
  --sp-color-black: #000000;
122
157
  --sp-space-0: 0rem;
158
+ --sp-space-1: 0.0625rem;
159
+ --sp-space-2: 0.125rem;
123
160
  --sp-space-4: 0.25rem;
161
+ --sp-space-6: 0.375rem;
124
162
  --sp-space-8: 0.5rem;
163
+ --sp-space-10: 0.625rem;
125
164
  --sp-space-12: 0.75rem;
165
+ --sp-space-14: 0.875rem;
126
166
  --sp-space-16: 1rem;
127
167
  --sp-space-20: 1.25rem;
128
168
  --sp-space-24: 1.5rem;
169
+ --sp-space-28: 1.75rem;
129
170
  --sp-space-32: 2rem;
130
171
  --sp-space-40: 2.5rem;
131
172
  --sp-space-48: 3rem;
132
173
  --sp-space-56: 3.5rem;
133
174
  --sp-space-64: 4rem;
175
+ --sp-space-72: 4.5rem;
134
176
  --sp-space-80: 5rem;
135
177
  --sp-space-96: 6rem;
136
178
  --sp-layout-section-padding-sm: 1.5rem;
@@ -146,16 +188,21 @@
146
188
  --sp-layout-container-padding-inline-md: 1.5rem;
147
189
  --sp-layout-container-padding-inline-lg: 2rem;
148
190
  --sp-layout-container-max-width: 72rem;
191
+ --sp-border-width-none: 0;
149
192
  --sp-border-width-base: 1px;
150
193
  --sp-border-width-thick: 2px;
151
194
  --sp-border-style-none: none;
152
195
  --sp-border-style-solid: solid;
196
+ --sp-border-style-dashed: dashed;
197
+ --sp-border-style-dotted: dotted;
153
198
  --sp-radius-none: 0;
154
199
  --sp-radius-sm: 2px;
155
200
  --sp-radius-md: 4px;
156
201
  --sp-radius-lg: 8px;
157
202
  --sp-radius-xl: 12px;
158
203
  --sp-radius-2xl: 16px;
204
+ --sp-radius-3xl: 24px;
205
+ --sp-radius-4xl: 32px;
159
206
  --sp-radius-pill: 999px;
160
207
  --sp-font-family-sans: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
161
208
  --sp-font-family-serif: 'Times New Roman', Times, serif;
@@ -220,6 +267,7 @@
220
267
  --sp-z-index-popover: 1500;
221
268
  --sp-z-index-tooltip: 1600;
222
269
  --sp-z-index-toast: 1700;
270
+ --sp-duration-reduced: 0.01ms;
223
271
  --sp-duration-instant: 75ms;
224
272
  --sp-duration-fast: 150ms;
225
273
  --sp-duration-base: 200ms;
@@ -247,6 +295,7 @@
247
295
  --sp-focus-ring-style: solid;
248
296
  --sp-min-touch-target: 44px;
249
297
  --sp-min-text-size: 16px;
298
+ --sp-reduced-motion: 0.01ms;
250
299
  --sp-button-primary-bg: #0369a1;
251
300
  --sp-button-primary-bghover: #075985;
252
301
  --sp-button-primary-bgactive: #0c4a6e;
@@ -280,6 +329,7 @@
280
329
  --sp-button-danger-text: #ffffff;
281
330
  --sp-button-danger-textdisabled: #8a96ad;
282
331
  --sp-button-danger-focusring: rgba(239, 68, 68, 0.4);
332
+ --sp-button-danger-focusvisible: rgba(239, 68, 68, 0.4);
283
333
  --sp-button-success-bg: #15803d;
284
334
  --sp-button-success-bghover: #166534;
285
335
  --sp-button-success-bgactive: #14532d;
@@ -287,6 +337,7 @@
287
337
  --sp-button-success-text: #ffffff;
288
338
  --sp-button-success-textdisabled: #8a96ad;
289
339
  --sp-button-success-focusring: rgba(34, 197, 94, 0.4);
340
+ --sp-button-success-focusvisible: rgba(34, 197, 94, 0.4);
290
341
  --sp-button-cta-bg: #1f57db;
291
342
  --sp-button-cta-bghover: #1946b4;
292
343
  --sp-button-cta-bgactive: #173b8f;
@@ -345,6 +396,30 @@
345
396
  --sp-animation-pulse-duration: 1200ms;
346
397
  --sp-animation-pulse-easing: cubic-bezier(0.4, 0, 0.2, 1);
347
398
  --sp-animation-pulse-keyframes: pulse;
399
+ --sp-animation-reduced-motion-fadein-duration: 0.01ms;
400
+ --sp-animation-reduced-motion-fadein-easing: linear;
401
+ --sp-animation-reduced-motion-fadein-keyframes: fade-in;
402
+ --sp-animation-reduced-motion-fadeout-duration: 0.01ms;
403
+ --sp-animation-reduced-motion-fadeout-easing: linear;
404
+ --sp-animation-reduced-motion-fadeout-keyframes: fade-out;
405
+ --sp-animation-reduced-motion-slideup-duration: 0.01ms;
406
+ --sp-animation-reduced-motion-slideup-easing: linear;
407
+ --sp-animation-reduced-motion-slideup-keyframes: slide-up;
408
+ --sp-animation-reduced-motion-slidedown-duration: 0.01ms;
409
+ --sp-animation-reduced-motion-slidedown-easing: linear;
410
+ --sp-animation-reduced-motion-slidedown-keyframes: slide-down;
411
+ --sp-animation-reduced-motion-scalein-duration: 0.01ms;
412
+ --sp-animation-reduced-motion-scalein-easing: linear;
413
+ --sp-animation-reduced-motion-scalein-keyframes: scale-in;
414
+ --sp-animation-reduced-motion-bounce-duration: 0.01ms;
415
+ --sp-animation-reduced-motion-bounce-easing: linear;
416
+ --sp-animation-reduced-motion-bounce-keyframes: bounce;
417
+ --sp-animation-reduced-motion-shake-duration: 0.01ms;
418
+ --sp-animation-reduced-motion-shake-easing: linear;
419
+ --sp-animation-reduced-motion-shake-keyframes: shake;
420
+ --sp-animation-reduced-motion-pulse-duration: 0.01ms;
421
+ --sp-animation-reduced-motion-pulse-easing: linear;
422
+ --sp-animation-reduced-motion-pulse-keyframes: pulse;
348
423
  }
349
424
  :root[data-spectre-theme="dark"] {
350
425
  --sp-surface-page: #141b24;
@@ -385,6 +460,41 @@
385
460
  --sp-icon-box-icon-success: #4ade80;
386
461
  --sp-icon-box-icon-warning: #ffc21a;
387
462
  --sp-icon-box-icon-danger: #f87171;
463
+ --sp-nav-bg: #141b24;
464
+ --sp-nav-text: #f7f8fb;
465
+ --sp-nav-link: #b7c1d4;
466
+ --sp-nav-link-hover: #5a92ff;
467
+ --sp-nav-link-active: #8ab6ff;
468
+ --sp-nav-border: #374253;
469
+ --sp-modal-bg: #222b38;
470
+ --sp-modal-shadow: 0 20px 48px -12px rgba(0, 0, 0, 0.20);
471
+ --sp-modal-border: #374253;
472
+ --sp-modal-overlay: rgba(0, 0, 0, 0.6);
473
+ --sp-toast-success-bg: #14532d;
474
+ --sp-toast-success-text: #dcfce7;
475
+ --sp-toast-success-border: #15803d;
476
+ --sp-toast-success-icon: #4ade80;
477
+ --sp-toast-warning-bg: #734000;
478
+ --sp-toast-warning-text: #fff1c2;
479
+ --sp-toast-warning-border: #ad6800;
480
+ --sp-toast-warning-icon: #ffc21a;
481
+ --sp-toast-danger-bg: #7f1d1d;
482
+ --sp-toast-danger-text: #fee2e2;
483
+ --sp-toast-danger-border: #b91c1c;
484
+ --sp-toast-danger-icon: #f87171;
485
+ --sp-toast-info-bg: #082f49;
486
+ --sp-toast-info-text: #e0f2fe;
487
+ --sp-toast-info-border: #075985;
488
+ --sp-toast-info-icon: #38bdf8;
489
+ --sp-tooltip-bg: #f7f8fb;
490
+ --sp-tooltip-text: #141b24;
491
+ --sp-tooltip-border: #b7c1d4;
492
+ --sp-dropdown-bg: #222b38;
493
+ --sp-dropdown-border: #374253;
494
+ --sp-dropdown-item-default: transparent;
495
+ --sp-dropdown-item-hover: #374253;
496
+ --sp-dropdown-item-active: #082f49;
497
+ --sp-dropdown-item-text: #eef1f6;
388
498
  }
389
499
  @layer base {
390
500
 
@@ -467,6 +577,7 @@
467
577
  --sp-component-button-primary-bg-disabled: var(--sp-button-primary-bgdisabled);
468
578
  --sp-component-button-primary-text: var(--sp-button-primary-text);
469
579
  --sp-component-button-primary-text-disabled: var(--sp-button-primary-textdisabled);
580
+ --sp-component-button-primary-focus-visible: var(--sp-button-primary-focusvisible);
470
581
  --sp-component-button-secondary-bg: var(--sp-button-secondary-bg);
471
582
  --sp-component-button-secondary-bg-hover: var(--sp-button-secondary-bghover);
472
583
  --sp-component-button-secondary-bg-active: var(--sp-button-secondary-bgactive);
@@ -475,24 +586,28 @@
475
586
  --sp-component-button-secondary-text-disabled: var(--sp-button-secondary-textdisabled);
476
587
  --sp-component-button-secondary-border: var(--sp-button-secondary-border);
477
588
  --sp-component-button-secondary-border-disabled: var(--sp-button-secondary-borderdisabled);
589
+ --sp-component-button-secondary-focus-visible: var(--sp-button-secondary-focusvisible);
478
590
  --sp-component-button-ghost-bg: var(--sp-button-ghost-bg);
479
591
  --sp-component-button-ghost-bg-hover: var(--sp-button-ghost-bghover);
480
592
  --sp-component-button-ghost-bg-active: var(--sp-button-ghost-bgactive);
481
593
  --sp-component-button-ghost-bg-disabled: var(--sp-button-ghost-bgdisabled);
482
594
  --sp-component-button-ghost-text: var(--sp-button-ghost-text);
483
595
  --sp-component-button-ghost-text-disabled: var(--sp-button-ghost-textdisabled);
596
+ --sp-component-button-ghost-focus-visible: var(--sp-button-ghost-focusvisible);
484
597
  --sp-component-button-danger-bg: var(--sp-button-danger-bg);
485
598
  --sp-component-button-danger-bg-hover: var(--sp-button-danger-bghover);
486
599
  --sp-component-button-danger-bg-active: var(--sp-button-danger-bgactive);
487
600
  --sp-component-button-danger-bg-disabled: var(--sp-button-danger-bgdisabled);
488
601
  --sp-component-button-danger-text: var(--sp-button-danger-text);
489
602
  --sp-component-button-danger-text-disabled: var(--sp-button-danger-textdisabled);
603
+ --sp-component-button-danger-focus-visible: var(--sp-button-danger-focusvisible);
490
604
  --sp-component-button-success-bg: var(--sp-button-success-bg);
491
605
  --sp-component-button-success-bg-hover: var(--sp-button-success-bghover);
492
606
  --sp-component-button-success-bg-active: var(--sp-button-success-bgactive);
493
607
  --sp-component-button-success-bg-disabled: var(--sp-button-success-bgdisabled);
494
608
  --sp-component-button-success-text: var(--sp-button-success-text);
495
609
  --sp-component-button-success-text-disabled: var(--sp-button-success-textdisabled);
610
+ --sp-component-button-success-focus-visible: var(--sp-button-success-focusvisible);
496
611
  /* CTA button alignment restored to official tokens as they now use the brand palette (Blue). */
497
612
  --sp-component-button-cta-bg: var(--sp-button-cta-bg);
498
613
  --sp-component-button-cta-bg-hover: var(--sp-button-cta-bghover);
@@ -501,12 +616,14 @@
501
616
  --sp-component-button-cta-text: var(--sp-button-cta-text);
502
617
  --sp-component-button-cta-text-disabled: var(--sp-button-cta-textdisabled);
503
618
  --sp-component-button-cta-shadow: var(--sp-button-cta-shadow);
619
+ --sp-component-button-cta-focus-visible: var(--sp-button-cta-focusring);
504
620
  --sp-component-button-accent-bg: var(--sp-button-accent-bg);
505
621
  --sp-component-button-accent-bg-hover: var(--sp-button-accent-bghover);
506
622
  --sp-component-button-accent-bg-active: var(--sp-button-accent-bgactive);
507
623
  --sp-component-button-accent-bg-disabled: var(--sp-button-accent-bgdisabled);
508
624
  --sp-component-button-accent-text: var(--sp-button-accent-text);
509
625
  --sp-component-button-accent-text-disabled: var(--sp-button-accent-textdisabled);
626
+ --sp-component-button-accent-focus-visible: var(--sp-button-accent-focusvisible);
510
627
 
511
628
  /* card roles */
512
629
  --sp-component-card-bg: var(--sp-surface-card);
@@ -563,6 +680,9 @@
563
680
  --sp-component-badge-info-text: var(--sp-badge-info-text);
564
681
  --sp-component-badge-ghost-bg: var(--sp-button-ghost-bg);
565
682
  --sp-component-badge-ghost-text: var(--sp-button-ghost-text);
683
+ --sp-component-badge-outline-bg: transparent;
684
+ --sp-component-badge-outline-text: var(--sp-badge-neutral-text);
685
+ --sp-component-badge-outline-border: var(--sp-button-secondary-border);
566
686
  --sp-component-badge-accent-bg: var(--sp-button-accent-bg);
567
687
  --sp-component-badge-accent-text: var(--sp-button-accent-text);
568
688
  --sp-component-badge-cta-bg: var(--sp-button-cta-bg);
@@ -589,10 +709,12 @@
589
709
 
590
710
  /* icon box roles */
591
711
  --sp-component-iconbox-radius: var(--sp-radius-lg);
712
+ --sp-component-iconbox-size-xs: var(--sp-space-24);
592
713
  --sp-component-iconbox-size-sm: var(--sp-space-32);
593
714
  --sp-component-iconbox-size-md: var(--sp-space-48);
594
715
  --sp-component-iconbox-size-lg: var(--sp-space-64);
595
- --sp-component-iconbox-primary-bg: var(--sp-color-brand-50);
716
+ --sp-component-iconbox-primary-bg: var(--sp-icon-box-bg);
717
+ --sp-component-iconbox-border-color: var(--sp-icon-box-border);
596
718
  --sp-component-iconbox-primary-text: var(--sp-icon-box-icon-default);
597
719
  --sp-component-iconbox-success-bg: var(--sp-color-success-50);
598
720
  --sp-component-iconbox-success-text: var(--sp-icon-box-icon-success);
@@ -613,6 +735,9 @@
613
735
  --sp-component-iconbox-accent-text: var(--sp-button-accent-text);
614
736
  --sp-component-iconbox-cta-bg: var(--sp-button-cta-bg);
615
737
  --sp-component-iconbox-cta-text: var(--sp-button-cta-text);
738
+ --sp-component-iconbox-outline-bg: transparent;
739
+ --sp-component-iconbox-outline-text: var(--sp-badge-neutral-text);
740
+ --sp-component-iconbox-outline-border: var(--sp-button-secondary-border);
616
741
 
617
742
  /* testimonial roles */
618
743
  --sp-component-testimonial-bg: var(--sp-surface-card);
@@ -734,8 +859,86 @@
734
859
  --sp-component-spinner-border-width: var(--sp-border-width-thick);
735
860
  --sp-component-spinner-track-color: var(--sp-color-neutral-200);
736
861
  --sp-component-spinner-arc-color: var(--sp-button-primary-bg);
862
+ --sp-component-spinner-primary-arc: var(--sp-button-primary-bg);
863
+ --sp-component-spinner-secondary-arc: var(--sp-button-secondary-border);
864
+ --sp-component-spinner-success-arc: var(--sp-color-success-500);
865
+ --sp-component-spinner-warning-arc: var(--sp-color-warning-500);
866
+ --sp-component-spinner-danger-arc: var(--sp-color-error-500);
867
+ --sp-component-spinner-info-arc: var(--sp-color-info-500);
868
+ --sp-component-spinner-neutral-arc: var(--sp-color-neutral-500);
869
+ --sp-component-spinner-accent-arc: var(--sp-button-accent-bg);
870
+ --sp-component-spinner-cta-arc: var(--sp-button-cta-bg);
737
871
  --sp-component-spinner-duration: var(--sp-duration-long);
738
872
  --sp-component-spinner-easing: var(--sp-easing-linear);
873
+
874
+ /* nav roles */
875
+ --sp-component-nav-bg: var(--sp-nav-bg);
876
+ --sp-component-nav-text: var(--sp-nav-text);
877
+ --sp-component-nav-link: var(--sp-nav-link);
878
+ --sp-component-nav-link-hover: var(--sp-nav-link-hover);
879
+ --sp-component-nav-link-active: var(--sp-nav-link-active);
880
+ --sp-component-nav-border: var(--sp-nav-border);
881
+
882
+ /* toast roles */
883
+ --sp-component-toast-radius: var(--sp-radius-lg);
884
+ --sp-component-toast-padding-x: var(--sp-space-16);
885
+ --sp-component-toast-padding-y: var(--sp-space-12);
886
+ --sp-component-toast-gap: var(--sp-space-12);
887
+ --sp-component-toast-z-index: var(--sp-z-index-toast);
888
+ --sp-component-toast-info-bg: var(--sp-toast-info-bg);
889
+ --sp-component-toast-info-text: var(--sp-toast-info-text);
890
+ --sp-component-toast-info-border: var(--sp-toast-info-border);
891
+ --sp-component-toast-info-icon: var(--sp-toast-info-icon);
892
+ --sp-component-toast-success-bg: var(--sp-toast-success-bg);
893
+ --sp-component-toast-success-text: var(--sp-toast-success-text);
894
+ --sp-component-toast-success-border: var(--sp-toast-success-border);
895
+ --sp-component-toast-success-icon: var(--sp-toast-success-icon);
896
+ --sp-component-toast-warning-bg: var(--sp-toast-warning-bg);
897
+ --sp-component-toast-warning-text: var(--sp-toast-warning-text);
898
+ --sp-component-toast-warning-border: var(--sp-toast-warning-border);
899
+ --sp-component-toast-warning-icon: var(--sp-toast-warning-icon);
900
+ --sp-component-toast-danger-bg: var(--sp-toast-danger-bg);
901
+ --sp-component-toast-danger-text: var(--sp-toast-danger-text);
902
+ --sp-component-toast-danger-border: var(--sp-toast-danger-border);
903
+ --sp-component-toast-danger-icon: var(--sp-toast-danger-icon);
904
+
905
+ /* tooltip roles */
906
+ --sp-component-tooltip-bg: var(--sp-tooltip-bg);
907
+ --sp-component-tooltip-text: var(--sp-tooltip-text);
908
+ --sp-component-tooltip-border: var(--sp-tooltip-border);
909
+ --sp-component-tooltip-radius: var(--sp-radius-md);
910
+ --sp-component-tooltip-padding-x: var(--sp-space-8);
911
+ --sp-component-tooltip-padding-y: var(--sp-space-4);
912
+ --sp-component-tooltip-offset: var(--sp-space-8);
913
+ --sp-component-tooltip-opacity: var(--sp-opacity-tooltip);
914
+ --sp-component-tooltip-z-index: var(--sp-z-index-tooltip);
915
+
916
+ /* dropdown roles */
917
+ --sp-component-dropdown-bg: var(--sp-dropdown-bg);
918
+ --sp-component-dropdown-border: var(--sp-dropdown-border);
919
+ --sp-component-dropdown-item-default: var(--sp-dropdown-item-default);
920
+ --sp-component-dropdown-item-hover: var(--sp-dropdown-item-hover);
921
+ --sp-component-dropdown-item-active: var(--sp-dropdown-item-active);
922
+ --sp-component-dropdown-item-text: var(--sp-dropdown-item-text);
923
+ --sp-component-dropdown-radius: var(--sp-radius-lg);
924
+ --sp-component-dropdown-item-radius: var(--sp-radius-sm);
925
+ --sp-component-dropdown-shadow: var(--sp-shadow-md);
926
+ --sp-component-dropdown-padding: var(--sp-space-4);
927
+ --sp-component-dropdown-offset: var(--sp-space-4);
928
+ --sp-component-dropdown-item-padding-x: var(--sp-space-12);
929
+ --sp-component-dropdown-item-padding-y: var(--sp-space-8);
930
+ --sp-component-dropdown-item-gap: var(--sp-space-8);
931
+ --sp-component-dropdown-z-index: var(--sp-z-index-dropdown);
932
+
933
+ /* modal roles */
934
+ --sp-component-modal-bg: var(--sp-modal-bg);
935
+ --sp-component-modal-border: var(--sp-modal-border);
936
+ --sp-component-modal-shadow: var(--sp-modal-shadow);
937
+ --sp-component-modal-overlay: var(--sp-modal-overlay);
938
+ --sp-component-modal-radius: var(--sp-radius-lg);
939
+ --sp-component-modal-padding: var(--sp-space-24);
940
+ --sp-component-modal-gap: var(--sp-space-16);
941
+ --sp-component-modal-z-index: var(--sp-z-index-modal);
739
942
  }
740
943
 
741
944
  /* dark mode overrides mapped from Spectre token mode definitions */
@@ -747,7 +950,8 @@
747
950
  --sp-component-badge-neutral-bg-hover: var(--sp-color-neutral-600);
748
951
  --sp-component-badge-info-bg-hover: var(--sp-color-info-700);
749
952
 
750
- --sp-component-iconbox-primary-bg: var(--sp-color-neutral-800);
953
+ --sp-component-iconbox-primary-bg: var(--sp-icon-box-bg);
954
+ --sp-component-iconbox-border-color: var(--sp-icon-box-border);
751
955
  --sp-component-iconbox-primary-text: var(--sp-color-brand-400);
752
956
  --sp-component-iconbox-success-bg: var(--sp-color-neutral-800);
753
957
  --sp-component-iconbox-success-text: var(--sp-color-success-400);
@@ -794,6 +998,15 @@
794
998
 
795
999
  --sp-component-spinner-track-color: var(--sp-color-neutral-700);
796
1000
  --sp-component-spinner-arc-color: var(--sp-color-brand-400);
1001
+ --sp-component-spinner-primary-arc: var(--sp-color-brand-400);
1002
+ --sp-component-spinner-secondary-arc: var(--sp-color-neutral-400);
1003
+ --sp-component-spinner-success-arc: var(--sp-color-success-400);
1004
+ --sp-component-spinner-warning-arc: var(--sp-color-warning-400);
1005
+ --sp-component-spinner-danger-arc: var(--sp-color-error-400);
1006
+ --sp-component-spinner-info-arc: var(--sp-color-info-400);
1007
+ --sp-component-spinner-neutral-arc: var(--sp-color-neutral-400);
1008
+ --sp-component-spinner-accent-arc: var(--sp-color-brand-400);
1009
+ --sp-component-spinner-cta-arc: var(--sp-color-brand-400);
797
1010
  }
798
1011
 
799
1012
  /* BUTTONS -------------------------------------------------------------- */
@@ -883,6 +1096,12 @@
883
1096
  box-shadow: var(--sp-component-button-shadow);
884
1097
  }
885
1098
 
1099
+ .sp-btn--primary:focus-visible,
1100
+ .sp-btn--primary.sp-btn--focus,
1101
+ .sp-btn--primary.is-focus {
1102
+ box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-component-button-primary-focus-visible);
1103
+ }
1104
+
886
1105
  .sp-btn--primary.sp-btn--hover,
887
1106
  .sp-btn--primary.is-hover,
888
1107
  .sp-btn--primary:hover {
@@ -910,6 +1129,12 @@
910
1129
  border-color: var(--sp-component-button-secondary-border);
911
1130
  }
912
1131
 
1132
+ .sp-btn--secondary:focus-visible,
1133
+ .sp-btn--secondary.sp-btn--focus,
1134
+ .sp-btn--secondary.is-focus {
1135
+ box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-component-button-secondary-focus-visible);
1136
+ }
1137
+
913
1138
  .sp-btn--secondary.sp-btn--hover,
914
1139
  .sp-btn--secondary.is-hover,
915
1140
  .sp-btn--secondary:hover {
@@ -936,6 +1161,12 @@
936
1161
  color: var(--sp-component-button-ghost-text);
937
1162
  }
938
1163
 
1164
+ .sp-btn--ghost:focus-visible,
1165
+ .sp-btn--ghost.sp-btn--focus,
1166
+ .sp-btn--ghost.is-focus {
1167
+ box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-component-button-ghost-focus-visible);
1168
+ }
1169
+
939
1170
  .sp-btn--ghost.sp-btn--hover,
940
1171
  .sp-btn--ghost.is-hover,
941
1172
  .sp-btn--ghost:hover {
@@ -980,6 +1211,12 @@
980
1211
  color: var(--sp-component-button-danger-text-disabled);
981
1212
  }
982
1213
 
1214
+ .sp-btn--danger:focus-visible,
1215
+ .sp-btn--danger.sp-btn--focus,
1216
+ .sp-btn--danger.is-focus {
1217
+ box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-component-button-danger-focus-visible);
1218
+ }
1219
+
983
1220
  /* success */
984
1221
  .sp-btn--success {
985
1222
  background-color: var(--sp-component-button-success-bg);
@@ -1005,6 +1242,12 @@
1005
1242
  color: var(--sp-component-button-success-text-disabled);
1006
1243
  }
1007
1244
 
1245
+ .sp-btn--success:focus-visible,
1246
+ .sp-btn--success.sp-btn--focus,
1247
+ .sp-btn--success.is-focus {
1248
+ box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-component-button-success-focus-visible);
1249
+ }
1250
+
1008
1251
  /* cta */
1009
1252
  .sp-btn--cta {
1010
1253
  background-color: var(--sp-component-button-cta-bg);
@@ -1012,6 +1255,12 @@
1012
1255
  box-shadow: var(--sp-component-button-cta-shadow);
1013
1256
  }
1014
1257
 
1258
+ .sp-btn--cta:focus-visible,
1259
+ .sp-btn--cta.sp-btn--focus,
1260
+ .sp-btn--cta.is-focus {
1261
+ box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-component-button-cta-focus-visible);
1262
+ }
1263
+
1015
1264
  .sp-btn--cta.sp-btn--hover,
1016
1265
  .sp-btn--cta.is-hover,
1017
1266
  .sp-btn--cta:hover {
@@ -1038,6 +1287,12 @@
1038
1287
  color: var(--sp-component-button-accent-text);
1039
1288
  }
1040
1289
 
1290
+ .sp-btn--accent:focus-visible,
1291
+ .sp-btn--accent.sp-btn--focus,
1292
+ .sp-btn--accent.is-focus {
1293
+ box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-component-button-accent-focus-visible);
1294
+ }
1295
+
1041
1296
  .sp-btn--accent.sp-btn--hover,
1042
1297
  .sp-btn--accent.is-hover,
1043
1298
  .sp-btn--accent:hover {
@@ -1161,7 +1416,8 @@
1161
1416
  }
1162
1417
 
1163
1418
  /* State styling should not force typed text to be red/green by default */
1164
- .sp-input--error {
1419
+ .sp-input--error,
1420
+ .sp-input[aria-invalid="true"] {
1165
1421
  border-color: var(--sp-component-input-role-border-error);
1166
1422
  background-color: var(--sp-component-input-role-bg-error);
1167
1423
  color: var(--sp-component-input-role-text);
@@ -1421,6 +1677,12 @@
1421
1677
  background-color: var(--sp-component-badge-ghost-bg-hover);
1422
1678
  }
1423
1679
 
1680
+ .sp-badge--outline {
1681
+ background-color: var(--sp-component-badge-outline-bg);
1682
+ color: var(--sp-component-badge-outline-text);
1683
+ border-color: var(--sp-component-badge-outline-border);
1684
+ }
1685
+
1424
1686
  .sp-badge--accent {
1425
1687
  background-color: var(--sp-component-badge-accent-bg);
1426
1688
  color: var(--sp-component-badge-accent-text);
@@ -1488,7 +1750,7 @@
1488
1750
  border-radius: var(--sp-component-iconbox-radius);
1489
1751
  color: var(--sp-component-iconbox-primary-text);
1490
1752
  background-color: var(--sp-component-iconbox-primary-bg);
1491
- border: var(--sp-component-border-width) solid transparent;
1753
+ border: var(--sp-component-border-width) solid var(--sp-component-iconbox-border-color);
1492
1754
  font-family: var(--sp-font-family-sans);
1493
1755
  font-weight: var(--sp-font-md-weight);
1494
1756
  transition:
@@ -1541,6 +1803,12 @@
1541
1803
  fill: currentColor;
1542
1804
  }
1543
1805
 
1806
+ .sp-iconbox--xs {
1807
+ width: var(--sp-component-iconbox-size-xs);
1808
+ height: var(--sp-component-iconbox-size-xs);
1809
+ font-size: var(--sp-font-xs-size);
1810
+ }
1811
+
1544
1812
  .sp-iconbox--sm {
1545
1813
  width: var(--sp-component-iconbox-size-sm);
1546
1814
  height: var(--sp-component-iconbox-size-sm);
@@ -1618,6 +1886,12 @@
1618
1886
  color: var(--sp-component-iconbox-cta-text);
1619
1887
  }
1620
1888
 
1889
+ .sp-iconbox--outline {
1890
+ background-color: var(--sp-component-iconbox-outline-bg);
1891
+ color: var(--sp-component-iconbox-outline-text);
1892
+ border-color: var(--sp-component-iconbox-outline-border);
1893
+ }
1894
+
1621
1895
  .sp-iconbox--interactive {
1622
1896
  cursor: pointer;
1623
1897
  }
@@ -1958,19 +2232,19 @@
1958
2232
 
1959
2233
  .sp-rating--interactive:hover,
1960
2234
  .sp-rating--hover,
1961
- .is-hover {
2235
+ .sp-rating.is-hover {
1962
2236
  opacity: var(--sp-opacity-hover);
1963
2237
  }
1964
2238
 
1965
2239
  .sp-rating--interactive:active,
1966
2240
  .sp-rating--active,
1967
- .is-active {
2241
+ .sp-rating.is-active {
1968
2242
  opacity: var(--sp-opacity-active);
1969
2243
  }
1970
2244
 
1971
2245
  .sp-rating--interactive:focus-visible,
1972
2246
  .sp-rating--focus,
1973
- .is-focus {
2247
+ .sp-rating.is-focus {
1974
2248
  outline: none;
1975
2249
  box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-color-focus-primary);
1976
2250
  }
@@ -2386,6 +2660,52 @@
2386
2660
  border: var(--sp-component-spinner-border-width) solid var(--sp-component-spinner-track-color);
2387
2661
  border-top-color: var(--sp-component-spinner-arc-color);
2388
2662
  animation: sp-spin var(--sp-component-spinner-duration) var(--sp-component-spinner-easing) infinite;
2663
+ transition: opacity var(--sp-duration-fast) var(--sp-easing-out);
2664
+ }
2665
+
2666
+ .sp-spinner--primary {
2667
+ border-top-color: var(--sp-component-spinner-primary-arc);
2668
+ }
2669
+
2670
+ .sp-spinner--secondary {
2671
+ border-top-color: var(--sp-component-spinner-secondary-arc);
2672
+ }
2673
+
2674
+ .sp-spinner--success {
2675
+ border-top-color: var(--sp-component-spinner-success-arc);
2676
+ }
2677
+
2678
+ .sp-spinner--warning {
2679
+ border-top-color: var(--sp-component-spinner-warning-arc);
2680
+ }
2681
+
2682
+ .sp-spinner--danger {
2683
+ border-top-color: var(--sp-component-spinner-danger-arc);
2684
+ }
2685
+
2686
+ .sp-spinner--info {
2687
+ border-top-color: var(--sp-component-spinner-info-arc);
2688
+ }
2689
+
2690
+ .sp-spinner--neutral {
2691
+ border-top-color: var(--sp-component-spinner-neutral-arc);
2692
+ }
2693
+
2694
+ .sp-spinner--accent {
2695
+ border-top-color: var(--sp-component-spinner-accent-arc);
2696
+ }
2697
+
2698
+ .sp-spinner--cta {
2699
+ border-top-color: var(--sp-component-spinner-cta-arc);
2700
+ }
2701
+
2702
+ .sp-spinner--disabled {
2703
+ opacity: var(--sp-opacity-disabled);
2704
+ }
2705
+
2706
+ .sp-spinner--loading,
2707
+ .sp-spinner[aria-busy="true"] {
2708
+ opacity: var(--sp-opacity-active);
2389
2709
  }
2390
2710
 
2391
2711
  .sp-spinner--sm {
@@ -2402,6 +2722,337 @@
2402
2722
  width: var(--sp-component-spinner-size-lg);
2403
2723
  height: var(--sp-component-spinner-size-lg);
2404
2724
  }
2725
+
2726
+ /* nav */
2727
+ .sp-nav {
2728
+ display: flex;
2729
+ align-items: center;
2730
+ justify-content: space-between;
2731
+ gap: var(--sp-space-16);
2732
+ padding: var(--sp-space-12) var(--sp-space-16);
2733
+ background-color: var(--sp-component-nav-bg);
2734
+ color: var(--sp-component-nav-text);
2735
+ font-family: var(--sp-font-family-sans);
2736
+ transition:
2737
+ background-color var(--sp-duration-fast) var(--sp-easing-out),
2738
+ color var(--sp-duration-fast) var(--sp-easing-out),
2739
+ border-color var(--sp-duration-fast) var(--sp-easing-out);
2740
+ }
2741
+
2742
+ .sp-nav--bordered {
2743
+ border-bottom: var(--sp-component-border-width) solid var(--sp-component-nav-border);
2744
+ }
2745
+
2746
+ .sp-nav--sticky {
2747
+ position: sticky;
2748
+ top: 0;
2749
+ z-index: var(--sp-z-index-sticky);
2750
+ }
2751
+
2752
+ .sp-nav--full {
2753
+ width: 100%;
2754
+ }
2755
+
2756
+ .sp-nav__links {
2757
+ display: flex;
2758
+ align-items: center;
2759
+ gap: var(--sp-space-16);
2760
+ }
2761
+
2762
+ .sp-nav__link {
2763
+ color: var(--sp-component-nav-link);
2764
+ font-size: var(--sp-font-sm-size);
2765
+ line-height: var(--sp-font-sm-line-height);
2766
+ font-weight: var(--sp-font-sm-weight);
2767
+ text-decoration: none;
2768
+ transition: color var(--sp-duration-fast) var(--sp-easing-out);
2769
+ }
2770
+
2771
+ .sp-nav__link:hover,
2772
+ .sp-nav__link--hover,
2773
+ .sp-nav__link.is-hover {
2774
+ color: var(--sp-component-nav-link-hover);
2775
+ }
2776
+
2777
+ .sp-nav__link:focus-visible,
2778
+ .sp-nav__link--focus,
2779
+ .sp-nav__link.is-focus {
2780
+ outline: none;
2781
+ box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-color-focus-primary);
2782
+ }
2783
+
2784
+ .sp-nav__link--active,
2785
+ .sp-nav__link.is-active {
2786
+ color: var(--sp-component-nav-link-active);
2787
+ }
2788
+
2789
+ .sp-nav__link--disabled,
2790
+ .sp-nav__link[aria-disabled="true"] {
2791
+ pointer-events: none;
2792
+ opacity: var(--sp-opacity-disabled);
2793
+ }
2794
+
2795
+ /* TOASTS ----------------------------------------------------------------- */
2796
+ .sp-toast {
2797
+ display: flex;
2798
+ align-items: flex-start;
2799
+ gap: var(--sp-component-toast-gap);
2800
+ border-radius: var(--sp-component-toast-radius);
2801
+ border: var(--sp-component-border-width) solid transparent;
2802
+ padding: var(--sp-component-toast-padding-y) var(--sp-component-toast-padding-x);
2803
+ font-family: var(--sp-font-family-sans);
2804
+ font-size: var(--sp-font-sm-size);
2805
+ line-height: var(--sp-font-sm-line-height);
2806
+ z-index: var(--sp-component-toast-z-index);
2807
+ transition:
2808
+ background-color var(--sp-duration-fast) var(--sp-easing-out),
2809
+ color var(--sp-duration-fast) var(--sp-easing-out),
2810
+ border-color var(--sp-duration-fast) var(--sp-easing-out);
2811
+ }
2812
+
2813
+ .sp-toast--dismissed {
2814
+ display: none;
2815
+ }
2816
+
2817
+ .sp-toast--full {
2818
+ width: 100%;
2819
+ }
2820
+
2821
+ .sp-toast--info {
2822
+ background-color: var(--sp-component-toast-info-bg);
2823
+ color: var(--sp-component-toast-info-text);
2824
+ border-color: var(--sp-component-toast-info-border);
2825
+ }
2826
+
2827
+ .sp-toast--success {
2828
+ background-color: var(--sp-component-toast-success-bg);
2829
+ color: var(--sp-component-toast-success-text);
2830
+ border-color: var(--sp-component-toast-success-border);
2831
+ }
2832
+
2833
+ .sp-toast--warning {
2834
+ background-color: var(--sp-component-toast-warning-bg);
2835
+ color: var(--sp-component-toast-warning-text);
2836
+ border-color: var(--sp-component-toast-warning-border);
2837
+ }
2838
+
2839
+ .sp-toast--danger {
2840
+ background-color: var(--sp-component-toast-danger-bg);
2841
+ color: var(--sp-component-toast-danger-text);
2842
+ border-color: var(--sp-component-toast-danger-border);
2843
+ }
2844
+
2845
+ .sp-toast__icon {
2846
+ flex-shrink: 0;
2847
+ line-height: var(--sp-font-sm-line-height);
2848
+ }
2849
+
2850
+ .sp-toast__icon--info {
2851
+ color: var(--sp-component-toast-info-icon);
2852
+ }
2853
+
2854
+ .sp-toast__icon--success {
2855
+ color: var(--sp-component-toast-success-icon);
2856
+ }
2857
+
2858
+ .sp-toast__icon--warning {
2859
+ color: var(--sp-component-toast-warning-icon);
2860
+ }
2861
+
2862
+ .sp-toast__icon--danger {
2863
+ color: var(--sp-component-toast-danger-icon);
2864
+ }
2865
+
2866
+ /* TOOLTIPS --------------------------------------------------------------- */
2867
+ .sp-tooltip {
2868
+ position: absolute;
2869
+ display: inline-flex;
2870
+ align-items: center;
2871
+ justify-content: center;
2872
+ border-radius: var(--sp-component-tooltip-radius);
2873
+ border: var(--sp-component-border-width) solid var(--sp-component-tooltip-border);
2874
+ background-color: var(--sp-component-tooltip-bg);
2875
+ color: var(--sp-component-tooltip-text);
2876
+ padding: var(--sp-component-tooltip-padding-y) var(--sp-component-tooltip-padding-x);
2877
+ font-family: var(--sp-font-family-sans);
2878
+ font-size: var(--sp-font-xs-size);
2879
+ line-height: var(--sp-font-xs-line-height);
2880
+ white-space: nowrap;
2881
+ opacity: var(--sp-component-tooltip-opacity);
2882
+ z-index: var(--sp-component-tooltip-z-index);
2883
+ pointer-events: none;
2884
+ visibility: hidden;
2885
+ transition:
2886
+ opacity var(--sp-duration-fast) var(--sp-easing-out),
2887
+ visibility var(--sp-duration-fast) var(--sp-easing-out);
2888
+ }
2889
+
2890
+ .sp-tooltip--visible {
2891
+ visibility: visible;
2892
+ }
2893
+
2894
+ .sp-tooltip--top {
2895
+ bottom: 100%;
2896
+ left: 50%;
2897
+ transform: translate(-50%, calc(-1 * var(--sp-component-tooltip-offset)));
2898
+ }
2899
+
2900
+ .sp-tooltip--bottom {
2901
+ top: 100%;
2902
+ left: 50%;
2903
+ transform: translate(-50%, var(--sp-component-tooltip-offset));
2904
+ }
2905
+
2906
+ .sp-tooltip--left {
2907
+ right: 100%;
2908
+ top: 50%;
2909
+ transform: translate(calc(-1 * var(--sp-component-tooltip-offset)), -50%);
2910
+ }
2911
+
2912
+ .sp-tooltip--right {
2913
+ left: 100%;
2914
+ top: 50%;
2915
+ transform: translate(var(--sp-component-tooltip-offset), -50%);
2916
+ }
2917
+
2918
+ /* DROPDOWNS ---------------------------------------------------------------- */
2919
+ .sp-dropdown {
2920
+ position: relative;
2921
+ display: inline-block;
2922
+ }
2923
+
2924
+ .sp-dropdown--full {
2925
+ display: block;
2926
+ width: 100%;
2927
+ }
2928
+
2929
+ .sp-dropdown__menu {
2930
+ position: absolute;
2931
+ display: none;
2932
+ flex-direction: column;
2933
+ min-width: 100%;
2934
+ padding: var(--sp-component-dropdown-padding);
2935
+ background-color: var(--sp-component-dropdown-bg);
2936
+ border: var(--sp-component-border-width) solid var(--sp-component-dropdown-border);
2937
+ border-radius: var(--sp-component-dropdown-radius);
2938
+ box-shadow: var(--sp-component-dropdown-shadow);
2939
+ z-index: var(--sp-component-dropdown-z-index);
2940
+ font-family: var(--sp-font-family-sans);
2941
+ }
2942
+
2943
+ .sp-dropdown__menu--open {
2944
+ display: flex;
2945
+ }
2946
+
2947
+ .sp-dropdown__menu--bottom-start {
2948
+ top: 100%;
2949
+ left: 0;
2950
+ margin-top: var(--sp-component-dropdown-offset);
2951
+ }
2952
+
2953
+ .sp-dropdown__menu--bottom-end {
2954
+ top: 100%;
2955
+ right: 0;
2956
+ margin-top: var(--sp-component-dropdown-offset);
2957
+ }
2958
+
2959
+ .sp-dropdown__menu--top-start {
2960
+ bottom: 100%;
2961
+ left: 0;
2962
+ margin-bottom: var(--sp-component-dropdown-offset);
2963
+ }
2964
+
2965
+ .sp-dropdown__menu--top-end {
2966
+ bottom: 100%;
2967
+ right: 0;
2968
+ margin-bottom: var(--sp-component-dropdown-offset);
2969
+ }
2970
+
2971
+ .sp-dropdown__item {
2972
+ display: flex;
2973
+ align-items: center;
2974
+ gap: var(--sp-component-dropdown-item-gap);
2975
+ padding: var(--sp-component-dropdown-item-padding-y) var(--sp-component-dropdown-item-padding-x);
2976
+ border-radius: var(--sp-component-dropdown-item-radius);
2977
+ background-color: var(--sp-component-dropdown-item-default);
2978
+ color: var(--sp-component-dropdown-item-text);
2979
+ font-size: var(--sp-font-sm-size);
2980
+ line-height: var(--sp-font-sm-line-height);
2981
+ text-decoration: none;
2982
+ cursor: pointer;
2983
+ transition:
2984
+ background-color var(--sp-duration-fast) var(--sp-easing-out),
2985
+ color var(--sp-duration-fast) var(--sp-easing-out),
2986
+ opacity var(--sp-duration-fast) var(--sp-easing-out);
2987
+ }
2988
+
2989
+ .sp-dropdown__item:hover,
2990
+ .sp-dropdown__item--hover,
2991
+ .sp-dropdown__item.is-hover {
2992
+ background-color: var(--sp-component-dropdown-item-hover);
2993
+ }
2994
+
2995
+ .sp-dropdown__item:focus-visible,
2996
+ .sp-dropdown__item--focus,
2997
+ .sp-dropdown__item.is-focus {
2998
+ outline: none;
2999
+ box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-color-focus-primary);
3000
+ }
3001
+
3002
+ .sp-dropdown__item--active,
3003
+ .sp-dropdown__item.is-active {
3004
+ background-color: var(--sp-component-dropdown-item-active);
3005
+ }
3006
+
3007
+ .sp-dropdown__item--disabled,
3008
+ .sp-dropdown__item[aria-disabled="true"] {
3009
+ pointer-events: none;
3010
+ opacity: var(--sp-opacity-disabled);
3011
+ }
3012
+
3013
+ /* MODALS ------------------------------------------------------------------- */
3014
+ .sp-modal-overlay {
3015
+ position: fixed;
3016
+ inset: 0;
3017
+ display: none;
3018
+ align-items: center;
3019
+ justify-content: center;
3020
+ background-color: var(--sp-component-modal-overlay);
3021
+ z-index: var(--sp-component-modal-z-index);
3022
+ }
3023
+
3024
+ .sp-modal-overlay--open {
3025
+ display: flex;
3026
+ }
3027
+
3028
+ .sp-modal {
3029
+ display: flex;
3030
+ flex-direction: column;
3031
+ gap: var(--sp-component-modal-gap);
3032
+ max-width: 100%;
3033
+ max-height: 100%;
3034
+ overflow: auto;
3035
+ padding: var(--sp-component-modal-padding);
3036
+ background-color: var(--sp-component-modal-bg);
3037
+ border: var(--sp-component-border-width) solid var(--sp-component-modal-border);
3038
+ border-radius: var(--sp-component-modal-radius);
3039
+ box-shadow: var(--sp-component-modal-shadow);
3040
+ font-family: var(--sp-font-family-sans);
3041
+ opacity: 0;
3042
+ transform: scale(0.95);
3043
+ transition:
3044
+ opacity var(--sp-duration-fast) var(--sp-easing-out),
3045
+ transform var(--sp-duration-fast) var(--sp-easing-out);
3046
+ }
3047
+
3048
+ .sp-modal--open {
3049
+ opacity: 1;
3050
+ transform: scale(1);
3051
+ }
3052
+
3053
+ .sp-modal--full {
3054
+ width: 100%;
3055
+ }
2405
3056
  }
2406
3057
  @layer utilities {
2407
3058
  .sp-stack {