@stackoverflow/stacks 3.0.0-beta.3 → 3.0.0-beta.30

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 (108) hide show
  1. package/dist/controllers.d.ts +0 -2
  2. package/dist/css/stacks.css +14245 -15086
  3. package/dist/css/stacks.min.css +1 -1
  4. package/dist/js/stacks.js +0 -364
  5. package/dist/js/stacks.min.js +1 -1
  6. package/lib/atomic/backgrounds.less +67 -0
  7. package/lib/atomic/border-radius.less +38 -0
  8. package/lib/atomic/borders.less +73 -0
  9. package/lib/atomic/box-shadow.less +29 -0
  10. package/lib/atomic/box-sizing.less +3 -0
  11. package/lib/atomic/current-color.less +2 -0
  12. package/lib/atomic/cursors.less +8 -0
  13. package/lib/atomic/display.less +15 -0
  14. package/lib/atomic/flex.less +6 -34
  15. package/lib/atomic/floats.less +20 -0
  16. package/lib/atomic/gap.less +2 -0
  17. package/lib/atomic/grid.less +2 -0
  18. package/lib/atomic/height.less +22 -0
  19. package/lib/atomic/interactivity.less +45 -0
  20. package/lib/atomic/lists.less +29 -0
  21. package/lib/atomic/margin.less +48 -0
  22. package/lib/atomic/object-fit.less +9 -0
  23. package/lib/atomic/opacity.less +54 -0
  24. package/lib/atomic/outline.less +11 -0
  25. package/lib/atomic/overflow.less +17 -0
  26. package/lib/atomic/padding.less +12 -0
  27. package/lib/atomic/positioning.less +41 -0
  28. package/lib/atomic/sizing.less +51 -0
  29. package/lib/atomic/transitions.less +20 -0
  30. package/lib/atomic/truncation.less +58 -0
  31. package/lib/atomic/typography.less +71 -137
  32. package/lib/atomic/vertical-alignment.less +9 -0
  33. package/lib/atomic/visibility.less +18 -0
  34. package/lib/atomic/width.less +27 -0
  35. package/lib/atomic/z-index.less +12 -0
  36. package/lib/base/body.less +2 -4
  37. package/lib/base/configuration-static.less +3 -3
  38. package/lib/base/internal.less +3 -5
  39. package/lib/base/reset-normalize.less +3 -3
  40. package/lib/components/activity-indicator/activity-indicator.less +4 -20
  41. package/lib/components/anchor/anchor.less +28 -39
  42. package/lib/components/avatar/avatar.less +20 -19
  43. package/lib/components/badge/badge.less +227 -167
  44. package/lib/components/banner/banner.less +12 -11
  45. package/lib/components/bling/bling.less +47 -10
  46. package/lib/components/button/button.less +300 -380
  47. package/lib/components/checkbox_radio/checkbox_radio.less +195 -113
  48. package/lib/components/code-block/code-block.fixtures.ts +2 -2
  49. package/lib/components/code-block/code-block.less +2 -3
  50. package/lib/components/description/description.less +17 -2
  51. package/lib/components/empty-state/empty-state.less +17 -6
  52. package/lib/components/form-group/form-group.less +38 -0
  53. package/lib/components/input-fill/input-fill.less +3 -3
  54. package/lib/components/input-icon/input-icon.less +3 -3
  55. package/lib/components/input-message/input-message.less +1 -0
  56. package/lib/components/input_textarea/input_textarea.less +71 -58
  57. package/lib/components/label/label.less +12 -56
  58. package/lib/components/link/link.less +44 -98
  59. package/lib/components/loader/loader.less +88 -0
  60. package/lib/components/menu/menu.less +89 -19
  61. package/lib/components/modal/modal.less +10 -10
  62. package/lib/components/navigation/navigation.less +77 -42
  63. package/lib/components/notice/notice.less +90 -75
  64. package/lib/components/pagination/pagination.less +50 -42
  65. package/lib/components/popover/popover.less +9 -11
  66. package/lib/components/post-summary/post-summary.less +225 -385
  67. package/lib/components/prose/prose.less +49 -35
  68. package/lib/components/select/select.less +46 -41
  69. package/lib/components/sidebar-widget/sidebar-widget.less +26 -196
  70. package/lib/components/table/table.less +48 -22
  71. package/lib/components/tag/tag.less +25 -6
  72. package/lib/components/toast/toast.less +4 -2
  73. package/lib/components/toggle-switch/toggle-switch.less +15 -19
  74. package/lib/components/user-card/user-card.less +129 -92
  75. package/lib/components/vote/vote.less +134 -0
  76. package/lib/controllers.ts +0 -2
  77. package/lib/exports/color-sets.less +108 -81
  78. package/lib/exports/constants-helpers.less +9 -13
  79. package/lib/exports/constants-type.less +18 -36
  80. package/lib/exports/mixins.less +92 -272
  81. package/lib/index.ts +0 -4
  82. package/lib/stacks-static.less +44 -30
  83. package/lib/test/visual-test-utils.ts +42 -10
  84. package/lib/tsconfig.json +1 -1
  85. package/package.json +1 -1
  86. package/dist/components/expandable/expandable.d.ts +0 -17
  87. package/dist/components/uploader/uploader.d.ts +0 -48
  88. package/lib/atomic/border.less +0 -121
  89. package/lib/atomic/misc.less +0 -374
  90. package/lib/atomic/spacing.less +0 -98
  91. package/lib/atomic/width-height.less +0 -194
  92. package/lib/components/block-link/block-link.less +0 -82
  93. package/lib/components/breadcrumbs/breadcrumbs.less +0 -41
  94. package/lib/components/button-group/button-group.less +0 -81
  95. package/lib/components/card/card.less +0 -37
  96. package/lib/components/check-control/check-control.less +0 -17
  97. package/lib/components/check-group/check-group.less +0 -19
  98. package/lib/components/expandable/expandable.less +0 -119
  99. package/lib/components/expandable/expandable.ts +0 -238
  100. package/lib/components/link-preview/link-preview.less +0 -148
  101. package/lib/components/page-title/page-title.less +0 -51
  102. package/lib/components/progress-bar/progress-bar.less +0 -292
  103. package/lib/components/skeleton/skeleton.less +0 -73
  104. package/lib/components/spinner/spinner.less +0 -103
  105. package/lib/components/topbar/topbar.less +0 -553
  106. package/lib/components/uploader/uploader.less +0 -205
  107. package/lib/components/uploader/uploader.ts +0 -207
  108. package/lib/exports/spacing-mixins.less +0 -67
