@stackoverflow/stacks 0.74.0 → 1.0.0-beta.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.
Files changed (89) hide show
  1. package/dist/controllers/index.d.ts +7 -0
  2. package/dist/controllers/s-expandable-control.d.ts +17 -0
  3. package/dist/controllers/s-modal.d.ts +97 -0
  4. package/dist/controllers/s-navigation-tablist.d.ts +36 -0
  5. package/dist/controllers/s-popover.d.ts +155 -0
  6. package/dist/controllers/s-table.d.ts +8 -0
  7. package/dist/controllers/s-tooltip.d.ts +82 -0
  8. package/dist/controllers/s-uploader.d.ts +48 -0
  9. package/dist/css/stacks.css +4633 -2703
  10. package/dist/css/stacks.min.css +1 -1
  11. package/dist/index.d.ts +3 -0
  12. package/dist/js/stacks.js +6026 -5403
  13. package/dist/js/stacks.min.js +1 -1
  14. package/dist/stacks.d.ts +21 -0
  15. package/lib/css/atomic/{_stacks-borders.less → borders.less} +30 -30
  16. package/lib/css/atomic/{_stacks-colors.less → colors.less} +0 -0
  17. package/lib/css/atomic/{_stacks-flex.less → flex.less} +14 -13
  18. package/lib/css/atomic/{_stacks-grid.less → grid.less} +12 -11
  19. package/lib/css/atomic/{_stacks-misc.less → misc.less} +23 -22
  20. package/lib/css/atomic/spacing.less +314 -0
  21. package/lib/css/atomic/{_stacks-typography.less → typography.less} +29 -29
  22. package/lib/css/atomic/width-height.less +194 -0
  23. package/lib/css/base/{_stacks-body.less → body.less} +3 -5
  24. package/lib/css/base/{_stacks-configuration-static.less → configuration-static.less} +3 -1
  25. package/lib/css/base/{_stacks-icons.less → icons.less} +0 -0
  26. package/lib/css/base/{_stacks-internals.less → internals.less} +0 -10
  27. package/lib/css/base/{_stacks-reset-meyer.less → reset-meyer.less} +0 -0
  28. package/lib/css/base/{_stacks-reset-normalize.less → reset-normalize.less} +0 -0
  29. package/lib/css/base/{_stacks-reset.less → reset.less} +2 -2
  30. package/lib/css/components/{_stacks-activity-indicator.less → activity-indicator.less} +9 -9
  31. package/lib/css/components/{_stacks-avatars.less → avatars.less} +40 -40
  32. package/lib/css/components/{_stacks-badges.less → badges.less} +11 -11
  33. package/lib/css/components/{_stacks-banners.less → banners.less} +5 -6
  34. package/lib/css/components/{_stacks-blank-states.less → blank-states.less} +2 -2
  35. package/lib/css/components/{_stacks-breadcrumbs.less → breadcrumbs.less} +7 -7
  36. package/lib/css/components/{_stacks-button-groups.less → button-groups.less} +2 -2
  37. package/lib/css/components/{_stacks-buttons.less → buttons.less} +77 -72
  38. package/lib/css/components/{_stacks-cards.less → cards.less} +2 -2
  39. package/lib/css/components/{_stacks-code-blocks.less → code-blocks.less} +8 -8
  40. package/lib/css/components/{_stacks-collapsible.less → collapsible.less} +0 -0
  41. package/lib/css/components/{_stacks-inputs.less → inputs.less} +41 -41
  42. package/lib/css/components/{_stacks-link-previews.less → link-previews.less} +17 -17
  43. package/lib/css/components/{_stacks-links.less → links.less} +4 -4
  44. package/lib/css/components/{_stacks-menu.less → menu.less} +5 -5
  45. package/lib/css/components/{_stacks-modals.less → modals.less} +20 -20
  46. package/lib/css/components/{_stacks-navigation.less → navigation.less} +12 -12
  47. package/lib/css/components/{_stacks-notices.less → notices.less} +12 -12
  48. package/lib/css/components/{_stacks-page-titles.less → page-titles.less} +9 -9
  49. package/lib/css/components/{_stacks-pagination.less → pagination.less} +8 -8
  50. package/lib/css/components/{_stacks-popovers.less → popovers.less} +17 -17
  51. package/lib/css/components/{_stacks-post-summary.less → post-summary.less} +155 -60
  52. package/lib/css/components/{_stacks-progress-bars.less → progress-bars.less} +29 -30
  53. package/lib/css/components/{_stacks-prose.less → prose.less} +31 -31
  54. package/lib/css/components/{_stacks-spinner.less → spinner.less} +14 -14
  55. package/lib/css/components/{_stacks-tables.less → tables.less} +10 -10
  56. package/lib/css/components/{_stacks-tags.less → tags.less} +33 -41
  57. package/lib/css/components/{_stacks-toggle-switches.less → toggle-switches.less} +5 -5
  58. package/lib/css/components/{_stacks-topbar.less → topbar.less} +27 -40
  59. package/lib/css/components/{_stacks-uploader.less → uploader.less} +18 -18
  60. package/lib/css/components/{_stacks-user-cards.less → user-cards.less} +14 -14
  61. package/lib/css/components/{_stacks-widget-dynamic.less → widget-dynamic.less} +1 -1
  62. package/lib/css/components/{_stacks-widget-static.less → widget-static.less} +39 -38
  63. package/lib/css/exports/{_stacks-constants-colors.less → constants-colors.less} +21 -29
  64. package/lib/css/exports/constants-helpers.less +108 -0
  65. package/lib/css/exports/constants-type.less +153 -0
  66. package/lib/css/exports/{_stacks-exports.less → exports.less} +4 -4
  67. package/lib/css/exports/{_stacks-mixins.less → mixins.less} +18 -1
  68. package/lib/css/stacks-dynamic.less +12 -13
  69. package/lib/css/stacks-static.less +38 -38
  70. package/lib/ts/controllers/index.ts +8 -0
  71. package/lib/ts/controllers/s-expandable-control.ts +163 -164
  72. package/lib/ts/controllers/s-modal.ts +259 -261
  73. package/lib/ts/controllers/s-navigation-tablist.ts +96 -97
  74. package/lib/ts/controllers/s-popover.ts +438 -440
  75. package/lib/ts/controllers/s-table.ts +203 -203
  76. package/lib/ts/controllers/s-tooltip.ts +195 -196
  77. package/lib/ts/controllers/s-uploader.ts +162 -164
  78. package/lib/ts/index.ts +20 -0
  79. package/lib/ts/stacks.ts +73 -68
  80. package/lib/tsconfig.json +8 -6
  81. package/package.json +43 -27
  82. package/dist/css/stacks-flexgrid-shim.min.css +0 -1
  83. package/lib/css/atomic/_stacks-spacing.less +0 -162
  84. package/lib/css/atomic/_stacks-width-height.less +0 -189
  85. package/lib/css/base/_stacks-configuration-dynamic.less +0 -106
  86. package/lib/css/exports/_stacks-constants-helpers.less +0 -139
  87. package/lib/css/exports/_stacks-constants-type.less +0 -91
  88. package/lib/ts/finalize.ts +0 -1
  89. package/lib/ts/stimulus.d.ts +0 -4
