@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
@@ -7,10 +7,10 @@
7
7
  --_pr-h: unset;
8
8
  --_pr-size: unset;
9
9
  --_pr-w: 100%;
10
- --_pr-hmn: var(--su-static4);
10
+ --_pr-hmn: var(--su4);
11
11
  --_pr-bar-bar: var(--br-md);
12
12
  --_pr-bar-bg: var(--green-400);
13
- --_pr-bar-hmn: var(--su-static4);
13
+ --_pr-bar-hmn: var(--su4);
14
14
  --_pr-label-ai: unset;
15
15
  --_pr-label-bc: transparent;
16
16
  --_pr-label-d: unset;
@@ -69,20 +69,20 @@
69
69
 
70
70
  &&__circular {
71
71
  --_pr-bg: transparent;
72
- --_pr-size: var(--su-static32);
72
+ --_pr-size: var(--su32);
73
73
  --s-progress-value: 0;
74
74
 
75
75
  &.s-progress {
76
76
  &__sm {
77
- --_pr-size: var(--su-static24);
77
+ --_pr-size: var(--su24);
78
78
  }
79
79
 
80
80
  &__md {
81
- --_pr-size: var(--su-static48);
81
+ --_pr-size: var(--su48);
82
82
  }
83
83
 
84
84
  &__lg {
85
- --_pr-size: var(--su-static64);
85
+ --_pr-size: var(--su64);
86
86
  }
87
87
  }
88
88
 
@@ -101,7 +101,7 @@
101
101
 
102
102
  fill: none;
103
103
  stroke-linecap: round;
104
- stroke-width: var(--su-static4);
104
+ stroke-width: var(--su4);
105
105
  }
106
106
 
107
107
  transform: rotate(270deg); // Make everything originate from the top of the circle
@@ -138,9 +138,9 @@
138
138
 
139
139
  background: var(--black-250);
140
140
  border-radius: 0;
141
- height: var(--su-static6);
141
+ height: var(--su6);
142
142
  position: absolute;
143
- top: calc(var(--su-static8) + var(--su-static1));
143
+ top: calc(var(--su8) + var(--su1));
144
144
  z-index: var(--zi-base);
145
145
  }
146
146
 
@@ -171,7 +171,7 @@
171
171
 
172
172
  &--stop {
173
173
  background: var(--theme-secondary);
174
- box-shadow: 0 0 0 var(--su-static6) var(--translucent-secondary);// TODO SHINE revisit this value once theme colors are finalized
174
+ box-shadow: 0 0 0 var(--su6) var(--translucent-secondary);// TODO SHINE revisit this value once theme colors are finalized
175
175
  }
176
176
  }
177
177
  }
@@ -208,10 +208,10 @@
208
208
  border-radius: 100%;
209
209
  color: var(--_white-static);
210
210
  display: flex;
211
- height: var(--su-static24);
211
+ height: var(--su24);
212
212
  justify-content: center;
213
213
  position: relative;
214
- width: var(--su-static24);
214
+ width: var(--su24);
215
215
  z-index: var(--zi-selected);
216
216
  }
217
217
  }
@@ -224,13 +224,13 @@
224
224
  min-height: var(--_pr-hmn);
225
225
 
226
226
  height: 100%;
227
- min-width: var(--su-static6);
227
+ min-width: var(--su6);
228
228
  position: relative;
229
229
  }
230
230
 
231
231
  & &--label {
232
232
  align-items: var(--_pr-label-ai);
233
- border: var(--su-static1) solid var(--_pr-label-bc);
233
+ border: var(--su1) solid var(--_pr-label-bc);
234
234
  display: var(--_pr-label-d);
235
235
  gap: var(--_pr-label-g);
236
236
  justify-content: var(--_pr-label-jc);
@@ -257,11 +257,11 @@
257
257
  left: var(--sun1);
258
258
  position: absolute;
259
259
  top: 0;
260
- width: var(--su-static4);
260
+ width: var(--su4);
261
261
  }
262
262
 
263
263
  display: block;
264
- padding-top: var(--su-static4);
264
+ padding-top: var(--su4);
265
265
  position: relative;
266
266
  text-align: center;
267
267
  }
@@ -282,7 +282,7 @@
282
282
  height: var(--_pr-size, var(--_pr-h));
