@stackoverflow/stacks 3.0.0-beta.22 → 3.0.0-beta.24

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 (72) hide show
  1. package/dist/css/stacks.css +16809 -17138
  2. package/dist/css/stacks.min.css +1 -1
  3. package/lib/atomic/backgrounds.less +67 -0
  4. package/lib/atomic/border-radius.less +38 -0
  5. package/lib/atomic/borders.less +73 -0
  6. package/lib/atomic/box-shadow.less +29 -0
  7. package/lib/atomic/box-sizing.less +3 -0
  8. package/lib/atomic/current-color.less +2 -0
  9. package/lib/atomic/cursors.less +8 -0
  10. package/lib/atomic/display.less +15 -0
  11. package/lib/atomic/floats.less +20 -0
  12. package/lib/atomic/gap.less +2 -0
  13. package/lib/atomic/grid.less +2 -0
  14. package/lib/atomic/interactivity.less +45 -0
  15. package/lib/atomic/lists.less +29 -0
  16. package/lib/atomic/{spacing.less → margin.less} +0 -10
  17. package/lib/atomic/object-fit.less +9 -0
  18. package/lib/atomic/opacity.less +54 -0
  19. package/lib/atomic/outline.less +11 -0
  20. package/lib/atomic/overflow.less +17 -0
  21. package/lib/atomic/padding.less +12 -0
  22. package/lib/atomic/positioning.less +7 -0
  23. package/lib/atomic/sizing.less +3 -28
  24. package/lib/atomic/transitions.less +20 -0
  25. package/lib/atomic/truncation.less +58 -0
  26. package/lib/atomic/typography.less +19 -124
  27. package/lib/atomic/vertical-alignment.less +9 -0
  28. package/lib/atomic/visibility.less +18 -0
  29. package/lib/atomic/z-index.less +12 -0
  30. package/lib/base/reset-normalize.less +2 -2
  31. package/lib/components/activity-indicator/activity-indicator.less +3 -3
  32. package/lib/components/anchor/anchor.less +28 -39
  33. package/lib/components/avatar/avatar.less +17 -16
  34. package/lib/components/badge/badge.less +14 -4
  35. package/lib/components/banner/banner.less +1 -1
  36. package/lib/components/button/button.less +78 -17
  37. package/lib/components/button-group/button-group.less +2 -2
  38. package/lib/components/card/card.less +1 -1
  39. package/lib/components/checkbox_radio/checkbox_radio.less +3 -3
  40. package/lib/components/code-block/code-block.less +1 -2
  41. package/lib/components/description/description.less +2 -1
  42. package/lib/components/form-group/form-group.less +14 -1
  43. package/lib/components/input-fill/input-fill.less +3 -3
  44. package/lib/components/input-icon/input-icon.less +2 -2
  45. package/lib/components/input-message/input-message.less +1 -0
  46. package/lib/components/input_textarea/input_textarea.less +2 -2
  47. package/lib/components/label/label.less +12 -56
  48. package/lib/components/link/link.less +44 -98
  49. package/lib/components/link-preview/link-preview.less +5 -13
  50. package/lib/components/menu/menu.less +9 -1
  51. package/lib/components/navigation/navigation.less +7 -1
  52. package/lib/components/notice/notice.less +1 -1
  53. package/lib/components/page-title/page-title.less +1 -1
  54. package/lib/components/pagination/pagination.less +11 -4
  55. package/lib/components/popover/popover.less +2 -2
  56. package/lib/components/post-summary/post-summary.less +223 -385
  57. package/lib/components/progress-bar/progress-bar.less +17 -17
  58. package/lib/components/prose/prose.less +35 -9
  59. package/lib/components/select/select.less +26 -10
  60. package/lib/components/table/table.less +48 -14
  61. package/lib/components/tag/tag.less +15 -5
  62. package/lib/components/toggle-switch/toggle-switch.less +2 -2
  63. package/lib/components/topbar/topbar.less +13 -13
  64. package/lib/components/uploader/uploader.less +5 -5
  65. package/lib/components/user-card/user-card.less +14 -3
  66. package/lib/exports/constants-helpers.less +6 -6
  67. package/lib/exports/mixins.less +27 -278
  68. package/lib/stacks-static.less +41 -20
  69. package/package.json +1 -1
  70. package/lib/atomic/border.less +0 -121
  71. package/lib/atomic/misc.less +0 -380
  72. package/lib/components/block-link/block-link.less +0 -82
