@phcdevworks/spectre-ui 1.6.0 → 1.7.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.
@@ -144,10 +144,14 @@
144
144
  --sp-layout-container-max-width: 72rem;
145
145
  --sp-border-width-base: 1px;
146
146
  --sp-border-width-thick: 2px;
147
+ --sp-border-style-none: none;
148
+ --sp-border-style-solid: solid;
147
149
  --sp-radius-none: 0;
148
150
  --sp-radius-sm: 2px;
149
151
  --sp-radius-md: 4px;
150
152
  --sp-radius-lg: 8px;
153
+ --sp-radius-xl: 12px;
154
+ --sp-radius-2xl: 16px;
151
155
  --sp-radius-pill: 999px;
152
156
  --sp-font-family-sans: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
153
157
  --sp-font-family-serif: 'Times New Roman', Times, serif;
@@ -183,34 +187,21 @@
183
187
  --sp-font-6xl-line-height: 5rem;
184
188
  --sp-font-6xl-weight: 900;
185
189
  --sp-font-xs-letter-spacing: 0.02em;
186
- --sp-text-on-page-default: #141b24;
187
- --sp-text-on-page-muted: #4b576a;
188
- --sp-text-on-page-subtle: #657287;
189
- --sp-text-on-page-meta: #657287;
190
- --sp-text-on-surface-default: #141b24;
191
- --sp-text-on-surface-muted: #4b576a;
192
- --sp-text-on-surface-subtle: #657287;
193
- --sp-text-on-surface-meta: #657287;
194
- --sp-badge-neutral-bg: #eef1f6;
195
- --sp-badge-neutral-text: #374253;
196
- --sp-badge-info-bg: #e0f2fe;
197
- --sp-badge-info-text: #075985;
198
- --sp-badge-success-bg: #dcfce7;
199
- --sp-badge-success-text: #166534;
200
- --sp-badge-warning-bg: #fff1c2;
201
- --sp-badge-warning-text: #8f5200;
202
- --sp-badge-danger-bg: #fee2e2;
203
- --sp-badge-danger-text: #991b1b;
204
- --sp-icon-box-bg: #ffffff;
205
- --sp-icon-box-border: #d9dfeb;
206
- --sp-icon-box-icon-default: #0369a1;
207
- --sp-icon-box-icon-success: #16a34a;
208
- --sp-icon-box-icon-warning: #d48806;
209
- --sp-icon-box-icon-danger: #dc2626;
190
+ --sp-font-sm-letter-spacing: 0em;
191
+ --sp-font-md-letter-spacing: 0em;
192
+ --sp-font-lg-letter-spacing: 0em;
193
+ --sp-font-xl-letter-spacing: 0em;
194
+ --sp-font-2xl-letter-spacing: 0em;
195
+ --sp-font-3xl-letter-spacing: 0em;
196
+ --sp-font-4xl-letter-spacing: 0em;
197
+ --sp-font-5xl-letter-spacing: 0em;
198
+ --sp-font-6xl-letter-spacing: 0em;
210
199
  --sp-shadow-none: none;
211
200
  --sp-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.06);
212
201
  --sp-shadow-md: 0 2px 6px -1px rgba(0, 0, 0, 0.08);
213
202
  --sp-shadow-lg: 0 6px 16px -4px rgba(0, 0, 0, 0.12);
203
+ --sp-shadow-xl: 0 12px 24px -6px rgba(0, 0, 0, 0.15);
204
+ --sp-shadow-2xl: 0 20px 48px -12px rgba(0, 0, 0, 0.20);
214
205
  --sp-breakpoint-sm: 640px;
215
206
  --sp-breakpoint-md: 768px;
216
207
  --sp-breakpoint-lg: 1024px;
@@ -224,20 +215,26 @@
224
215
  --sp-z-index-modal: 1400;
225
216
  --sp-z-index-popover: 1500;
226
217
  --sp-z-index-tooltip: 1600;
218
+ --sp-z-index-toast: 1700;
227
219
  --sp-duration-instant: 75ms;
228
220
  --sp-duration-fast: 150ms;
229
221
  --sp-duration-base: 200ms;
222
+ --sp-duration-relaxed: 250ms;
230
223
  --sp-duration-moderate: 300ms;
231
224
  --sp-duration-slow: 500ms;
232
225
  --sp-duration-slower: 700ms;
226
+ --sp-duration-long: 1000ms;
227
+ --sp-duration-slowest: 1200ms;
233
228
  --sp-easing-linear: linear;
234
229
  --sp-easing-in: cubic-bezier(0.4, 0, 1, 1);
235
230
  --sp-easing-out: cubic-bezier(0, 0, 0.2, 1);