@@ -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
@@ -202,10 +232,6 @@
202
232
  }
203
233
 
204
234
  td {
205
- .s-checkbox {
206
- display: block;
207
- }
208
-
209
235
  &.s-table--bulk {
210
236
  --_ta-td-w: calc(var(--su32) - var(--su2)); // 30px
211
237
  }
@@ -218,14 +244,14 @@
218
244
  &.s-table--progress-bar {
219
245
  --_ta-td-blw: 0;
220
246
  --_ta-td-pl: 0;
221
- --_ta-td-w: calc(var(--su-static12) * 10); // 120px
247
+ --_ta-td-w: calc(var(--su12) * 10); // 120px
222
248
  }
223
249
 
224
- border: var(--su-static1) solid var(--_ta-td-bc);
225
- border-bottom-width: var(--_ta-td-bbw, var(--su-static1));
226
- border-left-width: var(--_ta-td-blw, var(--su-static1));
227
- border-right-width: var(--_ta-td-brw, var(--su-static1));
228
- 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));
229
255
  font-size: var(--_ta-td-fs);
230
256
  font-weight: var(--_ta-td-fw);
231
257
  padding: var(--_ta-td-p);
@@ -249,16 +275,12 @@
249
275
  }
250
276
 
251
277
  th {
252
- .s-checkbox {
253
- display: block;
254
- }
255
-
256
278
  &.s-table--bulk {
257
279
  --_ta-th-w: calc(var(--su32) - var(--su2)); // 30px
258
280
  }
259
281
 
260
- border: var(--su-static1) solid var(--_ta-th-bc);
261
- 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);
262
284
  font-size: var(--_ta-th-fs);