@@ -1,17 +1,8 @@
1
- //
2
- // STACK OVERFLOW
3
- // TYPOGRAPHY
4
- //
5
- // This CSS comes from Stacks, our CSS & Pattern library for rapidly building
6
- // Stack Overflow. For documentation of all these classes and how to contribute,
7
- // visit https://stackoverflow.design/
8
- //
9
- // TABLE OF CONTENTS
10
- // • ATOMIC CLASSES
11
- //
12
- // ============================================================================
13
- // $ TYPE RESETS
14
- // ----------------------------------------------------------------------------
1
+ @import (reference) "../exports/constants-helpers.less";
2
+ @import (reference) "../base/configuration-static.less";
3
+ @import (reference) "../base/internal.less";
4
+
5
+ // TYPE RESETS
15
6
  h1,
16
7
  h2,
17
8
  h3,
@@ -22,10 +13,7 @@ p {
22
13
  margin-top: 0;
23
14
  }
24
15
 
25
- // ============================================================================
26
- // $ TEXT SIZES
27
- // ----------------------------------------------------------------------------
28
- // Declare font sizes
16
+ // TEXT SIZES
29
17
  .fs-display4 {
30
18
  font-size: var(--fs-display4) !important;
31
19
  line-height: 1.18;
@@ -92,9 +80,7 @@ p {
92
80
  .fs-body2 { font-size: calc(var(--fs-body2) * .9374) !important; } // ~15px
93
81
  }, @force-selector: true);
94
82
 
95
- // ============================================================================
96
- // $ LINE HEIGHTS
97
- // ----------------------------------------------------------------------------
83
+ // LINE HEIGHTS
98
84
  .lh-xs { line-height: var(--lh-xs) !important; }
99
85
  .lh-sm { line-height: var(--lh-sm) !important; }
100
86
  .lh-md { line-height: var(--lh-md) !important; }