236
231
  --sp-easing-inout: cubic-bezier(0.4, 0, 0.2, 1);
237
232
  --sp-easing-spring: cubic-bezier(0.4, 0, 0.2, 1);
233
+ --sp-easing-overshoot: cubic-bezier(0.34, 1.56, 0.64, 1);
238
234
  --sp-opacity-disabled: 0.38;
239
235
  --sp-opacity-hover: 0.92;
240
236
  --sp-opacity-active: 0.84;
237
+ --sp-opacity-loading: 0.6;
241
238
  --sp-opacity-focus: 1;
242
239
  --sp-opacity-overlay: 0.5;
243
240
  --sp-opacity-tooltip: 0.95;
@@ -369,7 +366,7 @@
369
366
  --sp-button-text-default: #eef1f6;
370
367
  --sp-button-text-on-primary: #ffffff;
371
368
  --sp-badge-neutral-bg: #374253;
372
- --sp-badge-neutral-text: #eef1f6;
369
+ --sp-badge-neutral-text: #f7f8fb;
373
370
  --sp-badge-info-bg: #0c4a6e;
374
371
  --sp-badge-info-text: #e0f2fe;
375
372
  --sp-badge-success-bg: #166534;
@@ -585,6 +582,90 @@
585
582
  --sp-component-rating-size-sm: var(--sp-font-sm-size);
586
583
  --sp-component-rating-size-md: var(--sp-font-md-size);
587
584
  --sp-component-rating-size-lg: var(--sp-font-lg-size);