283
283
  min-height: var(--_pr-hmn);
284
284
 
285
- min-width: var(--su-static6);
285
+ min-width: var(--su6);
286
286
  position: relative;
287
287
  width: var(--_pr-size, var(--_pr-w));
288
288
  }
@@ -4,7 +4,7 @@
4
4
  @pr-spacing-condensed: calc(@pr-spacing / 2); // Reduce the base spacing by half in the context of lists, etc.
5
5
  @pr-spoiler-transition: opacity 0.1s ease-in-out;
6
6
  // COMPONENT-SPECIFIC CUSTOM PROPERTIES
7
- --_pr-fs: calc(var(--su-static16) - var(--su-static1)); // Force a font size that doesn’t change at the smallest breakpoint;
7
+ --_pr-fs: unset;
8
8
  --_pr-lh: 1.5;
9
9
  --_pr-blockquote-ml: 1em;
10
10
  --_pr-blockquote-mt: 0;
@@ -19,7 +19,7 @@
19
19
  --_pr-hr-bg: var(--black-225); // used for both background-color and color properties
20
20
  --_pr-img-mb: @pr-spacing;
21
21
  --_pr-kbd-bc: var(--black-300);
22
- --_pr-kbd-bs: 0 var(--su-static1) var(--su-static1) hsla(210, 8%, 5%, 0.15), inset 0 1px 0 0 var(--_white-static);
22
+ --_pr-kbd-bs: 0 var(--su1) var(--su1) hsla(210, 8%, 5%, 0.15), inset 0 1px 0 0 var(--_white-static);
23
23
  --_pr-spoiler-cursor: pointer;
24
24
  --_pr-spoiler-after-t: 1em;
25
25
  --_pr-soiler-after-o: unset;
@@ -33,7 +33,7 @@
33
33
  .dark-mode({
34
34
  --_pr-kbd-bc: transparent;
35
35
  --_pr-kbd-btc: var(--black-400);
36
- --_pr-kbd-bs: 0 var(--su-static1) var(--su-static1) hsla(210, 8%, 5%, 0.8);
36
+ --_pr-kbd-bs: 0 var(--su1) var(--su1) hsla(210, 8%, 5%, 0.8);
37
37
  });
38
38
 