263
285
  padding: var(--_ta-th-p);
264
286
  padding-top: var(--_ta-th-pt, var(--_ta-th-p));
@@ -282,8 +304,8 @@
282
304
 
283
305
  tr {
284
306
  &:last-of-type {
285
- --_ta-td-bbw: var(--su-static1);
286
- --_ta-th-bbw: var(--su-static1);
307
+ --_ta-td-bbw: var(--su1);
308
+ --_ta-th-bbw: var(--su1);
287
309
  }
288
310
 
289
311
  &.is-disabled {
@@ -305,5 +327,9 @@
305
327
  width: 100%;
306
328
  }
307
329
 
330
+ // TABLE LAYOUT ATOMIC CLASSES
331
+ .tl-fixed { table-layout: fixed !important; }
332
+ .tl-auto { table-layout: auto !important; }
333
+
308
334
  // [1] This makes the border transparent, so we need to use whitespace
309
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
 
@@ -105,6 +110,15 @@
105
110
  }
106
111
 
107
112
  // CHILD ELEMENTS
113
+ a {
114
+ &:focus-visible {
115
+ .focus-styles();
116
+ }
117
+
118
+ color: var(--_ta-fc) !important;
119
+ margin: calc(var(--_ta-pt) * -1) calc(var(--_ta-pr) * -1) calc(var(--_ta-pb) * -1) calc(var(--_ta-pl) * -1);
120
+ padding: var(--_ta-pt) var(--_ta-pr) var(--_ta-pb) var(--_ta-pl);
121
+ }
108
122
  // Dismiss
109
123
  &:has(> &--dismiss) {
110
124
  --_ta-pr: var(--su2);
@@ -141,12 +155,17 @@
141
155
  height: 100%;
142
156
  }
143
157
 
144
- max-width: calc(var(--su-static16) + var(--su-static2));
158
+ max-width: calc(var(--su16) + var(--su2));
145
159
  margin: calc(var(--_ta-pt) * -1) 0 calc(var(--_ta-pb) * -1) 0;
146
160
  }
147
161
 
148
162
  // INTERACTION
149
- a& {
163
+ &:has([href]),
164
+ a {
165
+ text-decoration: none;
166
+ }
167
+
168
+ a:not([class]) {
150
169
  &:hover,
151
170
  &:active {
152
171
  background-color: var(--_ta-bg-hover);
@@ -160,11 +179,11 @@
160
179
  }
161
180
 
162
181
  background-color: var(--_ta-bg);
163
- border: var(--su-static1) solid var(--_ta-bc);
182
+ border: var(--su1) solid var(--_ta-bc);
164
183
  color: var(--_ta-fc);
165
184
  font-size: var(--_ta-fs);
166
185
  padding: var(--_ta-pt) var(--_ta-pr) var(--_ta-pb) var(--_ta-pl);
167
-
186
+
168
187
  align-items: center;
169
188
  display: inline-flex;
170
189
  gap: var(--su4);
@@ -13,11 +13,13 @@
13
13
 
14
14
  .s-notice {
15
15
  box-shadow: var(--bs-sm);
16
- max-width: 44rem;
16
+ max-width: 38.5rem;
17
17
  padding-bottom: var(--su8);
18
18
  padding-top: var(--su8);
19
19
  pointer-events: all;
20
- width: 100%;
20
+ display: flex;
21
+ align-items: center;
22
+ min-width: var(--su448);
21
23
  }
22
24
 
23
25
  display: flex;
@@ -3,7 +3,7 @@
3
3
  @ts-bg-image-fill-dark: .set-white-dark()[default];
4
4
  @ts-bg-image-fill-esc: escape("@{ts-bg-image-fill}"); // color escaped for URL usage
5
5
  @ts-bg-image-fill-dark-esc: escape("@{ts-bg-image-fill-dark}"); // color escaped for URL usage
6
- --_ts-bg: var(--black-350);
6
+ --_ts-bg: var(--black-300);
7
7
  --_ts-bg-image: url("data:image/svg+xml;,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='@{ts-bg-image-fill-esc}'/%3e%3c/svg%3e");
8
8
  --_ts-bg-ps: left center;
9
9
  --_ts-multiple-bg: unset;
@@ -22,21 +22,15 @@
22
22
  }
23
23
  }