585
+
586
+ /* alert roles */
587
+ --sp-component-alert-radius: var(--sp-radius-lg);
588
+ --sp-component-alert-padding-x: var(--sp-space-16);
589
+ --sp-component-alert-padding-y-sm: var(--sp-space-8);
590
+ --sp-component-alert-padding-y-md: var(--sp-space-12);
591
+ --sp-component-alert-padding-y-lg: var(--sp-space-16);
592
+ --sp-component-alert-info-bg: var(--sp-badge-info-bg);
593
+ --sp-component-alert-info-text: var(--sp-badge-info-text);
594
+ --sp-component-alert-info-border: var(--sp-color-info-200);
595
+ --sp-component-alert-success-bg: var(--sp-badge-success-bg);
596
+ --sp-component-alert-success-text: var(--sp-badge-success-text);
597
+ --sp-component-alert-success-border: var(--sp-color-success-200);
598
+ --sp-component-alert-warning-bg: var(--sp-badge-warning-bg);
599
+ --sp-component-alert-warning-text: var(--sp-badge-warning-text);
600
+ --sp-component-alert-warning-border: var(--sp-color-warning-200);
601
+ --sp-component-alert-danger-bg: var(--sp-badge-danger-bg);
602
+ --sp-component-alert-danger-text: var(--sp-badge-danger-text);
603
+ --sp-component-alert-danger-border: var(--sp-color-error-200);
604
+ --sp-component-alert-neutral-bg: var(--sp-badge-neutral-bg);
605
+ --sp-component-alert-neutral-text: var(--sp-badge-neutral-text);
606
+ --sp-component-alert-neutral-border: var(--sp-color-neutral-200);
607
+
608
+ /* avatar roles */
609
+ --sp-component-avatar-size-xs: var(--sp-space-24);
610
+ --sp-component-avatar-size-sm: var(--sp-space-32);
611
+ --sp-component-avatar-size-md: var(--sp-space-48);
612
+ --sp-component-avatar-size-lg: var(--sp-space-64);
613
+ --sp-component-avatar-size-xl: var(--sp-space-80);
614
+ --sp-component-avatar-bg: var(--sp-surface-alternate);
615
+ --sp-component-avatar-text: var(--sp-text-on-surface-default);
616
+ --sp-component-avatar-radius-circle: var(--sp-radius-pill);
617
+ --sp-component-avatar-radius-square: var(--sp-radius-lg);
618
+ --sp-component-avatar-font: var(--sp-font-family-sans);
619
+ --sp-component-avatar-weight: var(--sp-font-md-weight);
620
+
621
+ /* tag roles */
622
+ --sp-component-tag-radius: var(--sp-radius-pill);
623
+ --sp-component-tag-font: var(--sp-font-family-sans);
624
+ --sp-component-tag-weight: var(--sp-font-sm-weight);
625
+ --sp-component-tag-padding-x-sm: var(--sp-space-8);
626
+ --sp-component-tag-padding-x-md: var(--sp-space-12);
627
+ --sp-component-tag-padding-x-lg: var(--sp-space-16);
628
+ --sp-component-tag-default-bg: var(--sp-badge-neutral-bg);
629
+ --sp-component-tag-default-text: var(--sp-badge-neutral-text);
630
+ --sp-component-tag-primary-bg: var(--sp-button-primary-bg);
631
+ --sp-component-tag-primary-text: var(--sp-button-text-on-primary);
632
+ --sp-component-tag-secondary-bg: var(--sp-button-secondary-bg);
633
+ --sp-component-tag-secondary-text: var(--sp-button-secondary-text);
634
+ --sp-component-tag-success-bg: var(--sp-badge-success-bg);
635
+ --sp-component-tag-success-text: var(--sp-badge-success-text);
636
+ --sp-component-tag-warning-bg: var(--sp-badge-warning-bg);
637
+ --sp-component-tag-warning-text: var(--sp-badge-warning-text);
638
+ --sp-component-tag-danger-bg: var(--sp-badge-danger-bg);
639
+ --sp-component-tag-danger-text: var(--sp-badge-danger-text);
640
+ --sp-component-tag-info-bg: var(--sp-badge-info-bg);
641
+ --sp-component-tag-info-text: var(--sp-badge-info-text);
642
+ --sp-component-tag-neutral-bg: var(--sp-badge-neutral-bg);
643
+ --sp-component-tag-neutral-text: var(--sp-badge-neutral-text);
644
+ --sp-component-tag-accent-bg: var(--sp-button-accent-bg);
645
+ --sp-component-tag-accent-text: var(--sp-button-accent-text);
646
+ --sp-component-tag-cta-bg: var(--sp-button-cta-bg);
647
+ --sp-component-tag-cta-text: var(--sp-button-cta-text);
648
+ --sp-component-tag-outline-bg: transparent;
649
+ --sp-component-tag-outline-text: var(--sp-badge-neutral-text);
650
+ --sp-component-tag-outline-border: var(--sp-button-secondary-border);
651
+ --sp-component-tag-ghost-bg: var(--sp-button-ghost-bg);
652
+ --sp-component-tag-ghost-text: var(--sp-button-ghost-text);
653
+ --sp-component-tag-selected-bg: var(--sp-button-primary-bg);
654
+ --sp-component-tag-selected-text: var(--sp-button-primary-text);
655
+ --sp-component-tag-gap: var(--sp-space-4);
656
+ --sp-component-tag-padding-y-sm: var(--sp-space-4);
657
+ --sp-component-tag-padding-y-md: var(--sp-space-4);
658
+ --sp-component-tag-padding-y-lg: var(--sp-space-4);
659
+
660
+ /* spinner roles */
661
+ --sp-component-spinner-size-sm: var(--sp-space-16);
662
+ --sp-component-spinner-size-md: var(--sp-space-24);
663
+ --sp-component-spinner-size-lg: var(--sp-space-32);
664
+ --sp-component-spinner-border-width: var(--sp-border-width-thick);
665
+ --sp-component-spinner-track-color: var(--sp-color-neutral-200);
666
+ --sp-component-spinner-arc-color: var(--sp-button-primary-bg);
667
+ --sp-component-spinner-duration: var(--sp-duration-long);
668
+ --sp-component-spinner-easing: var(--sp-easing-linear);
588
669
  }
589
670
 
590
671
  /* dark mode overrides mapped from Spectre token mode definitions */
@@ -624,6 +705,25 @@
624
705
  --sp-component-rating-star-filled: var(--sp-color-warning-400);
625
706
  --sp-component-rating-star-empty: var(--sp-color-neutral-700);
626
707
  --sp-component-rating-text: var(--sp-color-neutral-400);
708
+
709
+ --sp-component-alert-info-bg: var(--sp-color-info-800);
710
+ --sp-component-alert-info-text: var(--sp-color-info-100);
711
+ --sp-component-alert-info-border: var(--sp-color-info-700);
712
+ --sp-component-alert-success-bg: var(--sp-color-success-800);
713
+ --sp-component-alert-success-text: var(--sp-color-success-100);
714
+ --sp-component-alert-success-border: var(--sp-color-success-700);
715
+ --sp-component-alert-warning-bg: var(--sp-color-warning-800);
716
+ --sp-component-alert-warning-text: var(--sp-color-warning-100);
717
+ --sp-component-alert-warning-border: var(--sp-color-warning-700);
718
+ --sp-component-alert-danger-bg: var(--sp-color-error-800);
719
+ --sp-component-alert-danger-text: var(--sp-color-error-100);
720
+ --sp-component-alert-danger-border: var(--sp-color-error-700);
721
+ --sp-component-alert-neutral-bg: var(--sp-color-neutral-700);
722
+ --sp-component-alert-neutral-text: var(--sp-color-neutral-100);
723
+ --sp-component-alert-neutral-border: var(--sp-color-neutral-600);
724
+
725
+ --sp-component-spinner-track-color: var(--sp-color-neutral-700);
726
+ --sp-component-spinner-arc-color: var(--sp-color-brand-400);
627
727
  }