39
39
  .highcontrast-mode({
@@ -178,6 +178,28 @@
178
178
  }
179
179
 
180
180
  // Others child elements
181
+ // Base anchor styles match .s-link; use theme/fallback directly for color so hover/visited apply
182
+ // (see lib/components/link/link.less)
183
+ a:not([class]) {
184
+ &:active,
185
+ &:hover {
186
+ color: var(--theme-link-color-hover, var(--blue-400));
187
+ text-decoration: underline !important;
188
+ }
189
+ &:visited {
190
+ color: var(--theme-link-color-visited, var(--black-400));
191
+ }
192
+
193
+ &:hover:visited {
194
+ color: var(--theme-link-color-hover, var(--blue-400));
195
+ text-decoration: underline !important;
196
+ }
197
+
198
+ color: var(--theme-link-color, var(--black-600));
199
+ cursor: pointer;
200
+ user-select: auto;
201
+ }
202
+
181
203
  blockquote,
182
204
  q {
183
205
  quotes: none;
@@ -247,7 +269,7 @@
247
269
  &:before {
248
270
  background: var(--_pr-blockquote-before-bg);
249
271
 
250
- border-radius: var(--su-static8);
272
+ border-radius: var(--su8);
251
273
  bottom: 0;
252
274
  content: "";
253
275
  display: block;
@@ -299,7 +321,7 @@
299
321
  color: var(--_pr-hr-bg); // value set for background-color reused for color intentionally
300
322
 
301
323
  border: 0;
302
- height: var(--su-static1);
324
+ height: var(--su1);
303
325
  margin-bottom: @pr-spacing;
304
326
  }
305
327
 
@@ -311,7 +333,7 @@
311
333
  }
312
334
 
313
335
  kbd {
314
- border: var(--su-static1) solid var(--_pr-kbd-bc);
336
+ border: var(--su1) solid var(--_pr-kbd-bc);
315
337
  border-top-color: var(--_pr-kbd-btc, var(--_pr-kbd-bc));
316
338
  box-shadow: var(--_pr-kbd-bs);
317
339
 
@@ -325,7 +347,7 @@
325
347
  margin: 0 0.1em;
326
348
  overflow-wrap: break-word;
327
349
  padding: 0.1em 0.6em;
328
- text-shadow: 0 var(--su-static1) 0 var(--white);
350
+ text-shadow: 0 var(--su1) 0 var(--white);
329
351
  }
330
352
 
331
353
  li {
@@ -342,6 +364,10 @@
342
364
  p {
343
365
  --_pr-img-mb: 0;
344
366
 
367
+ a {
368
+ text-decoration: underline;
369
+ }
370
+
345
371
  margin-bottom: @pr-spacing;
346
372
  }
347
373
 
@@ -412,7 +438,7 @@
412
438
  background: var(--black-150);
413
439
  border-radius: var(--br-md);
414
440
  color: var(--black-600);
415
- min-height: var(--su-static48); // TODO: Let's find a solution that doesn't have a magic number
441
+ min-height: var(--su48); // TODO: Let's find a solution that doesn't have a magic number
416
442
  }
417
443
 
418
444
  .youtube-embed { // [2]
@@ -434,7 +460,7 @@
434
460
  width: 100%;
435
461
  }
436
462
 
437
- font-size: var(--_pr-fs); // Force a font size that doesn’t change at the smallest breakpoint
463
+ font-size: var(--_pr-fs);
438
464
  line-height: var(--_pr-lh);
439
465
 
440
466
  overflow-wrap: break-word;
@@ -5,13 +5,13 @@
5
5
  --_se-select-br: var(--br-md);
6
6
  --_se-select-fc: var(--black);
7
7
  --_se-select-px: 0.7em;
8
- --_se-select-py: var(--su-static8);
8
+ --_se-select-py: var(--su8);
9
9
  --_se-select-fs: var(--fs-body1);
10
10
  --_se-select-lh: var(--lh-base);
11
11
 
12
12
  // CONTEXTUAL STYLES
13
13
  @supports (-webkit-overflow-scrolling: touch) {
14
- --_se-select-fs: var(--su-static16); // Increase font size for mobile safari. This keeps our inputs from zooming the page while focused
14
+ --_se-select-fs: var(--su16); // Increase font size for mobile safari. This keeps our inputs from zooming the page while focused
15
15
  --_se-select-px: 0.55em; // Compensate for the larger font size so we generally keep the input the same size
16
16
  --_se-select-py: 0.4em; // Compensate for the larger font size so we generally keep the input the same size
17
17
  }
@@ -24,36 +24,52 @@
24
24
  .validation-states(se-select);
25
25
 
26
26
  &&__sm {
27
- .size-styles(sm; se-select; @styles: fs);
27
+ --_se-select-fs: var(--fs-caption);
28
28
  --_se-select-lh: var(--lh-sm);
29
- --_se-select-py: calc(var(--su6) - var(--su-static1) / 2);
29
+ --_se-select-py: calc(var(--su6) - var(--su1) / 2);
30
30
  }
31
31
 
32
32
  &&__lg {
33
- .size-styles(md; se-select; @styles: fs);
33
+ --_se-select-fs: var(--fs-body3);
34
34
  --_se-select-lh: var(--lh-lg);
35
35
  }
36
36
 
37
37
  // CHILD ELEMENTS
38
38
  select&,
39
39
  & > select {
40
- .webkit-autofill();
40
+ // TODO: Investigate if this is still needed.
41
+ &:-webkit-autofill {
42
+ &:focus {
43
+ border-color: var(--blue-400);
44
+ // Since the box shadow is overwritten to show a background, we have to re-add the focus outline
45
+ -webkit-box-shadow: 0 0 0 1000px var(--blue-200) inset, 0 0 0 var(--su4) var(--focus-ring);
46
+ }
47
+
48
+ -webkit-box-shadow: 0 0 0 1000px var(--theme-secondary-200) inset; // This acts as a background color by stretching an inset box shadow across the input
49
+ -webkit-text-fill-color: var(--black);
50
+ border-color: var(--blue-400);
51
+ transition: background-color 0s 50000s; // A hack to infinitely delay background styles that come from the browser.
52
+ }
53
+
54
+ &::-webkit-contacts-auto-fill-button {
55
+ background-color: var(--black); // In Safari, make the autocomplete button darkmode-aware
56
+ }
41
57
  }
42
58
 
43
59
  &:after { // Chevron16UpDown icon
44
60
  background-color: currentColor;
45
61
  content: "";
46
- height: var(--su-static16);
62
+ height: var(--su16);
47
63
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M13.06 10 8 15.06 2.94 10 4 8.94l.53.53L8 12.94l3.47-3.47.53-.53zm0-4L12 7.06l-.53-.53L8 3.06 4.53 6.53 4 7.06 2.94 6 8 .94z'/%3E%3C/svg%3E");
48
64
  mask-repeat: no-repeat;
49
65
  mask-position: center;
50
66
  mask-size: contain;
51
67
  pointer-events: none;
52
68
  position: absolute;
53
- right: calc(var(--su32) - var(--su-static24));
69
+ right: calc(var(--su32) - var(--su24));
54
70
  top: 50%;
55
71
  transform: translateY(-50%);
56
- width: var(--su-static16);
72
+ width: var(--su16);
57
73
  z-index: var(--zi-selected);
58
74
  }
59
75
 
@@ -98,7 +114,7 @@
98
114
  }