24
24
 
25
- &&__multiple { // TODO split single and multiple toggle into two seperate components
25
+ &&__multiple {
26
26
  input[type="radio"] {
27
- &:checked {
28
- + label {
29
- &.s-toggle-switch--label-off {
30
- --_ts-multiple-bg: var(--black-400);
31
- --_ts-multiple-fc: var(--white);
32
- }
33
-
34
- &:not(.s-toggle-switch--label-off) {
35
- --_ts-multiple-bg: var(--green-400);
36
- --_ts-multiple-fc: var(--white);
37
- }
38
- }
27
+ &:checked + label {
28
+ --_ts-multiple-bg: var(--black-050);
29
+ --_ts-multiple-fc: var(--black);
30
+ }
39
31
 
32
+ &:not(:checked) + label {
33
+ --_ts-multiple-fc: var(--black-400);
40
34
  }
41
35
 
42
36
  &:focus-visible + label {
@@ -53,13 +47,13 @@
53
47
  background-color: var(--_ts-multiple-bg);
54
48
  color: var(--_ts-multiple-fc);
55
49
 
56
- border-radius: 1000px;
50
+ border-radius: var(--br-pill);
57
51
  cursor: pointer;
58
52
  font-size: var(--fs-body1);
59
53
  font-weight: 400;
60
54
  line-height: 1;
61
55
  margin: 0;
62
- padding: 0.5em 0.7em;
56
+ padding: calc(var(--su4) + var(--su1)) calc(var(--su8) + var(--su2)); //5px 10px
63
57
  text-align: center;
64
58
  white-space: nowrap;
65
59
  width: 100%;
@@ -70,9 +64,11 @@
70
64
 
71
65
  align-items: stretch;
72
66
  display: flex;
67
+ border: var(--su2) solid var(--black-150);
68
+ border-radius: var(--br-pill);
69
+ background-color: var(--black-150);
73
70
  }
74
71
 
75
- input[type="checkbox"], // TODO DEPRECATED: drop support for nested input[type="checkbox"]
76
72
  input[type="checkbox"]& {
77
73
  &:checked {
78
74
  --_ts-bg: var(--green-400);
@@ -97,10 +93,10 @@
97
93
  border-radius: 1000px;
98
94
  cursor: pointer;
99
95
  flex-shrink: 0;
100
- height: var(--su-static24);
96
+ height: var(--su24);
101
97
  margin: 0; // guard against production adding 5px of margin to these
102
98
  transition: background-position 0.2s ease;
103
99
  vertical-align: top;
104
- width: calc(var(--su-static48) - var(--su-static4));
100
+ width: calc(var(--su48) - var(--su4));
105
101
  }
106
102
  }
@@ -1,129 +1,166 @@
1
1
  .s-user-card {
2
2
  --_uc-ai: center;
3
- --_uc-bg: unset;
4
- --_uc-bar: unset;
5
- --_uc-d: grid;
6
- --_uc-fc: unset;
7
- --_uc-g: var(--su4) var(--su8);
8
- --_uc-p: var(--su8);
9
- --_uc-info-ai: unset;
10
- --_uc-info-fd: column;
11
- --_uc-link-fs: var(--fs-caption);
12
- --_uc-link-ws: unset;
13
- --_uc-rep-fc: unset;
14
- --_uc-time-fc: var(--black-400);
15
- --_uc-time-ws: unset;
16
- --_uc-type-fc: var(--theme-primary-400);
17
-
18
- // MODIFIERS
19
- &&__deleted {
20
- --_uc-fc: var(--black-400);
21
- }
22
-
23
- &&__highlighted {
24
- --_uc-bg: var(--theme-secondary-100);
25
- --_uc-bar: var(--br-md);
26
- --_uc-time-fc: var(--black-500);
27
- --_uc-type-fc: var(--black-500);
28
- }
3
+ --_uc-fd: unset;
4
+ --_uc-column-gap: var(--su6);
5
+ --_uc-group-gap: var(--su4);
6
+ --_uc-row-gap: var(--su6);
7
+ --_uc-username-fs: unset;
8
+ --_uc-username-p: unset;
9
+ --_uc-username-bl: unset;
10
+ --_uc-username-bg: unset;
11
+ --_uc-username-fc: var(--black-600);
12
+ --_uc-username-d: unset;
13
+ --_uc-username-ai: unset;
14
+
15
+ // CONTEXTUAL STYLES
16
+ .highcontrast-mode({
17
+ a[href] {
18
+ text-decoration: underline;
19
+ }
20
+ });
29
21
 
30
22
  // VARIANTS
31
- &&__minimal,
32
- &&__small {
33
- --_uc-d: flex;
34
- --_uc-g: var(--su4);
35
- --_uc-p: 0;
36
- --_uc-info-ai: center;
37
- --_uc-info-fd: row;
38
- }
23
+ // SIZES
24
+ &&__lg {
25
+ .s-avatar {
26
+ margin-right: var(--su6);
27
+ }
28
+
29
+ .s-user-card--username {
30
+ margin-right: var(--su2);
31
+ }
32
+
33
+ .s-user-card--group:has(> .s-user-card--rep) {
34
+ margin-top: var(--sun2);
35
+ }
39
36
 
40
- &&__full {
41
37
  --_uc-ai: flex-start;
42
- --_uc-link-fs: var(--fs-body2);
38
+ --_uc-fd: column;
39
+ --_uc-username-fs: var(--fs-body3);
43
40
  }
44
41
 
45
- &&__minimal {
46
- --_uc-link-ws: nowrap;
47
- --_uc-rep-fc: var(--black-500);
48
- --_uc-time-ws: nowrap;
42
+ &&__deleted {
43
+ --_uc-username-fc: var(--black-400);
49
44
  }
50
45
 
51
46
  // CHILD ELEMENTS
52
- & &--location,
53
- & &--role {
54
- font-size: var(--fs-caption);
47
+ a {
48
+ text-decoration: none;
49
+ }
50
+
51
+ & &--bio {
52
+ .truncation(3);
55
53
  color: var(--black-400);
56
54
  }
57
55
 
58
- & &--awards {
59
- li {
60
- font-size: var(--fs-caption);
61
- }
56
+ & &--recognition {
57
+ --_uc-row-gap: var(--su4);
62
58
 
63
- .list-reset;
64
- align-items: center;
65
- display: flex;
66
- gap: var(--su6);
59
+ &,
60
+ & a {
61
+ color: var(--theme-primary);
62
+ }
67
63
  }
68
64
 
69
- & &--info {
70
- align-items: var(--_uc-info-ai);
71
- flex-direction: var(--_uc-info-fd);
65
+ & &--recognition-additional-bling {
66
+ &,
67
+ & a {
68
+ color: var(--theme-primary);
69
+ }
70
+ }
72
71
 
73
- display: flex;
74
- gap: var(--su4);
72
+ & &--rep {
73
+ color: var(--black-600);
74
+ font-weight: 600;
75
75
  }
76
76
 
77
- & &--link {
78
- font-size: var(--_uc-link-fs);
79
- white-space: var(--_uc-link-ws);
77
+ & &--time {
78
+ color: var(--black-400);
79
+ }
80
80
 
81
- align-items: center;
82
- flex-wrap: wrap;
83
- min-width: 0; // Allow things to wrap
81
+ & &--username {
82
+ align-items: var(--_uc-username-ai);
83
+ background-color: var(--_uc-username-bg);
84
+ border-left: var(--_uc-username-bl);
85
+ color: var(--_uc-username-fc);
86
+ display: var(--_uc-username-d);
87
+ font-size: var(--_uc-username-fs);
88
+ font-weight: 500;
89
+ min-width: 0;
84
90
  overflow-wrap: break-word;
91
+ padding: var(--_uc-username-p);
92
+ word-break: break-all;
85
93
  }
86
94
 
87
- & &--rep {
88
- color: var(--_uc-rep-fc);
89
-
90
- font-weight: 700;
95
+ &--username__op {
96
+ --_uc-username-p: var(--su3) var(--su4) var(--su3) var(--su4);
97
+ --_uc-username-bg: var(--blue-100);
98
+ --_uc-username-bl: var(--su4) solid var(--blue-300);
99
+ --_uc-username-d: flex;
100
+ --_uc-username-ai: center;
101
+ .s-user-card__sm & {
102
+ --_uc-username-p: 0 var(--su4);
103
+ }
91
104
  }
92
105
 
93
- & &--tags {
94
- align-items: center;
95
- min-width: 0; // Allow things to wrap
96
- flex-wrap: wrap;
106
+ // Layout specific
107
+ & &--column {
108
+ align-items: flex-start;
109
+ display: flex;
110
+ flex-direction: column;
111
+ gap: var(--_uc-column-gap);
97
112
  }
98
113
 
99
- & &--time {
100
- color: var(--_uc-time-fc);
101
- white-space: var(--_uc-time-ws);
114
+ & &--group {
115
+ &:has(> .s-avatar) {
116
+ --_uc-group-gap: var(--su6);
117
+ }
102
118
 
103
- font-size: var(--fs-caption);
104
- grid-column: ~"1 / 3";
105
- grid-row: ~"1 / 2";
119
+ &:has(+ .s-user-card--time) {
120
+ margin-right: var(--su2);
121
+ }
122
+
123
+ align-items: center;
124
+ display: flex;
125
+ gap: var(--_uc-group-gap);
106
126
  }
107
127
 
108
- & &--type {
109
- a:not(.s-link) {
110
- color: inherit !important;
128
+ & ul&--group {
129
+ &.s-user-card--group__split {
130
+ li:not(:last-child) {
131
+ &:after {
132
+ background-color: var(--black-350);
133
+ content: "";
134
+ display: block;
135
+ margin-left: var(--su4);
136
+ width: var(--su4);
137
+ height: var(--su4);
138
+ }
139
+ }
140
+ }
141
+
142
+ li {
143
+ align-items: center;
144
+ display: inline-flex;
145
+ gap: var(--su2);
111
146
  }
112
147
 
113
- color: var(--_uc-type-fc);
148
+ .list-reset;
149
+ }
114
150
 
115
- font-size: var(--fs-caption);
116
- grid-column: ~"1 / 3";
151
+ & &--row {
152
+ align-items: center;
153
+ display: flex;
154
+ flex-direction: row;
155
+ flex-wrap: wrap;
156
+ gap: var(--_uc-row-gap);
117
157
  }
118
158
 
119
159
  align-items: var(--_uc-ai);
120
- background-color: var(--_uc-bg);
121
- border-radius: var(--_uc-bar);
122
- color: var(--_uc-fc);
123
- display: var(--_uc-d);
124
- gap: var(--_uc-g);
125
-
126
- grid-template-columns: auto 1fr;
127
- line-height: 1;
128
- padding: var(--_uc-p);
129
- }
160
+ color: var(--black-500);
161
+ display: flex;
162
+ flex-direction: var(--_uc-fd);
163
+ flex-wrap: wrap;
164
+ font-size: var(--fs-caption);
165
+ gap: var(--su6);
166
+ }