628
728
 
629
729
  /* BUTTONS -------------------------------------------------------------- */
@@ -658,7 +758,8 @@
658
758
  pointer-events: none;
659
759
  }
660
760
 
661
- .sp-btn--loading {
761
+ .sp-btn--loading,
762
+ .sp-btn[aria-busy="true"] {
662
763
  pointer-events: none;
663
764
  opacity: var(--sp-opacity-active);
664
765
  }
@@ -725,6 +826,7 @@
725
826
  }
726
827
 
727
828
  .sp-btn--primary.sp-btn--disabled,
829
+ .sp-btn--primary[aria-disabled="true"],
728
830
  .sp-btn--primary:disabled {
729
831
  background-color: var(--sp-component-button-primary-bg-disabled);
730
832
  color: var(--sp-component-button-primary-text-disabled);
@@ -751,6 +853,7 @@
751
853
  }
752
854
 
753
855
  .sp-btn--secondary.sp-btn--disabled,
856
+ .sp-btn--secondary[aria-disabled="true"],
754
857
  .sp-btn--secondary:disabled {
755
858
  background-color: var(--sp-component-button-secondary-bg-disabled);
756
859
  color: var(--sp-component-button-secondary-text-disabled);
@@ -776,6 +879,7 @@
776
879
  }
777
880
 
778
881
  .sp-btn--ghost.sp-btn--disabled,
882
+ .sp-btn--ghost[aria-disabled="true"],
779
883
  .sp-btn--ghost:disabled {
780
884
  color: var(--sp-component-button-ghost-text-disabled);
781
885
  background-color: var(--sp-component-button-ghost-bg-disabled);
@@ -800,6 +904,7 @@
800
904
  }
801
905
 
802
906
  .sp-btn--danger.sp-btn--disabled,
907
+ .sp-btn--danger[aria-disabled="true"],
803
908
  .sp-btn--danger:disabled {
804
909
  background-color: var(--sp-component-button-danger-bg-disabled);
805
910
  color: var(--sp-component-button-danger-text-disabled);
@@ -824,6 +929,7 @@
824
929
  }
825
930
 
826
931
  .sp-btn--success.sp-btn--disabled,
932
+ .sp-btn--success[aria-disabled="true"],
827
933
  .sp-btn--success:disabled {
828
934
  background-color: var(--sp-component-button-success-bg-disabled);
829
935
  color: var(--sp-component-button-success-text-disabled);
@@ -849,6 +955,7 @@
849
955
  }
850
956
 
851
957
  .sp-btn--cta.sp-btn--disabled,
958
+ .sp-btn--cta[aria-disabled="true"],
852
959
  .sp-btn--cta:disabled {
853
960
  background-color: var(--sp-component-button-cta-bg-disabled);
854
961
  color: var(--sp-component-button-cta-text-disabled);
@@ -874,6 +981,7 @@
874
981
  }
875
982
 
876
983
  .sp-btn--accent.sp-btn--disabled,
984
+ .sp-btn--accent[aria-disabled="true"],
877
985
  .sp-btn--accent:disabled {
878
986
  background-color: var(--sp-component-button-accent-bg-disabled);
879
987
  color: var(--sp-component-button-accent-text-disabled);
@@ -1733,9 +1841,11 @@
1733
1841
  gap: var(--sp-space-8);
1734
1842
  font-size: var(--sp-component-rating-size-md);
1735
1843
  border-radius: var(--sp-radius-md);
1844
+ border: var(--sp-component-border-width) solid transparent;
1736
1845
  transition:
1737
1846
  opacity var(--sp-duration-fast) var(--sp-easing-out),
1738
- box-shadow var(--sp-duration-fast) var(--sp-easing-out);
1847
+ box-shadow var(--sp-duration-fast) var(--sp-easing-out),
1848
+ border-color var(--sp-duration-fast) var(--sp-easing-out);
1739
1849
  }
1740
1850
 
1741
1851
  .sp-rating--sm {
@@ -1766,7 +1876,8 @@
1766
1876
  cursor: not-allowed;
1767
1877
  }
1768
1878
 
1769
- .sp-rating--loading {
1879
+ .sp-rating--loading,
1880
+ .sp-rating[aria-busy="true"] {
1770
1881
  opacity: var(--sp-opacity-active);
1771
1882
  pointer-events: none;
1772
1883
  }
@@ -1776,20 +1887,20 @@
1776
1887
  }