99
115
 
100
116
  background-color: var(--_se-select-bg);
101
- border: var(--su-static1) solid var(--_se-select-bc);
117
+ border: var(--su1) solid var(--_se-select-bc);
102
118
  border-radius: var(--_se-select-br);
103
119
  color: var(--_se-select-fc);
104
120
  font-size: var(--_se-select-fs);
@@ -1,9 +1,9 @@
1
1
  .s-table {
2
- @ta-cell-border: var(--su-static1) solid var(--bc-medium);
2
+ @ta-cell-border: var(--su1) solid var(--bc-medium);
3
3
  @ta-columns: (100% / 12);
4
4
 
5
5
  --_ta-tbody-tbody-bc: var(--bc-medium);
6
- --_ta-tbody-tbody-bw: var(--su-static2);
6
+ --_ta-tbody-tbody-bw: var(--su2);
7
7
  --_ta-tbody-tr-even-bg: unset;
8
8
  --_ta-td-bbw: 0;
9
9
  --_ta-td-bc: var(--bc-medium);
@@ -22,6 +22,13 @@
22
22
  --_ta-th-va: middle;
23
23
  --_ta-th-w: unset;
24
24
 
25
+ // CONTEXTUAL STYLES
26
+ .highcontrast-mode({
27
+ a[href] {
28
+ text-decoration: underline;
29
+ }
30
+ });
31
+
25
32
  // VARIANTS
26
33
  &&__stripes {
27
34
  --_ta-tbody-tr-even-bg: var(--black-100);
@@ -68,7 +75,7 @@
68
75
  --_ta-td-bc: transparent;
69
76
  --_ta-th-bc: transparent;
70
77
  --_ta-tbody-tbody-bc: transparent; // [1]
71
- --_ta-tbody-tbody-bw: var(--su-static12); // [1]
78
+ --_ta-tbody-tbody-bw: var(--su12); // [1]
72
79
  --_ta-thead-th-bg: transparent;
73
80
 
74
81
  thead th {
@@ -135,7 +142,7 @@
135
142
  border: 0;
136
143
  cursor: pointer;
137
144
  display: flex;
138
- gap: var(--su-static4);
145
+ gap: var(--su4);
139
146
  font-weight: inherit;
140
147
  margin: calc(var(--_ta-th-p) * -1);
141
148
  padding: var(--_ta-th-p);
@@ -164,6 +171,29 @@
164
171
  }
165
172
 
166
173
  // CHILD ELEMENTS
174
+ td,
175
+ tr {
176
+ a:not([class]) {
177
+ &:active,
178
+ &:hover {
179
+ color: var(--theme-link-color-hover, var(--blue-400));
180
+ text-decoration: underline;
181
+ }
182
+
183
+ &:visited {
184
+ color: var(--theme-link-color-visited, var(--black-400));
185
+ }
186
+
187
+ &:hover:visited {
188
+ color: var(--theme-link-color-hover, var(--blue-400));
189
+ }
190
+ }
191
+
192
+ color: var(--theme-link-color, var(--black-600));
193
+ text-decoration: none;
194
+ cursor: pointer;
195
+ }
196
+
167
197
  & &--cell {
168
198
  .generate-cell-widths-classes(@n, @i: 1) when (@i =< @n) {
169
199
  &@{i} { // generates iterated cell classes
@@ -214,14 +244,14 @@
214
244
  &.s-table--progress-bar {
215
245
  --_ta-td-blw: 0;
216
246
  --_ta-td-pl: 0;
217
- --_ta-td-w: calc(var(--su-static12) * 10); // 120px
247
+ --_ta-td-w: calc(var(--su12) * 10); // 120px
218
248
  }
219
249
 
220
- border: var(--su-static1) solid var(--_ta-td-bc);
221
- border-bottom-width: var(--_ta-td-bbw, var(--su-static1));
222
- border-left-width: var(--_ta-td-blw, var(--su-static1));
223
- border-right-width: var(--_ta-td-brw, var(--su-static1));
224
- border-top-width: var(--_ta-td-btw, var(--su-static1));
250
+ border: var(--su1) solid var(--_ta-td-bc);
251
+ border-bottom-width: var(--_ta-td-bbw, var(--su1));
252
+ border-left-width: var(--_ta-td-blw, var(--su1));
253
+ border-right-width: var(--_ta-td-brw, var(--su1));
254
+ border-top-width: var(--_ta-td-btw, var(--su1));
225
255
  font-size: var(--_ta-td-fs);
226
256
  font-weight: var(--_ta-td-fw);
227
257
  padding: var(--_ta-td-p);
@@ -249,8 +279,8 @@
249
279
  --_ta-th-w: calc(var(--su32) - var(--su2)); // 30px
250
280
  }
251
281
 
252
- border: var(--su-static1) solid var(--_ta-th-bc);
253
- border-width: var(--su-static1) var(--su-static1) var(--_ta-th-bbw);
282
+ border: var(--su1) solid var(--_ta-th-bc);
283
+ border-width: var(--su1) var(--su1) var(--_ta-th-bbw);
254
284
  font-size: var(--_ta-th-fs);
255
285
  padding: var(--_ta-th-p);
256
286
  padding-top: var(--_ta-th-pt, var(--_ta-th-p));
@@ -274,8 +304,8 @@
274
304
 
275
305
  tr {
276
306
  &:last-of-type {
277
- --_ta-td-bbw: var(--su-static1);
278
- --_ta-th-bbw: var(--su-static1);
307
+ --_ta-td-bbw: var(--su1);
308
+ --_ta-th-bbw: var(--su1);
279
309
  }
280
310
 
281
311
  &.is-disabled {
@@ -297,5 +327,9 @@
297
327
  width: 100%;
298
328
  }
299
329
 
330
+ // TABLE LAYOUT ATOMIC CLASSES
331
+ .tl-fixed { table-layout: fixed !important; }
332
+ .tl-auto { table-layout: auto !important; }
333
+
300
334
  // [1] This makes the border transparent, so we need to use whitespace
301
335
  // to achieve the same effect a 2px gray border achieves.
@@ -16,6 +16,11 @@
16
16
 
17
17
  // CONTEXTUAL STYLES
18
18
  .highcontrast-mode({
19
+ &:is(a),
20
+ a[href] {
21
+ text-decoration: underline;
22
+ }
23
+
19
24
  &:not(&__moderator):not(&__required) {
20
25
  --_ta-bc: var(--theme-tag-border-color, var(--black-300));
21
26
  --_ta-bc-hover: var(--theme-tag-hover-border-color, var(--black-300));
@@ -49,10 +54,10 @@
49
54
  background-color: currentColor;
50
55
  content: "";
51
56
  display: block;
52
- height: calc(var(--su-static16) - var(--su-static2));
57
+ height: calc(var(--su16) - var(--su2));
53
58
  -webkit-mask-size: contain;
54
59
  mask-size: contain;
55
- width: calc(var(--su-static16) - var(--su-static2));
60
+ width: calc(var(--su16) - var(--su2));
56
61
  }
57
62
  }
58
63
 
@@ -150,12 +155,17 @@
150
155
  height: 100%;
151
156
  }
152
157
 
153
- max-width: calc(var(--su-static16) + var(--su-static2));
158
+ max-width: calc(var(--su16) + var(--su2));
154
159
  margin: calc(var(--_ta-pt) * -1) 0 calc(var(--_ta-pb) * -1) 0;
155
160
  }
156
161
 
157
162
  // INTERACTION
158
- a& {
163
+ &:has([href]),
164
+ a {
165
+ text-decoration: none;
166
+ }
167
+
168
+ a:not([class]) {
159
169
  &:hover,
160
170
  &:active {
161
171
  background-color: var(--_ta-bg-hover);
@@ -169,7 +179,7 @@
169
179
  }
170
180
 
171
181
  background-color: var(--_ta-bg);
172
- border: var(--su-static1) solid var(--_ta-bc);
182
+ border: var(--su1) solid var(--_ta-bc);
173
183
  color: var(--_ta-fc);
174
184
  font-size: var(--_ta-fs);
175
185
  padding: var(--_ta-pt) var(--_ta-pr) var(--_ta-pb) var(--_ta-pl);
@@ -97,10 +97,10 @@
97
97
  border-radius: 1000px;
98
98
  cursor: pointer;
99
99
  flex-shrink: 0;
100
- height: var(--su-static24);
100
+ height: var(--su24);
101
101
  margin: 0; // guard against production adding 5px of margin to these
102
102
  transition: background-position 0.2s ease;
103
103
  vertical-align: top;
104
- width: calc(var(--su-static48) - var(--su-static4));
104
+ width: calc(var(--su48) - var(--su4));
105
105
  }
106
106
  }
@@ -1,12 +1,12 @@
1
1
  .s-topbar {
2
2
  --_tb-bt: var(--theme-topbar-accent-border, 3px solid var(--theme-primary));
3
- --_tb-h: var(--theme-topbar-height, calc(var(--su-static48) + var(--su-static8)));
3
+ --_tb-h: var(--theme-topbar-height, calc(var(--su48) + var(--su8)));
4
4
  // CHILD COMPONENT CUSTOM PROPERTIES
5
5
  // Item
6
6
  --_tb-item-bg: unset;
7
7
  --_tb-item-fc: var(--theme-topbar-item-color, var(--black-400));
8
8
  // Item s-activity-indicator
9
- --_tb-item-ai-bs: 0 0 0 var(--su-static2) var(--theme-topbar-background-color, var(--white));
9
+ --_tb-item-ai-bs: 0 0 0 var(--su2) var(--theme-topbar-background-color, var(--white));
10
10
  --_tb-item-ai-t: calc(50% - calc(var(--su12) + var(--su2))); // 50% - 14px;
11
11
  // Logo
12
12
  --_tb-logo-bg: transparent;
@@ -16,9 +16,9 @@
16
16
  --_tb-menu-btn-fc-hover: unset;
17
17
  --_tb-menu-btn-span-bg: var(--theme-topbar-item-color, var(--black-400));
18
18
  --_tb-menu-btn-span-fc: unset;
19
- --_tb-menu-btn-span-after-t: calc(var(--su-static6) - var(--su-static1)); // 5px;
19
+ --_tb-menu-btn-span-after-t: calc(var(--su6) - var(--su1)); // 5px;
20
20
  --_tb-menu-btn-span-after-rotate: 0deg;
21
- --_tb-menu-btn-span-before-t: calc(var(--su-static1) - var(--su-static6)); // -5px;
21
+ --_tb-menu-btn-span-before-t: calc(var(--su1) - var(--su6)); // -5px;
22
22
  --_tb-menu-btn-span-before-rotate: 0deg;
23
23
  // Notice
24
24
  --_tb-notice-bg: transparent;
@@ -84,7 +84,7 @@
84
84
  --theme-topbar-item-background-hover: var(--black-300);
85
85
  --theme-topbar-item-color-current: var(--black);
86
86
 
87
- border-bottom: var(--su-static1) solid currentColor;
87
+ border-bottom: var(--su1) solid currentColor;
88
88
  });
89
89
 
90
90
  .highcontrast-dark-mode({
@@ -179,7 +179,7 @@
179
179
  --_tb-item-bg: var(--theme-topbar-item-background-hover, var(--black-200));
180
180
  --_tb-item-fc: var(--theme-topbar-item-color-hover, var(--black-600));
181
181
 
182
- --_tb-item-ai-bs: 0 0 0 var(--su-static2) var(--theme-topbar-item-background-hover, var(--black-200));
182
+ --_tb-item-ai-bs: 0 0 0 var(--su2) var(--theme-topbar-item-background-hover, var(--black-200));
183
183
  --_tb-item-ai-t: calc(50% - calc(var(--su16) + var(--su2))); // 50% - 18px
184
184
 
185
185
  outline: none;
@@ -190,7 +190,7 @@
190
190
  top: var(--_tb-item-ai-t);
191
191
 
192
192
  position: absolute;
193
- right: var(--su-static2);
193
+ right: var(--su2);
194
194
  transition: top var(--te-smooth) 0.15s;
195
195
  }
196
196
 
@@ -247,9 +247,9 @@
247
247
  &,
248
248
  &:after,
249
249
  &:before {
250
- height: var(--su-static2);
250
+ height: var(--su2);
251
251
  position: relative;
252
- width: var(--su-static16);
252
+ width: var(--su16);
253
253
  }
254
254
 
255
255
  &:after,
@@ -319,7 +319,7 @@
319
319
  }
320
320
 
321
321
  background-color: var(--_tb-notice-bg);
322
- border: var(--su-static1) solid var(--_tb-notice-bg); // notice border-color matches background-color
322
+ border: var(--su1) solid var(--_tb-notice-bg); // notice border-color matches background-color
323
323
  color: var(--_tb-notice-fc);
324
324
  text-decoration: var(--_tb-notice-td);
325
325
 
@@ -474,7 +474,7 @@
474
474
 
475
475
  align-items: center;
476
476
  background-color: var(--theme-topbar-background-color, var(--white));
477
- border-bottom: var(--theme-topbar-bottom-border, var(--su-static1) solid var(--black-225));
477
+ border-bottom: var(--theme-topbar-bottom-border, var(--su1) solid var(--black-225));
478
478
  border-top: var(--_tb-bt);
479
479
  display: flex;
480
480
  height: var(--_tb-h);
@@ -501,7 +501,7 @@
501
501
  #calc-topbar-lightness-increase();
502
502
 
503
503
  --theme-topbar-background-color: @topbar-actual-background;
504
- --theme-topbar-bottom-border: var(--su-static1) solid @topbar-actual-background;
504
+ --theme-topbar-bottom-border: var(--su1) solid @topbar-actual-background;
505
505
 
506
506
  // Search input
507
507
  --theme-topbar-search-color: lighten(@topbar-actual-background, 80% + @topbar-search-lightness-increase);
@@ -531,7 +531,7 @@
531
531
  // TODO extend forced light mode instead of overriding
532
532
 
533
533
  --theme-topbar-background-color: var(--_white-static);
534
- --theme-topbar-bottom-border: var(--su-static1) solid .set-black()[225];
534
+ --theme-topbar-bottom-border: var(--su1) solid .set-black()[225];
535
535
 
536
536
  // Search input
537
537
  --theme-topbar-search-color: .set-black()[500];
@@ -82,7 +82,7 @@
82
82
  display: flex;
83
83
  flex-direction: column;
84
84
  justify-content: center;
85
- min-height: var(--su-static128);
85
+ min-height: var(--su128);
86
86
  padding: var(--su8) var(--su16);
87
87
  position: relative;
88
88
  text-align: center;
@@ -114,7 +114,7 @@
114
114
 
115
115
  & &--preview-thumbnail {
116
116
  .highcontrast-mode({
117
- border: var(--su-static1) solid var(--black);
117
+ border: var(--su1) solid var(--black);
118
118
  });
119
119
 
120
120
  &:is(img) {
@@ -129,7 +129,7 @@
129
129
  background-color: var(--white);
130
130
  border-radius: var(--br-md);
131
131
  box-shadow: var(--bs-md);
132
- max-height: var(--su-static128);
132
+ max-height: var(--su128);
133
133
  max-width: 100%;
134
134
  overflow: hidden;
135
135
  text-overflow: ellipsis;
@@ -171,9 +171,9 @@
171
171
  }
172
172
 
173
173
  color: transparent;
174
- height: var(--su-static32);
174
+ height: var(--su32);
175
175
  flex-shrink: 0;
176
- width: var(--su-static32);
176
+ width: var(--su32);
177
177
  }
178
178
  }
179
179