@@ -40,7 +40,7 @@
40
40
  &:focus {
41
41
  border-color: var(--blue-300);
42
42
  // Since the box shadow is overwritten to show a background, we have to re-add the focus outline
43
- -webkit-box-shadow: 0 0 0 1000px var(--blue-050) inset, 0 0 0 @su4 var(--focus-ring);
43
+ -webkit-box-shadow: 0 0 0 1000px var(--blue-050) inset, 0 0 0 var(--su-static4) var(--focus-ring);
44
44
  }
45
45
  }
46
46
  }
@@ -51,10 +51,10 @@
51
51
  margin: 0; // A guard against Core's default margins
52
52
  padding: @input-padding;
53
53
  border: 1px solid var(--bc-darker);
54
- border-radius: @br-sm;
54
+ border-radius: var(--br-sm);
55
55
  background-color: var(--white);
56
56
  color: var(--fc-dark);
57
- font-size: @fs-body1;
57
+ font-size: var(--fs-body1);
58
58
  font-family: inherit;
59
59
 
60
60
  // -- INCREASE FONT SIZE FOR MOBILE SAFARI
@@ -105,7 +105,7 @@
105
105
 
106
106
  .s-input.s-input__search,
107
107
  .s-input.s-input__creditcard {
108
- padding-left: @su32;
108
+ padding-left: var(--su-static32);
109
109
  }