1777
1888
 
1778
1889
  .sp-rating--interactive:hover,
1779
- .sp-rating--interactive.sp-rating--hover,
1780
- .sp-rating--interactive.is-hover {
1890
+ .sp-rating--hover,
1891
+ .is-hover {
1781
1892
  opacity: var(--sp-opacity-hover);
1782
1893
  }
1783
1894
 
1784
1895
  .sp-rating--interactive:active,
1785
- .sp-rating--interactive.sp-rating--active,
1786
- .sp-rating--interactive.is-active {
1896
+ .sp-rating--active,
1897
+ .is-active {
1787
1898
  opacity: var(--sp-opacity-active);
1788
1899
  }
1789
1900
 
1790
1901
  .sp-rating--interactive:focus-visible,
1791
- .sp-rating--interactive.sp-rating--focus,
1792
- .sp-rating--interactive.is-focus {
1902
+ .sp-rating--focus,
1903
+ .is-focus {
1793
1904
  outline: none;
1794
1905
  box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-color-focus-primary);
1795
1906
  }
@@ -1814,4 +1925,411 @@
1814
1925
  color: var(--sp-component-rating-text);
1815
1926
  font-size: var(--sp-font-sm-size);
1816
1927
  }
1928
+
1929
+ .sp-rating-text--disabled {
1930
+ opacity: var(--sp-opacity-disabled);
1931
+ }
1932
+
1933
+ /* ALERTS --------------------------------------------------------------- */
1934
+ .sp-alert {
1935
+ display: flex;
1936
+ align-items: flex-start;
1937
+ gap: var(--sp-space-12);
1938
+ border-radius: var(--sp-component-alert-radius);
1939
+ border: var(--sp-component-border-width) solid transparent;
1940
+ padding: var(--sp-component-alert-padding-y-md) var(--sp-component-alert-padding-x);
1941
+ font-family: var(--sp-font-family-sans);
1942
+ font-size: var(--sp-font-sm-size);
1943
+ line-height: var(--sp-font-sm-line-height);
1944
+ transition:
1945
+ background-color var(--sp-duration-fast) var(--sp-easing-out),
1946
+ color var(--sp-duration-fast) var(--sp-easing-out),
1947
+ box-shadow var(--sp-duration-fast) var(--sp-easing-out),
1948
+ border-color var(--sp-duration-fast) var(--sp-easing-out),
1949
+ opacity var(--sp-duration-fast) var(--sp-easing-out);
1950
+ }
1951
+
1952
+ .sp-alert--dismissed {
1953
+ display: none;
1954
+ }
1955
+
1956
+ .sp-alert--full {
1957
+ width: 100%;
1958
+ }
1959
+
1960
+ .sp-alert--sm {
1961
+ padding: var(--sp-component-alert-padding-y-sm) var(--sp-component-alert-padding-x);
1962
+ font-size: var(--sp-font-xs-size);
1963
+ line-height: var(--sp-font-xs-line-height);
1964
+ }
1965
+
1966
+ .sp-alert--md {
1967
+ padding: var(--sp-component-alert-padding-y-md) var(--sp-component-alert-padding-x);
1968
+ font-size: var(--sp-font-sm-size);
1969
+ line-height: var(--sp-font-sm-line-height);
1970
+ }
1971
+
1972
+ .sp-alert--lg {
1973
+ padding: var(--sp-component-alert-padding-y-lg) var(--sp-component-alert-padding-x);
1974
+ font-size: var(--sp-font-md-size);
1975
+ line-height: var(--sp-font-md-line-height);
1976
+ }
1977
+
1978
+ .sp-alert--info {
1979
+ background-color: var(--sp-component-alert-info-bg);
1980
+ color: var(--sp-component-alert-info-text);
1981
+ border-color: var(--sp-component-alert-info-border);
1982
+ }
1983
+
1984
+ .sp-alert--success {
1985
+ background-color: var(--sp-component-alert-success-bg);
1986
+ color: var(--sp-component-alert-success-text);
1987
+ border-color: var(--sp-component-alert-success-border);
1988
+ }
1989
+
1990
+ .sp-alert--warning {
1991
+ background-color: var(--sp-component-alert-warning-bg);
1992
+ color: var(--sp-component-alert-warning-text);
1993
+ border-color: var(--sp-component-alert-warning-border);
1994
+ }
1995
+
1996
+ .sp-alert--danger {
1997
+ background-color: var(--sp-component-alert-danger-bg);
1998
+ color: var(--sp-component-alert-danger-text);
1999
+ border-color: var(--sp-component-alert-danger-border);
2000
+ }
2001
+
2002
+ .sp-alert--neutral {
2003
+ background-color: var(--sp-component-alert-neutral-bg);
2004
+ color: var(--sp-component-alert-neutral-text);
2005
+ border-color: var(--sp-component-alert-neutral-border);
2006
+ }
2007
+
2008
+ .sp-alert--interactive {
2009
+ cursor: pointer;
2010
+ }
2011
+
2012
+ .sp-alert--interactive:hover,
2013
+ .sp-alert--hover,
2014
+ .sp-alert.is-hover {
2015
+ opacity: var(--sp-opacity-hover);
2016
+ }
2017
+
2018
+ .sp-alert--interactive:active,
2019
+ .sp-alert--active,
2020
+ .sp-alert.is-active {
2021
+ opacity: var(--sp-opacity-active);
2022
+ }
2023
+
2024
+ .sp-alert--interactive:focus-visible,
2025
+ .sp-alert--focus,
2026
+ .sp-alert.is-focus {
2027
+ outline: none;
2028
+ box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-color-focus-primary);
2029
+ }
2030
+
2031
+ .sp-alert:disabled,
2032
+ .sp-alert[aria-disabled="true"],
2033
+ .sp-alert--disabled {
2034
+ opacity: var(--sp-opacity-disabled);
2035
+ pointer-events: none;
2036
+ cursor: not-allowed;
2037
+ }
2038
+
2039
+ .sp-alert--loading,
2040
+ .sp-alert[aria-busy="true"] {
2041
+ opacity: var(--sp-opacity-active);
2042
+ pointer-events: none;
2043
+ }
2044
+
2045
+ /* AVATARS -------------------------------------------------------------- */
2046
+ .sp-avatar {
2047
+ display: inline-flex;
2048
+ align-items: center;
2049
+ justify-content: center;
2050
+ overflow: hidden;
2051
+ flex-shrink: 0;
2052
+ background-color: var(--sp-component-avatar-bg);
2053
+ color: var(--sp-component-avatar-text);
2054
+ border: var(--sp-component-border-width) solid transparent;
2055
+ font-family: var(--sp-component-avatar-font);
2056
+ font-weight: var(--sp-component-avatar-weight);
2057
+ transition:
2058
+ background-color var(--sp-duration-fast) var(--sp-easing-out),
2059
+ color var(--sp-duration-fast) var(--sp-easing-out),
2060
+ box-shadow var(--sp-duration-fast) var(--sp-easing-out),
2061
+ border-color var(--sp-duration-fast) var(--sp-easing-out),
2062
+ opacity var(--sp-duration-fast) var(--sp-easing-out);
2063
+ }
2064
+
2065
+ .sp-avatar--xs {
2066
+ width: var(--sp-component-avatar-size-xs);
2067
+ height: var(--sp-component-avatar-size-xs);
2068
+ font-size: var(--sp-font-xs-size);
2069
+ line-height: var(--sp-font-xs-line-height);
2070
+ }
2071
+
2072
+ .sp-avatar--sm {
2073
+ width: var(--sp-component-avatar-size-sm);
2074
+ height: var(--sp-component-avatar-size-sm);
2075
+ font-size: var(--sp-font-xs-size);
2076
+ line-height: var(--sp-font-xs-line-height);
2077
+ }
2078
+
2079
+ .sp-avatar--md {
2080
+ width: var(--sp-component-avatar-size-md);
2081
+ height: var(--sp-component-avatar-size-md);
2082
+ font-size: var(--sp-font-sm-size);
2083
+ line-height: var(--sp-font-sm-line-height);
2084
+ }
2085
+
2086
+ .sp-avatar--lg {
2087
+ width: var(--sp-component-avatar-size-lg);
2088
+ height: var(--sp-component-avatar-size-lg);
2089
+ font-size: var(--sp-font-md-size);
2090
+ line-height: var(--sp-font-md-line-height);
2091
+ }
2092
+
2093
+ .sp-avatar--xl {
2094
+ width: var(--sp-component-avatar-size-xl);
2095
+ height: var(--sp-component-avatar-size-xl);
2096
+ font-size: var(--sp-font-lg-size);
2097
+ line-height: var(--sp-font-lg-line-height);
2098
+ }
2099
+
2100
+ .sp-avatar--circle {
2101
+ border-radius: var(--sp-component-avatar-radius-circle);
2102
+ }
2103
+
2104
+ .sp-avatar--square {
2105
+ border-radius: var(--sp-component-avatar-radius-square);
2106
+ }
2107
+
2108
+ .sp-avatar--full {
2109
+ width: 100%;
2110
+ }
2111
+
2112
+ .sp-avatar--interactive {
2113
+ cursor: pointer;
2114
+ }
2115
+
2116
+ .sp-avatar--interactive:hover,
2117
+ .sp-avatar--hover,
2118
+ .sp-avatar.is-hover {
2119
+ opacity: var(--sp-opacity-hover);
2120
+ }
2121
+
2122
+ .sp-avatar--interactive:active,
2123
+ .sp-avatar--active,
2124
+ .sp-avatar.is-active {
2125
+ opacity: var(--sp-opacity-active);
2126
+ }
2127
+
2128
+ .sp-avatar--interactive:focus-visible,
2129
+ .sp-avatar--focus,
2130
+ .sp-avatar.is-focus {
2131
+ outline: none;
2132
+ box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-color-focus-primary);
2133
+ }
2134
+
2135
+ .sp-avatar:disabled,
2136
+ .sp-avatar[aria-disabled="true"],
2137
+ .sp-avatar--disabled {
2138
+ opacity: var(--sp-opacity-disabled);
2139
+ pointer-events: none;
2140
+ cursor: not-allowed;
2141
+ }
2142
+
2143
+ .sp-avatar--loading,
2144
+ .sp-avatar[aria-busy="true"] {
2145
+ opacity: var(--sp-opacity-active);
2146
+ pointer-events: none;
2147
+ }
2148
+
2149
+ .sp-avatar--placeholder {
2150
+ background-color: var(--sp-surface-alternate);
2151
+ color: var(--sp-text-on-surface-meta);
2152
+ }
2153
+
2154
+ /* TAGS ----------------------------------------------------------------- */
2155
+ .sp-tag {
2156
+ display: inline-flex;
2157
+ align-items: center;
2158
+ gap: var(--sp-component-tag-gap);
2159
+ border-radius: var(--sp-component-tag-radius);
2160
+ font-family: var(--sp-component-tag-font);
2161
+ font-weight: var(--sp-component-tag-weight);
2162
+ padding: var(--sp-component-tag-padding-y-md) var(--sp-component-tag-padding-x-md);
2163
+ font-size: var(--sp-font-sm-size);
2164
+ line-height: var(--sp-font-sm-line-height);
2165
+ border: var(--sp-component-border-width) solid transparent;
2166
+ white-space: nowrap;
2167
+ transition:
2168
+ background-color var(--sp-duration-fast) var(--sp-easing-out),
2169
+ color var(--sp-duration-fast) var(--sp-easing-out),
2170
+ box-shadow var(--sp-duration-fast) var(--sp-easing-out),
2171
+ border-color var(--sp-duration-fast) var(--sp-easing-out),
2172
+ opacity var(--sp-duration-fast) var(--sp-easing-out);
2173
+ }
2174
+
2175
+ .sp-tag--full {
2176
+ width: 100%;
2177
+ }
2178
+
2179
+ .sp-tag--default {
2180
+ background-color: var(--sp-component-tag-default-bg);
2181
+ color: var(--sp-component-tag-default-text);
2182
+ }
2183
+
2184
+ .sp-tag--primary {
2185
+ background-color: var(--sp-component-tag-primary-bg);
2186
+ color: var(--sp-component-tag-primary-text);
2187
+ }
2188
+
2189
+ .sp-tag--secondary {
2190
+ background-color: var(--sp-component-tag-secondary-bg);
2191
+ color: var(--sp-component-tag-secondary-text);
2192
+ }
2193
+
2194
+ .sp-tag--success {
2195
+ background-color: var(--sp-component-tag-success-bg);
2196
+ color: var(--sp-component-tag-success-text);
2197
+ }
2198
+
2199
+ .sp-tag--warning {
2200
+ background-color: var(--sp-component-tag-warning-bg);
2201
+ color: var(--sp-component-tag-warning-text);
2202
+ }
2203
+
2204
+ .sp-tag--danger {
2205
+ background-color: var(--sp-component-tag-danger-bg);
2206
+ color: var(--sp-component-tag-danger-text);
2207
+ }
2208
+
2209
+ .sp-tag--info {
2210
+ background-color: var(--sp-component-tag-info-bg);
2211
+ color: var(--sp-component-tag-info-text);
2212
+ }
2213
+
2214
+ .sp-tag--neutral {
2215
+ background-color: var(--sp-component-tag-neutral-bg);
2216
+ color: var(--sp-component-tag-neutral-text);
2217
+ }
2218
+
2219
+ .sp-tag--accent {
2220
+ background-color: var(--sp-component-tag-accent-bg);
2221
+ color: var(--sp-component-tag-accent-text);
2222
+ }
2223
+
2224
+ .sp-tag--cta {
2225
+ background-color: var(--sp-component-tag-cta-bg);
2226
+ color: var(--sp-component-tag-cta-text);
2227
+ }
2228
+
2229
+ .sp-tag--outline {
2230
+ background-color: var(--sp-component-tag-outline-bg);
2231
+ color: var(--sp-component-tag-outline-text);
2232
+ border-color: var(--sp-component-tag-outline-border);
2233
+ }
2234
+
2235
+ .sp-tag--selected {
2236
+ background-color: var(--sp-component-tag-selected-bg);
2237
+ color: var(--sp-component-tag-selected-text);
2238
+ border-color: transparent;
2239
+ }
2240
+
2241
+ .sp-tag--ghost {
2242
+ background-color: var(--sp-component-tag-ghost-bg);
2243
+ color: var(--sp-component-tag-ghost-text);
2244
+ }
2245
+
2246
+ .sp-tag--interactive {
2247
+ cursor: pointer;
2248
+ }
2249
+
2250
+ .sp-tag--interactive:hover,
2251
+ .sp-tag--hover,
2252
+ .sp-tag.is-hover {
2253
+ opacity: var(--sp-opacity-hover);
2254
+ }
2255
+
2256
+ .sp-tag--interactive:active,
2257
+ .sp-tag--active,
2258
+ .sp-tag.is-active {
2259
+ opacity: var(--sp-opacity-active);
2260
+ }
2261
+
2262
+ .sp-tag--interactive:focus-visible,
2263
+ .sp-tag--focus,
2264
+ .sp-tag.is-focus {
2265
+ outline: none;
2266
+ box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-color-focus-primary);
2267
+ }
2268
+
2269
+ .sp-tag:disabled,
2270
+ .sp-tag[aria-disabled="true"],
2271
+ .sp-tag--disabled {
2272
+ opacity: var(--sp-opacity-disabled);
2273
+ pointer-events: none;
2274
+ cursor: not-allowed;
2275
+ }
2276
+
2277
+ .sp-tag--loading,
2278
+ .sp-tag[aria-busy="true"] {
2279
+ opacity: var(--sp-opacity-active);
2280
+ pointer-events: none;
2281
+ }
2282
+
2283
+ .sp-tag--sm {
2284
+ padding: var(--sp-component-tag-padding-y-sm) var(--sp-component-tag-padding-x-sm);
2285
+ font-size: var(--sp-font-xs-size);
2286
+ line-height: var(--sp-font-xs-line-height);
2287
+ }
2288
+
2289
+ .sp-tag--md {
2290
+ padding: var(--sp-component-tag-padding-y-md) var(--sp-component-tag-padding-x-md);
2291
+ font-size: var(--sp-font-sm-size);
2292
+ line-height: var(--sp-font-sm-line-height);
2293
+ }
2294
+
2295
+ .sp-tag--lg {
2296
+ padding: var(--sp-component-tag-padding-y-lg) var(--sp-component-tag-padding-x-lg);
2297
+ font-size: var(--sp-font-md-size);
2298
+ line-height: var(--sp-font-md-line-height);
2299
+ }
2300
+
2301
+ .sp-tag--dismissible {
2302
+ gap: var(--sp-space-8);
2303
+ }
2304
+
2305
+ /* SPINNER -------------------------------------------------------------- */
2306
+
2307
+ @keyframes sp-spin {
2308
+ to {
2309
+ transform: rotate(360deg);
2310
+ }
2311
+ }
2312
+
2313
+ .sp-spinner {
2314
+ display: inline-block;
2315
+ border-radius: 50%;
2316
+ border: var(--sp-component-spinner-border-width) solid var(--sp-component-spinner-track-color);
2317
+ border-top-color: var(--sp-component-spinner-arc-color);
2318
+ animation: sp-spin var(--sp-component-spinner-duration) var(--sp-component-spinner-easing) infinite;
2319
+ }
2320
+
2321
+ .sp-spinner--sm {
2322
+ width: var(--sp-component-spinner-size-sm);
2323
+ height: var(--sp-component-spinner-size-sm);
2324
+ }
2325
+
2326
+ .sp-spinner--md {
2327
+ width: var(--sp-component-spinner-size-md);
2328
+ height: var(--sp-component-spinner-size-md);
2329
+ }
2330
+
2331
+ .sp-spinner--lg {
2332
+ width: var(--sp-component-spinner-size-lg);
2333
+ height: var(--sp-component-spinner-size-lg);
2334
+ }
1817
2335
  }