@@ -103,100 +89,42 @@ p {
103
89
  .lh-xxl { line-height: var(--lh-xxl) !important; }
104
90
  .lh-unset { line-height: initial !important; }
105
91
 
106
- // ============================================================================
107
- // $$ TEXT STYLES & UTILITIES
108
- // ----------------------------------------------------------------------------
109
- // -- Font Family
92
+ // TEXT STYLES & UTILITIES
93
+ // Font Family
110
94
  .ff-sans { font-family: var(--ff-sans) !important; }
111
95
  .ff-serif { font-family: var(--ff-serif) !important; }
112
96
  .ff-mono { font-family: var(--ff-mono) !important; }
113
97
  .ff-inherit { font-family: inherit !important; }
114
98
 
115
- // -- Font Weight
99
+ // Font Weight
116
100
  .fw-normal { font-weight: 400 !important; }
117
101
  .fw-medium { font-weight: 500 !important; }
118
102
  .fw-bold { font-weight: 600 !important; }
119
103
 
120
- // -- Font Styles
104
+ // Font Styles
121
105
  .fs-normal { font-style: normal !important; }
122
106
  .fs-italic { font-style: italic !important; }
123
107
  .fs-unset { font-style: unset !important; }
124
108
 
125
- // -- Text Align
109
+ // Text Align
126
110
  #stacks-internals #responsify('.ta-left', { text-align: left !important; });
127
111
  #stacks-internals #responsify('.ta-center', { text-align: center !important; });
128
112
  #stacks-internals #responsify('.ta-right', { text-align: right !important; });
129
113
  .ta-justify { text-align: justify !important; }
130
114
  .ta-unset { text-align: unset !important; }
131
115
 
132
- // -- Text Decoration
116
+ // Text Decoration
133
117
  .td-none { text-decoration: none !important; }
134
118
  .td-underline { text-decoration: underline !important; }
135
119
 
136
- // -- Text Transform
120
+ // Text Transform
137
121
  .tt-capitalize { text-transform: capitalize !important; }
138
122
  .tt-lowercase { text-transform: lowercase !important; }
139
123
  .tt-uppercase { text-transform: uppercase !important; }
140
124
  .tt-none { text-transform: none !important; }
141
125
  .tt-unset { text-transform: unset !important; }
142
126
 
143
- // -- Text Truncate
144
- .truncate {
145
- overflow: hidden;
146
- max-width: 100%;
147
- text-overflow: ellipsis !important;
148
- white-space: nowrap;
149
- }
150
-
151
- .v-truncate1 {
152
- .truncation(1);
153
- }
154
-
155
- .v-truncate2 {
156
- .truncation(2);
157
- }
158
-
159
- .v-truncate3 {
160
- .truncation(3);
161
- }
162
-
163
- .v-truncate4 {
164
- .truncation(4);
165
- }
166
-
167
- .v-truncate5 {
168
- .truncation(5);
169
- }
170
-
171
- .truncation(@count) {
172
- // Despite these all being webkit-specific properties, this works across
173
- // Safari, Chrome, Edge, and Firefox.
174
- display: -webkit-box;
175
- -webkit-line-clamp: @count;
176
- -webkit-box-orient: vertical;
177
- overflow: hidden;
178
- }
179
-
180
- .v-truncate-fade {
181
- overflow: hidden;
182
- -webkit-mask-image: linear-gradient(180deg, #000 calc(var(--lh-md) * 9em), transparent);
183
- mask-image: linear-gradient(180deg, #000 calc(var(--lh-md) * 9em), transparent);
184
- max-height: calc(var(--lh-md) * 12em);
185
-
186
- &.v-truncate-fade__sm {
187
- -webkit-mask-image: linear-gradient(180deg, #000 calc(var(--lh-md) * 3em), transparent);
188
- mask-image: linear-gradient(180deg, #000 calc(var(--lh-md) * 3em), transparent);
189
- max-height: calc(var(--lh-md) * 6em);
190
- }
191
-
192
- &.v-truncate-fade__lg {
193
- -webkit-mask-image: linear-gradient(180deg, #000 calc(var(--lh-md) * 21em), transparent);
194
- mask-image: linear-gradient(180deg, #000 calc(var(--lh-md) * 21em), transparent);
195
- max-height: calc(var(--lh-md) * 24em);
196
- }
197
- }
198
-
199
- // -- Whitespace
127
+ // Whitespace
200
128
  .ws-normal { white-space: normal !important; }
201
129
  .ws-nowrap { white-space: nowrap !important; }
202
130
  .ws-pre { white-space: pre !important; }
@@ -204,7 +132,7 @@ p {
204
132
  .ws-pre-line { white-space: pre-line !important; }
205
133
  .ws-unset { white-space: unset !important; }
206
134
 
207
- // -- Word Break
135
+ // Word Break
208
136
  .wb-normal { word-break: normal !important; }
209
137
  .wb-break-all { word-break: break-all !important; }
210
138
  .wb-keep-all { word-break: keep-all !important; }
@@ -212,7 +140,7 @@ p {
212
140
  .wb-initial { word-break: initial !important; }
213
141
  .wb-unset { word-break: unset !important; }
214
142
 
215
- // -- Overflow Wrap
143
+ // Overflow Wrap
216
144
  .ow-normal {
217
145
  overflow-wrap: normal !important;
218
146
  }
@@ -237,7 +165,7 @@ p {
237
165
  overflow-wrap: unset !important;
238
166
  }
239
167
 
240
- // -- Hyphenation
168
+ // Hyphenation
241
169
  .hyphens-none { hyphens: none !important; }
242
170
  .hyphens-auto {
243
171
  -ms-hyphens: auto !important;
@@ -246,7 +174,7 @@ p {
246
174
  }
247
175
  .hyphens-unset { hyphens: unset !important; }
248
176
 
249
- // -- Break word
177
+ // Break word
250
178
  .break-word {
251
179
  // DEPRECATED: https://developer.mozilla.org/en-US/docs/Web/CSS/word-break
252
180
  /* stylelint-disable-next-line declaration-property-value-keyword-no-deprecated */
@@ -257,36 +185,3 @@ p {
257
185
  -ms-hyphens: auto !important;
258
186
  hyphens: auto !important;
259
187
  }
260
-
261
- // ============================================================================
262
- // $ LISTS
263
- // ----------------------------------------------------------------------------
264
- ul,
265
- ol {
266
- padding: 0;
267
- margin-left: 2.8em;
268
-
269
- ul,
270
- ol {
271
- margin-bottom: 0;
272
- }
273
- }
274
-
275
- ul { list-style-type: disc; }
276
- ol { list-style-type: decimal; }
277
-
278
- .list-reset {
279
- list-style: none;
280
- margin: 0;
281
- padding: 0;
282
- }
283
-
284
- // -- List Style Types
285
- .list-ls-none { list-style: none !important; }
286
- .list-ls-disc { list-style-type: disc !important; }
287
- .list-ls-decimal { list-style-type: decimal !important; }
288
- .list-ls-unset { list-style-type: unset !important; }
289
-
290
- // -- List Position
291
- .list-inside { list-style-position: inside !important; }
292
- .list-outside { list-style-position: outside !important; }
@@ -0,0 +1,9 @@
1
+ .va-baseline { vertical-align: baseline !important; }
2
+ .va-bottom { vertical-align: bottom !important; }
3
+ .va-middle { vertical-align: middle !important; }
4
+ .va-sub { vertical-align: sub !important; }
5
+ .va-super { vertical-align: super !important; }
6
+ .va-text-bottom { vertical-align: text-bottom !important; }
7
+ .va-text-top { vertical-align: text-top !important; }
8
+ .va-top { vertical-align: top !important; }
9
+ .va-unset { vertical-align: unset !important; }
@@ -0,0 +1,18 @@
1
+
2
+ .v-visible { visibility: visible !important; }
3
+ .v-hidden { visibility: hidden !important; }
4
+ .v-visible-sr {
5
+ // Borrowed from Wordpress
6
+ // https://make.wordpress.org/accessibility/2015/02/09/hiding-text-for-screen-readers-with-wordpress-core/
7
+ border: 0;
8
+ /* stylelint-disable-next-line property-no-deprecated -- clip is kept for older browser compatibility alongside clip-path */
9
+ clip: rect(var(--su1), var(--su1), var(--su1), var(--su1));
10
+ clip-path: inset(50%);
11
+ height: var(--su1);
12
+ margin: var(--sun1);
13
+ overflow: hidden;
14
+ padding: 0;
15
+ position: absolute;
16
+ width: var(--su1);
17
+ overflow-wrap: normal;
18
+ }
@@ -0,0 +1,12 @@
1
+ .z-hide { z-index: var(--zi-hide) !important; }
2
+ .z-base { z-index: var(--zi-base) !important; }
3
+ .z-active { z-index: var(--zi-active) !important; }
4
+ .z-selected { z-index: var(--zi-selected) !important; }
5
+ .z-dropdown { z-index: var(--zi-dropdown) !important; }
6
+ .z-popover { z-index: var(--zi-popovers) !important; }
7
+ .z-tooltip { z-index: var(--zi-tooltips) !important; }
8
+ .z-banner { z-index: var(--zi-banners) !important; }
9
+ .z-nav { z-index: var(--zi-navigation) !important; }
10
+ .z-nav-fixed { z-index: var(--zi-navigation-fixed) !important; }
11
+ .z-modal { z-index: var(--zi-modals) !important; }
12
+ .z-modal-bg { z-index: var(--zi-modals-background) !important; }
@@ -69,7 +69,7 @@ main { /* 1 */
69
69
  */
70
70
 
71
71
  figure {
72
- margin: 1em calc(var(--su-static32) + var(--su-static8)); // 1em 40px
72
+ margin: 1em calc(var(--su32) + var(--su8)); // 1em 40px
73
73
  }
74
74
 
75
75
  /**
@@ -303,7 +303,7 @@ button:-moz-focusring,
303
303
  [type="button"]:-moz-focusring,
304
304
  [type="reset"]:-moz-focusring,
305
305
  [type="submit"]:-moz-focusring {
306
- outline: var(--su-static1) dotted ButtonText;
306
+ outline: var(--su1) dotted ButtonText;
307
307
  }
308
308
 
309
309
  /**
@@ -1,8 +1,8 @@
1
1
  .s-activity-indicator {
2
2
  --_ai-bg: var(--pink-400);
3
3
  --_ai-fc: var(--white);
4
- --_ai-min-size: var(--su-static16);
5
- --_ai-p: 0 calc(var(--su-static4) - var(--su-static1));
4
+ --_ai-min-size: var(--su16);
5
+ --_ai-p: 0 var(--su3);
6
6
 
7
7
  // VARIANTS
8
8
  &&__danger {
@@ -19,7 +19,7 @@
19
19
  }
20
20
 
21
21
  &&__sm {
22
- --_ai-min-size: calc(var(--su-static8) + var(--su-static2));
22
+ --_ai-min-size: calc(var(--su8) + var(--su2));
23
23
  --_ai-p: 0;
24
24
  }
25
25
 
@@ -1,9 +1,14 @@
1
1
  .s-anchors {
2
- // CUSTOM PROPERTIED DEFINED WITHIN VARIANTS
3
- // --_an-a-fc
4
- // --_an-a-fc-hover
5
- // --_an-a-fc-visited
6
- // --_an-a-fc-hover-visited
2
+ --_an-a-fc: var(--theme-link-color, var(--black-600));
3
+ --_an-a-fc-hover: var(--theme-link-color-hover, var(--blue-400));
4
+ --_an-a-fc-visited: var(--theme-link-color-visited, var(--black-400));
5
+
6
+ // CONTEXTUAL STYLES
7
+ .highcontrast-mode({
8
+ a[href] {
9
+ text-decoration: underline;
10
+ }
11
+ });
7
12
 
8
13
  // MODIFIERS
9
14
  &&__underlined {
@@ -14,30 +19,15 @@
14
19
  }
15
20
 
16
21
  // VARIANTS
17
- &&__danger,
18
- &&__grayscale,
19
- &&__inherit,
20
- &&__muted {
21
- --_an-a-fc-hover-visited: var(--_an-a-fc-hover);
22
- }
23
-
24
22
  &&__danger {
25
23
  --_an-a-fc: var(--red-400);
26
24
  --_an-a-fc-hover: var(--red-500);
27
25
  --_an-a-fc-visited: var(--red-600);
28
26
  }
29
27
 
30
- &&__default {
31
- --_an-a-fc: var(--theme-link-color, var(--theme-secondary));
32
- --_an-a-fc-hover: var(--theme-link-color-hover, var(--theme-secondary-500));
33
- --_an-a-fc-visited: var(--theme-link-color-visited, var(--purple-500));
34
- --_an-a-fc-hover-visited: var(--theme-link-color-hover, var(--purple-600));
35
- }
36
-
37
28
  &&__grayscale {
38
29
  --_an-a-fc: var(--black-500);
39
30
  --_an-a-fc-hover: var(--black-600);
40
- --_an-a-fc-visited: var(--black-400);
41
31
  }
42
32
 
43
33
  &&__inherit {
@@ -55,31 +45,30 @@
55
45
 
56
46
  &&__muted {
57
47
  --_an-a-fc: var(--black-400);
58
- --_an-a-fc-hover: var(--black-500);
59
- --_an-a-fc-visited: var(--black-600);
60
48
  }
61
49
 
62
- &&__danger,
63
- &&__default,
64
- &&__grayscale,
65
- &&__inherit,
66
- &&__muted {
67
- a:not(.s-link),
68
- .s-btn.s-btn__link {
69
- &:active,
70
- &:hover {
71
- color: var(--_an-a-fc-hover);
72
- }
50
+ p& > a[href],
51
+ p > a[href] {
52
+ text-decoration: underline;
53
+ }
73
54
 
74
- color: var(--_an-a-fc, inherit);
55
+ a:not(.s-link),
56
+ .s-btn.s-btn__link {
57
+ &:active,
58
+ &:hover {
59
+ color: var(--_an-a-fc-hover);
60
+ text-decoration: underline;
75
61
  }
76
62
 
77
- a:not(.s-link):visited {
78
- &:hover {
79
- color: var(--_an-a-fc-hover-visited, inherit);
80
- }
63
+ color: var(--_an-a-fc, inherit);
64
+ text-decoration: none;
65
+ }
81
66
 
82
- color: var(--_an-a-fc-visited, inherit);
67
+ a:not(.s-link):visited {
68
+ &:hover {
69
+ color: var(--_an-a-fc-hover, inherit);
83
70
  }
71
+
72
+ color: var(--_an-a-fc-visited, inherit);
84
73
  }
85
74
  }
@@ -1,7 +1,7 @@
1
1
  .s-avatar {
2
- --_av-size: var(--su-static16);
2
+ --_av-size: var(--su16);
3
3
  --_av-bg: var(--_white-static); // Force a white background color for when we have transparent avatars
4
- --_av-fs-letter: calc(var(--su-static12) - var(--su-static1));
4
+ --_av-fs-letter: calc(var(--su12) - var(--su1));
5
5
  --_av-scale-badge: 1;
6
6
 
7
7
  // CONTEXTUAL STYLES
@@ -11,7 +11,7 @@
11
11
  }
12
12
 
13
13
  background-color: var(--black);
14
- box-shadow: 0 0 0 var(--su-static1) var(--black);
14
+ box-shadow: 0 0 0 var(--su1) var(--black);
15
15
  color: var(--white);
16
16
  });
17
17
 
@@ -23,37 +23,37 @@
23
23
  }
24
24
 
25
25
  &&__24 {
26
- --_av-size: var(--su-static24);
27
- --_av-fs-letter: var(--su-static16);
26
+ --_av-size: var(--su24);
27
+ --_av-fs-letter: var(--su16);
28
28
  --_av-scale-badge: 1.1;
29
29
  }
30
30
 
31
31
  &&__32 {
32
- --_av-size: var(--su-static32);
33
- --_av-fs-letter: calc(var(--su-static24) - var(--su-static2));
32
+ --_av-size: var(--su32);
33
+ --_av-fs-letter: calc(var(--su24) - var(--su2));
34
34
  --_av-scale-badge: 1.3;
35
35
  }
36
36
 
37
37
  &&__48 {
38
- --_av-size: var(--su-static48);
39
- --_av-fs-letter: calc(var(--su-static32) + var(--su-static2));
38
+ --_av-size: var(--su48);
39
+ --_av-fs-letter: calc(var(--su32) + var(--su2));
40
40
  --_av-scale-badge: 1.6;
41
41
  }
42
42
 
43
43
  &&__64 {
44
- --_av-size: var(--su-static64);
45
- --_av-fs-letter: calc(var(--su-static48) - var(--su-static4));
44
+ --_av-size: var(--su64);
45
+ --_av-fs-letter: calc(var(--su48) - var(--su4));
46
46
  --_av-scale-badge: 2.4;
47
47
  }
48
48
 
49
49
  &&__96 {
50
- --_av-size: var(--su-static96);
51
- --_av-fs-letter: calc(var(--su-static64) + var(--su-static2));
50
+ --_av-size: var(--su96);
51
+ --_av-fs-letter: calc(var(--su64) + var(--su2));
52
52
  }
53
53
 
54
54
  &&__128 {
55
- --_av-size: var(--su-static128);
56
- --_av-fs-letter: calc(var(--su-static96) - var(--su-static8));
55
+ --_av-size: var(--su128);
56
+ --_av-fs-letter: calc(var(--su96) - var(--su8));
57
57
  }
58
58
 
59
59
  // CHILD ELEMENTS
@@ -87,7 +87,7 @@
87
87
  }
88
88
 
89
89
  & &--indicator {
90
- box-shadow: 0 0 0 var(--su-static2) var(--white);
90
+ box-shadow: 0 0 0 var(--su2) var(--white);
91
91
  bottom: 100%;
92
92
  left: 100%;
93
93
  position: absolute;
@@ -102,5 +102,6 @@
102
102
  background-size: 100%;
103
103
  display: inline-block; // Make sure the avatar has structure regardless of the element eg. span vs. div
104
104
  position: relative;
105
+ text-decoration: none;
105
106
  vertical-align: bottom; // Make our avatars play more nicely with text next to it.
106
107
  }
@@ -17,7 +17,7 @@
17
17
 
18
18
  // SIZES
19
19
  &&__sm {
20
- --_ba-wmn: calc(var(--su-static16) + var(--su-static2));
20
+ --_ba-wmn: calc(var(--su16) + var(--su2));
21
21
  --_ba-as: flex-start;
22
22
  --_ba-fs: var(--fs-fine); //12px
23
23
  --_ba-px: var(--su4);
@@ -133,9 +133,19 @@
133
133
  --_ba-sq-bg: var(--purple-200);
134
134
  --_ba-bc: var(--purple-400);
135
135
  --_ba-gap: var(--su2); // 2px gap between icon and text
136
- --_ba-before-h: calc(var(--su12) + var(--su2)); // 14px
137
- --_ba-before-w: calc(var(--su12) + var(--su2)); // 14px
138
- --_ba-before-icon: url("data:image/svg+xml;,%3Csvg width='14' height='14' viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 1a7 7 0 1 1 0 14A7 7 0 0 1 8 1m0 1.25a5.75 5.75 0 1 0 0 11.5 5.75 5.75 0 0 0 0-11.5m1 10.06H7V10.6h2zM8.14 4c1.78 0 2.77.96 2.77 2.5 0 1.79-2.1 2.2-2.1 3.25h-1.6c0-2 2-2.08 2-3.26 0-.54-.27-.96-1.02-.96-.7 0-1.03.46-1.1 1.23H5.4A2.75 2.75 0 0 1 8.13 4' fill='%23fff'/%3E%3C/svg%3E");
136
+ --_ba-before-h: calc(var(--su12) + var(--su4)); // 16px
137
+ --_ba-before-w: calc(var(--su12) + var(--su4)); // 16px
138
+ --_ba-before-icon: url("data:image/svg+xml;,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.25 7h7.28l-5.89 4.29.68 2.08-2.07-1.5-.04-.12-.33-1.04.88-.64 2.16-1.56h-3.76l-.34-1.04L10 4.94l-.82 2.53-.34 1.04H5.08l2.16 1.56.88.64-.33 1.04-.83 2.54 2.16-1.57.87-.64 5.12 3.72.78 2.41L10 13.93l-5.9 4.28 2.26-6.92L.46 7h7.29L10 .08z' /%3E%3C/svg%3E");
139
+
140
+ &.s-badge__sm {
141
+ --_ba-before-h: calc(var(--su12) + var(--su2)); // 14px
142
+ --_ba-before-w: calc(var(--su12) + var(--su2)); // 14px
143
+ }
144
+
145
+ &.s-badge__lg {
146
+ --_ba-before-h: calc(var(--su12) + var(--su6)); // 18px
147
+ --_ba-before-w: calc(var(--su12) + var(--su6)); // 18px
148
+ }
139
149
 
140
150
  &:before {
141
151
  height: var(--_ba-before-h);
@@ -3,7 +3,7 @@
3
3
  // This would reduce the amount of CSS we ship to the client and simplify our codebase
4
4
  .s-banner {
5
5
  --_no-ty-offset: 0;
6
- --_no-ty: var(--theme-topbar-height, calc(var(--su-static48) + var(--su-static8)));
6
+ --_no-ty: var(--theme-topbar-height, calc(var(--su48) + var(--su8)));
7
7
  .construct-notice-component(s-banner);
8
8
 
9
9
  &--icon {