110
110
 
111
111
 
@@ -149,10 +149,10 @@ fieldset {
149
149
  // $ LABELS
150
150
  // ============================================================================
151
151
  .s-label {
152
- padding: 0 @su2; // Helps the label visually line up with inputs
152
+ padding: 0 var(--su2); // Helps the label visually line up with inputs
153
153
  color: var(--fc-dark);
154
154
  font-family: inherit;
155
- font-size: @fs-body2;
155
+ font-size: var(--fs-body2);
156
156
  font-weight: 600;
157
157
 
158
158
  &[for] {
@@ -165,12 +165,12 @@ fieldset {
165
165
  // Is this form item required or optional? Flag the status for users.
166
166
  // Default styling is optional.
167
167
  .s-label--status {
168
- margin-left: @su4;
169
- padding: @su2 @su8;
168
+ margin-left: var(--su4);
169
+ padding: var(--su2) var(--su8);
170
170
  border-radius: 1000px;
171
171
  background-color: var(--black-050);
172
172
  color: var(--fc-medium);
173
- font-size: @fs-caption;
173
+ font-size: var(--fs-caption);
174
174
  font-weight: 400;
175
175
  vertical-align: text-bottom;
176
176
 
@@ -203,9 +203,9 @@ fieldset {
203
203
  // $ TEXT STYLES
204
204
  // ============================================================================
205
205
  .s-description {
206
- padding: 0 @su2; // Helps the label visually line up with inputs
206
+ padding: 0 var(--su2); // Helps the label visually line up with inputs
207
207
  color: var(--fc-medium);
208
- font-size: @fs-caption;
208
+ font-size: var(--fs-caption);
209
209
  }
210
210
 
211
211
  .s-label .s-description,
@@ -229,7 +229,7 @@ fieldset {
229
229
  color: var(--fc-medium);
230
230
  font-family: inherit;
231
231
  white-space: nowrap;
232
- line-height: @lh-sm;
232
+ line-height: var(--lh-sm);
233
233
 
234
234
  &.s-input-fill__clear {
235
235
  border-color: transparent;
@@ -238,14 +238,14 @@ fieldset {
238
238
 
239
239
  &.order-first {
240
240
  border-left-width: 1px;
241
- border-top-left-radius: @br-sm;
242
- border-bottom-left-radius: @br-sm;
241
+ border-top-left-radius: var(--br-sm);
242
+ border-bottom-left-radius: var(--br-sm);
243
243
  }
244
244
 
245
245
  &.order-last {
246
246
  border-right-width: 1px;
247
- border-top-right-radius: @br-sm;
248
- border-bottom-right-radius: @br-sm;
247
+ border-top-right-radius: var(--br-sm);
248
+ border-bottom-right-radius: var(--br-sm);
249
249
  }
250
250
  }
251
251
 
@@ -265,7 +265,7 @@ fieldset {
265
265
  &:after {
266
266
  content: "";
267
267
  position: absolute;
268
- z-index: @zi-selected;
268
+ z-index: var(--zi-selected);
269
269
  right: 13px;
270
270
  border-color: currentColor transparent;
271
271
  border-style: solid;
@@ -297,15 +297,15 @@ fieldset {
297
297
  width: 100%;
298
298
  height: 100%; // Fill the height of its parent
299
299
  padding: @input-padding;
300
- padding-right: @su32;
300
+ padding-right: var(--su32);
301
301
  border: 1px solid var(--bc-darker);
302
- border-radius: @br-sm;
302
+ border-radius: var(--br-sm);
303
303
  background-color: var(--white);
304
304
  outline: 0;
305
- font-size: @fs-body1;
305
+ font-size: var(--fs-body1);
306
306
  font-family: inherit;
307
307
  color: var(--black);
308
- line-height: @lh-sm;
308
+ line-height: var(--lh-sm);
309
309
 
310
310
  &::-moz-focus-inner {
311
311
  outline: none !important;
@@ -372,7 +372,7 @@ fieldset {
372
372
  // ----------------------------------------------------------------------------
373
373
  .s-checkbox {
374
374
  @supports ((-webkit-appearance: none) or (-moz-appearance: none) or (appearance: none)) {
375
- border-radius: @br-sm;
375
+ border-radius: var(--br-sm);
376
376
  background-position: center center;
377
377
  background-repeat: no-repeat;
378
378
  background-size: contain;
@@ -394,7 +394,7 @@ fieldset {
394
394
 
395
395
  &:focus {
396
396
  border-color: var(--theme-secondary-300);
397
- box-shadow: 0 0 0 @su4 var(--focus-ring);
397
+ box-shadow: 0 0 0 var(--su-static4) var(--focus-ring);
398
398
  }
399
399
  }
400
400
  }
@@ -403,7 +403,7 @@ fieldset {
403
403
  // ----------------------------------------------------------------------------
404
404
  .s-radio {
405
405
  @supports ((-webkit-appearance: none) or (-moz-appearance: none) or (appearance: none)) {
406
- border-radius: @br-circle;
406
+ border-radius: var(--br-circle);
407
407
 
408
408
  &:checked {
409
409
  border-color: var(--theme-secondary-400);
@@ -417,7 +417,7 @@ fieldset {
417
417
  }
418
418
 
419
419
  &:focus {
420
- box-shadow: 0 0 0 @su4 var(--focus-ring);
420
+ box-shadow: 0 0 0 var(--su-static4) var(--focus-ring);
421
421
  }
422
422
  }
423
423
  }
@@ -430,7 +430,7 @@ fieldset {
430
430
  & {
431
431
  @focus-style: {
432
432
  border-color: var(--theme-secondary-300);
433
- box-shadow: 0 0 0 @su4 var(--focus-ring);
433
+ box-shadow: 0 0 0 var(--su-static4) var(--focus-ring);
434
434
  color: var(--black);
435
435
  outline: 0;
436
436
 
@@ -485,15 +485,15 @@ fieldset {
485
485
  position: relative;
486
486
 
487
487
  .s-input {
488
- padding-right: @su32;
488
+ padding-right: var(--su32);
489
489
  }
490
490
 
491
491
  .s-select .s-input-icon {
492
- right: @su32;
492
+ right: var(--su32);
493
493
  }
494
494
 
495
495
  .s-textarea {
496
- padding-right: @su48;
496
+ padding-right: var(--su48);
497
497
 
498
498
  ~ .s-input-icon {
499
499
  top: 1.5em;
@@ -517,7 +517,7 @@ fieldset {
517
517
  border-color: var(--yellow-600);
518
518
 
519
519
  &:focus {
520
- box-shadow: 0 0 0 @su4 var(--focus-ring-warning);
520
+ box-shadow: 0 0 0 var(--su-static4) var(--focus-ring-warning);
521
521
  }
522
522
  }
523
523
 
@@ -545,7 +545,7 @@ fieldset {
545
545
  border-color: var(--red-400);
546
546
 
547
547
  &:focus {
548
- box-shadow: 0 0 0 @su4 var(--focus-ring-error);
548
+ box-shadow: 0 0 0 var(--su-static4) var(--focus-ring-error);
549
549
  }
550
550
  }
551
551
 
@@ -577,7 +577,7 @@ fieldset {
577
577
  border-color: var(--green-400);
578
578
 
579
579
  &:focus {
580
- box-shadow: 0 0 0 @su4 var(--focus-ring-success);
580
+ box-shadow: 0 0 0 var(--su-static4) var(--focus-ring-success);
581
581
  }
582
582
  }
583
583
 
@@ -653,8 +653,8 @@ fieldset {
653
653
  // Set some baseline styles
654
654
  // ----------------------------------------------------------------------------
655
655
  .s-input-message {
656
- padding: @su2;
657
- font-size: @fs-caption;
656
+ padding: var(--su2);
657
+ font-size: var(--fs-caption);
658
658
  }
659
659
 
660
660
  // $$ SIZES
@@ -663,25 +663,25 @@ fieldset {
663
663
  .s-textarea__sm,
664
664
  .s-label__sm,
665
665
  .s-select__sm > select {
666
- font-size: @fs-caption;
666
+ font-size: var(--fs-caption);
667
667
  }
668
668
  .s-input__md,
669
669
  .s-textarea__md,
670
670
  .s-label__md,
671
671
  .s-select__md > select {
672
- font-size: @fs-body3;
672
+ font-size: var(--fs-body3);
673
673
  }
674
674
  .s-input__lg,
675
675
  .s-textarea__lg,
676
676
  .s-label__lg,
677
677
  .s-select__lg > select {
678
- font-size: @fs-title;
678
+ font-size: var(--fs-title);
679
679
  }
680
680
  .s-input__xl,
681
681
  .s-textarea__xl,
682
682
  .s-label__xl,
683
683
  .s-select__xl > select {
684
- font-size: @fs-headline1;
684
+ font-size: var(--fs-headline1);
685
685
  }
686
686
 
687
687
  // $$ PADDING ADJUSTMENTS WITHIN SIZES
@@ -691,7 +691,7 @@ fieldset {
691
691
  .s-select__md > select {
692
692
  padding-top: 0.5em;
693
693
  padding-bottom: 0.5em;
694
- border-radius: @br-sm + 1;
694
+ border-radius: calc(var(--br-sm) + 1px);
695
695
  }
696
696
 
697
697
  .s-textarea__md {
@@ -703,14 +703,14 @@ fieldset {
703
703
  .s-textarea__lg,
704
704
  .s-select__lg > select {
705
705
  padding: 0.45em 0.6em;
706
- border-radius: @br-sm + 1;
706
+ border-radius: calc(var(--br-sm) + 1px);
707
707
  }
708
708
 
709
709
  .s-input__xl,
710
710
  .s-textarea__xl,
711
711
  .s-select__xl > select {
712
712
  padding: 0.4em 0.5em;
713
- border-radius: @br-md;
713
+ border-radius: var(--br-md);
714
714
  }
715
715
 
716
716
  .s-input__md,
@@ -11,7 +11,7 @@
11
11
  // ----------------------------------------------------------------------------
12
12
  .s-link-preview {
13
13
  border: 1px solid var(--bc-medium);
14
- border-radius: @br-sm;
14
+ border-radius: var(--br-sm);
15
15
  text-align: left;
16
16
  box-shadow: var(--bs-sm);
17
17
  }
@@ -19,19 +19,19 @@
19
19
  .s-link-preview--header {
20
20
  display: flex;
21
21
  background: var(--black-025);
22
- border-top-left-radius: @br-sm;
23
- border-top-right-radius: @br-sm;
22
+ border-top-left-radius: var(--br-sm);
23
+ border-top-right-radius: var(--br-sm);
24
24
  border-bottom: 1px solid var(--bc-medium);
25
- padding: @su12 @su8;
25
+ padding: var(--su12) var(--su8);
26
26
  }
27
27
 
28
28
  .s-link-preview--icon {
29
- margin-right: @su8;
29
+ margin-right: var(--su8);
30
30
  color: var(--black-800); // Set the default color of the integration's icon. Most likely this will be overridden by the integration icon's native colors.
31
31
  }
32
32
 
33
33
  .s-link-preview--title {
34
- font-size: @fs-body3;
34
+ font-size: var(--fs-body3);
35
35
  font-weight: bold;
36
36
  color: var(--black-900);
37
37
  }
@@ -60,18 +60,18 @@ a.s-link-preview--title {
60
60
  }
61
61
 
62
62
  .s-link-preview--details {
63
- font-size: @fs-caption;
63
+ font-size: var(--fs-caption);
64
64
  color: var(--black-500);
65
- margin-top: @su2;
65
+ margin-top: var(--su2);
66
66
 
67
67
  #stacks-internals #screen-sm({
68
- margin-top: @su4;
68
+ margin-top: var(--su4);
69
69
  });
70
70
  }
71
71
 
72
72
  .s-link-preview--body {
73
- padding: @su12;
74
- font-size: @fs-body2;
73
+ padding: var(--su12);
74
+ font-size: var(--fs-body2);
75
75
 
76
76
  *:last-child {
77
77
  margin-bottom: 0;
@@ -90,11 +90,11 @@ a.s-link-preview--title {
90
90
  display: flex;
91
91
  justify-content: space-between;
92
92
  background: var(--black-025);
93
- border-bottom-left-radius: @br-sm;
94
- border-bottom-right-radius: @br-sm;
93
+ border-bottom-left-radius: var(--br-sm);
94
+ border-bottom-right-radius: var(--br-sm);
95
95
  border-top: 1px solid var(--bc-medium);
96
- padding: @su12;
97
- font-size: @fs-caption;
96
+ padding: var(--su12);
97
+ font-size: var(--fs-caption);
98
98
 
99
99
  #stacks-internals #screen-sm({
100
100
  flex-direction: column;
@@ -110,11 +110,11 @@ a.s-link-preview--title {
110
110
 
111
111
  .s-link-preview--misc {
112
112
  color: var(--black-500);
113
- padding-left: @su4;
113
+ padding-left: var(--su4);
114
114
 
115
115
  #stacks-internals #screen-sm({
116
116
  padding-left: 0;
117
- padding-top: @su2;
117
+ padding-top: var(--su2);
118
118
  });
119
119
  }
120
120
 
@@ -102,12 +102,12 @@ a,
102
102
  &:after {
103
103
  content: "";
104
104
  position: absolute;
105
- z-index: @zi-active;
105
+ z-index: var(--zi-active);
106
106
  top: calc(50% - 2px);
107
107
  right: 0;
108
108
  border-style: solid;
109
- border-width: @su4;
110
- border-top-width: @su4;
109
+ border-width: var(--su-static4);
110
+ border-top-width: var(--su-static4);
111
111
  border-bottom-width: 0;
112
112
  border-color: currentColor transparent;
113
113
  pointer-events: none;
@@ -171,7 +171,7 @@ button.s-link {
171
171
  display: block;
172
172
  width: 100%;
173
173
  color: var(--black-600);
174
- padding: @su6 @su12;
174
+ padding: var(--su6) var(--su12);
175
175
 
176
176
  // Normalize for when applying to a button
177
177
  cursor: pointer;
@@ -11,18 +11,18 @@
11
11
  .list-reset;
12
12
 
13
13
  .s-menu--title {
14
- padding: @su8 @su12;
14
+ padding: var(--su8) var(--su12);
15
15
  text-transform: uppercase;
16
- font-size: @fs-fine;
16
+ font-size: var(--fs-fine);
17
17
  color: var(--black-600);
18
18
  }
19
19
 
20
20
  li + .s-menu--title {
21
- margin-top: @su12;
21
+ margin-top: var(--su12);
22
22
  }
23
23
 
24
24
  .s-menu--divider {
25
- margin: @su8 0;
25
+ margin: var(--su8) 0;
26
26
  height: 1px;
27
27
  background-color: var(--bc-light);
28
28
 
@@ -33,7 +33,7 @@
33
33
 
34
34
  .s-menu--label {
35
35
  cursor: pointer;
36
- padding: @su12;
36
+ padding: var(--su12);
37
37
  border-top: 1px solid var(--bc-light);
38
38
 
39
39
  .dark-mode({
@@ -17,7 +17,7 @@
17
17
  display: flex;
18
18
  visibility: hidden;
19
19
  position: fixed;
20
- z-index: @zi-hide; // Make sure it's also below everything so we can't interact with it.
20
+ z-index: var(--zi-hide); // Make sure it's also below everything so we can't interact with it.
21
21
 
22
22
  // This fills the entire viewport without having to worry about size.
23
23
  top: 0;
@@ -29,27 +29,27 @@
29
29
  background-color: fade(@black-900, 50%); // Background remains fixed
30
30
  opacity: 0;
31
31
  backface-visibility: hidden;
32
- transition: opacity 100ms @te-smooth 0s, z-index 0s 100ms, visibility 0s 100ms; // Transition out
32
+ transition: opacity 100ms var(--te-smooth) 0s, z-index 0s 100ms, visibility 0s 100ms; // Transition out
33
33
  will-change: visibility, z-index, opacity; // Not supported in Edge
34
34
 
35
35
  &[aria-hidden="false"],
36
36
  &[aria-hidden="false"] .s-modal--dialog {
37
37
  visibility: visible;
38
- z-index: @zi-modals;
38
+ z-index: var(--zi-modals);
39
39
  opacity: 1;
40
40
  transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
41
- transition: opacity 100ms @te-smooth 10ms, z-index 0s 0s, visibility 0s 0s, transform 100ms @te-smooth 10ms, transform 100ms @te-smooth 10ms; // Transition in
41
+ transition: opacity 100ms var(--te-smooth) 10ms, z-index 0s 0s, visibility 0s 0s, transform 100ms var(--te-smooth) 10ms, transform 100ms var(--te-smooth) 10ms; // Transition in
42
42
  }
43
43
  }
44
44
 
45
45
  .s-modal--dialog {
46
46
  overflow-y: auto;
47
47
  visibility: hidden;
48
- z-index: @zi-hide; // Make sure it's also below everything so we can't interact with it.
48
+ z-index: var(--zi-hide); // Make sure it's also below everything so we can't interact with it.
49
49
  max-width: 600px;
50
50
  max-height: 100%;
51
- padding: @su24;
52
- border-radius: @br-lg;
51
+ padding: var(--su24);
52
+ border-radius: var(--br-lg);
53
53
  background-color: var(--white);
54
54
  box-shadow: var(--bs-lg);
55
55
  opacity: 0;
@@ -62,7 +62,7 @@
62
62
 
63
63
  @scrollbar-styles();
64
64
 
65
- transition: opacity 200ms @te-smooth 0s, z-index 0s 100ms, visibility 0s 100ms, transform 100ms @te-smooth 0s, transform 100ms @te-smooth 0s; // Transition out
65
+ transition: opacity 200ms var(--te-smooth) 0s, z-index 0s 100ms, visibility 0s 100ms, transform 100ms var(--te-smooth) 0s, transform 100ms var(--te-smooth) 0s; // Transition out
66
66
  will-change: visibility, z-index, opacity, transform; // Not supported by Edge
67
67
 
68
68
  .s-modal[aria-hidden="false"] & {
@@ -73,9 +73,9 @@
73
73
  // [1] To override .s-btn class attributes
74
74
  .s-modal--close {
75
75
  position: absolute !important; // [1]
76
- top: @su8;
77
- right: @su8;
78
- padding: @su12 !important; // [1]
76
+ top: var(--su8);
77
+ right: var(--su8);
78
+ padding: var(--su12) !important; // [1]
79
79
 
80
80
  .svg-icon {
81
81
  margin: 0 !important;
@@ -86,20 +86,20 @@
86
86
  // $ DIALOG PIECES
87
87
  // ----------------------------------------------------------------------------
88
88
  .s-modal--header {
89
- margin-bottom: @su16;
89
+ margin-bottom: var(--su16);
90
90
  color: var(--fc-dark);
91
- font-size: @fs-headline1;
91
+ font-size: var(--fs-headline1);
92
92
  font-weight: normal;
93
- line-height: @lh-sm;
93
+ line-height: var(--lh-sm);
94
94
  }
95
95
 
96
96
  .s-modal--body {
97
- margin-bottom: @su24;
97
+ margin-bottom: var(--su24);
98
98
  color: var(--fc-medium);
99
99
  }
100
100
 
101
101
  .s-modal--footer {
102
- margin-top: @su24;
102
+ margin-top: var(--su24);
103
103
  }
104
104
 
105
105
 
@@ -116,11 +116,11 @@
116
116
  }
117
117
 
118
118
  .s-modal.s-modal__celebration .s-modal--dialog {
119
- padding-top: @su64;
119
+ padding-top: var(--su64);
120
120
  .bg-confetti-animated;
121
121
 
122
122
  .s-modal--close {
123
- top: @su48;
123
+ top: var(--su48);
124
124
  }
125
125
  }
126
126
 
@@ -128,6 +128,6 @@
128
128
  // $ SIZES
129
129
  // ----------------------------------------------------------------------------
130
130
  .s-modal__full {
131
- max-width: calc(~"100% - @{su48}");
132
- max-height: calc(~"100% - @{su48}");
131
+ max-width: calc(100% - var(--su48));
132
+ max-height: calc(100% - var(--su48));
133
133
  }
@@ -15,8 +15,8 @@
15
15
  // ----------------------------------------------------------------------------
16
16
  .s-navigation {
17
17
  display: flex;
18
- margin: -@su2;
19
- padding: @su2 0;
18
+ margin: calc(var(--su2) * -1);
19
+ padding: var(--su2) 0;
20
20
  flex-wrap: wrap;
21
21
 
22
22
  // If the s-navigation is a list, let's reset all the properties
@@ -25,7 +25,7 @@
25
25
  .s-navigation--item {
26
26
  display: flex;
27
27
  align-items: center;
28
- padding: @su6 @su12;
28
+ padding: var(--su6) var(--su12);
29
29
  position: relative;
30
30
 
31
31
  // Reset some things for when the navigation item is also a button
@@ -36,7 +36,7 @@
36
36
  cursor: pointer;
37
37
  user-select: auto;
38
38
  border-radius: 1000px;
39
- margin: @su2;
39
+ margin: var(--su2);
40
40
  white-space: nowrap;
41
41
  color: var(--black-600);
42
42
 
@@ -72,12 +72,12 @@
72
72
  &:after {
73
73
  content: "";
74
74
  position: absolute;
75
- z-index: @zi-active;
75
+ z-index: var(--zi-active);
76
76
  top: calc(50% - 2px);
77
77
  right: 0.9em;
78
78
  border-style: solid;
79
- border-width: @su4;
80
- border-top-width: @su4;
79
+ border-width: var(--su-static4);
80
+ border-top-width: var(--su-static4);
81
81
  border-bottom-width: 0;
82
82
  border-color: currentColor transparent;
83
83
  pointer-events: none;
@@ -104,10 +104,10 @@
104
104
  }
105
105
 
106
106
  .s-navigation--title {
107
- font-size: @fs-fine;
107
+ font-size: var(--fs-fine);
108
108
  font-weight: bold;
109
- margin-top: @su16;
110
- padding: @su6 @su12;
109
+ margin-top: var(--su16);
110
+ padding: var(--su6) var(--su12);
111
111
  text-transform: uppercase;
112
112
 
113
113
  &:first-child {
@@ -135,8 +135,8 @@
135
135
  // ----------------------------------------------------------------------------
136
136
  &.s-navigation__sm {
137
137
  .s-navigation--item {
138
- padding: @su4 @su12;
139
- font-size: @fs-caption;
138
+ padding: var(--su4) var(--su12);
139
+ font-size: var(--fs-caption);
140
140
 
141
141
  &.s-navigation--item__dropdown {
142
142
  padding-right: 2em;
@@ -15,24 +15,24 @@
15
15
  // ----------------------------------------------------------------------------
16
16
  // $$ FILLED, MUTED
17
17
  .s-notice {
18
- padding: @su16;
18
+ padding: var(--su16);
19
19
  border: 1px solid transparent;
20
- border-radius: @br-sm;
20
+ border-radius: var(--br-sm);
21
21
  color: var(--fc-medium);
22
- font-size: @fs-body1;
22
+ font-size: var(--fs-body1);
23
23
 
24
24
  .s-toast & {
25
25
  max-width: 44rem;
26
26
  width: 100%;
27
- padding-top: @su8;
28
- padding-bottom: @su8;
27
+ padding-top: var(--su8);
28
+ padding-bottom: var(--su8);
29
29
  box-shadow: var(--bs-sm);
30
30
  pointer-events: all;
31
31
  }
32
32
 
33
33
  .s-notice--btn {
34
34
  color: var(--fc-dark);
35
- padding: @su8;
35
+ padding: var(--su8);
36
36
  }
37
37
  }
38
38
 
@@ -211,20 +211,20 @@
211
211
  position: fixed;
212
212
  display: flex;
213
213
  justify-content: center;
214
- top: @su16;
215
- left: @su8;
216
- right: @su8;
214
+ top: var(--su16);
215
+ left: var(--su8);
216
+ right: var(--su8);
217
217
  opacity: 0;
218
- z-index: @zi-modals + 1; // Toasts should appear above modals
218
+ z-index: calc(var(--zi-modals) + 1); // Toasts should appear above modals
219
219
  transform: translate3d(0, -66px, 0);
220
- transition: transform 100ms @te-smooth-slow 0s, opacity 60ms @te-smooth-slow 0ms, visibility 0s 150ms;
220
+ transition: transform 100ms var(--te-smooth-slow) 0s, opacity 60ms var(--te-smooth-slow) 0ms, visibility 0s 150ms;
221
221
  pointer-events: none;
222
222
 
223
223
  &[aria-hidden="false"] {
224
224
  visibility: visible;
225
225
  opacity: 1;
226
226
  transform: translate3d(0, 0, 0);
227
- transition: visibility 0s 0s, opacity 100ms @te-smooth 0s, transform 100ms @te-smooth 0s;
227
+ transition: visibility 0s 0s, opacity 100ms var(--te-smooth) 0s, transform 100ms var(--te-smooth) 0s;
228
228
  }
229
229
 
230
230
  @media (prefers-reduced-motion) {