@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,458 +1,296 @@
1
1
  .s-post-summary {
2
- // --_ps-state-* are custom properties to broadly override colors for a given post summary state
3
- --_ps-bb: var(--su1) solid var(--bc-light);
4
- --_ps-bg: unset;
5
- --_ps-o: unset;
6
- // Child components
7
- --_ps-content-excerpt-fc: var(--_ps-state-fc, var(--fc-medium));
8
- --_ps-content-title-a-fc: var(--_ps-state-fc, var(--theme-post-title-color, var(--theme-link-color, var(--theme-secondary))));
9
- --_ps-content-title-a-fc-hover: var(--_ps-state-fc, var(--theme-post-title-color-hover, var(--theme-link-color-hover, var(--theme-secondary-500))));
10
- --_ps-content-title-a-fc-visited: var(--_ps-state-fc, var(--theme-post-title-color-visited, var(--theme-link-color-visited, var(--purple-500))));
11
- --_ps-content-title-a-fc-hover-visited: var(--_ps-state-fc, var(--theme-post-title-color-hover, var(--theme-link-color-hover, var(--purple-600))));
12
- --_ps-stats-ai: flex-end;
13
- --_ps-stats-fc: var(--_ps-state-fc, var(--fc-light));
14
- --_ps-stats-fd: column;
15
- --_ps-stats-w: calc(var(--su96) + var(--su12));
16
- // Stats item modifiers
17
- --_ps-has-answers-bc: var(--green-400);
18
- --_ps-has-answers-bg: unset;
19
- --_ps-has-answers-fc: var(--green-400);
20
- --_ps-has-accepted-answers-bc: var(--green-400);
21
- --_ps-has-accepted-answers-bg: var(--green-400);
22
- --_ps-has-accepted-answers-fc: var(--white);
23
- --_ps-stats-item-emphasized-fc: var(--_ps-state-fc, var(--fc-dark));
24
-
25
- // CONTEXTUAL STYLES
26
- #stacks-internals #screen-md({
27
- --_ps-stats-ai: center;
28
- --_ps-stats-fd: row;
29
- --_ps-stats-w: auto;
2
+ @psx-container-sm: 28rem;
3
+ --_ps-answer-icon-fc: unset;
4
+ --_ps-content-type-bc: var(--black-200);
5
+ --_ps-content-type-bg: var(--black-050);
6
+ --_ps-content-type-fc: var(--black-600);
7
+ --_ps-stats-answers-bg: unset;
8
+ --_ps-stats-answers-fc: var(--black-400);
9
+ --_ps-stats-answers-fw: unset;
10
+ --_ps-stats-answers-icon-fc: unset;
11
+ --_ps-title-link-fc: var(--theme-secondary-600);
12
+
13
+ // Conditional styles
14
+ .highcontrast-mode({
15
+ a[href] {
16
+ text-decoration: underline !important;
17
+ }
30
18
 
31
- flex-direction: column;
19
+ &__deleted * {
20
+ --_ps-ignored-fc: var(--black-500);
21
+ }
32
22
  });
33
23
 
34
- // MODIFIERS
35
- &&__minimal,
36
- & &--answer {
37
- --_ps-stats-ai: center;
38
- --_ps-stats-fd: row;
39
- --_ps-stats-w: auto;
24
+ // Note: we cannot use CSS custom properties for container query values
25
+ @container post-summary (width <= @psx-container-sm) {
26
+ .s-post-summary--sm-hide {
27
+ display: none !important;
28
+ }
29
+ .s-post-summary--sm-show {
30
+ display: flex !important;
31
+ }
40
32
  }
41
33
 
42
- &&__minimal {
43
- .s-post-summary--content {
44
- width: 100%;
34
+ @container post-summary (width > @psx-container-sm) {
35
+ .s-post-summary--sm-hide {
36
+ display: flex !important;
37
+ }
38
+ .s-post-summary--sm-show {
39
+ display: none !important;
45
40
  }
41
+ }
46
42
 
47
- flex-direction: column;
43
+ // MODIFIERS
44
+ &&__answered {
45
+ --_ps-stats-answers-bg: var(--green-400);
46
+ --_ps-stats-answers-fc: var(--white);
47
+ --_ps-stats-answers-fw: 600;
48
+ --_ps-stats-answers-icon-fc: var(--green-400);
48
49
  }
49
50
 
50
- // VARIANTS
51
51
  &&__deleted,
52
- &&__ignored {
53
- --_ps-o: 0.75;
54
- --_ps-has-answers-bc: var(--black-350);
55
- --_ps-has-answers-bg: transparent;
56
- --_ps-has-answers-fc: var(--_ps-state-fc);
57
- --_ps-has-accepted-answers-bc: transparent;
58
- --_ps-has-accepted-answers-bg: var(--black-150);
59
- --_ps-has-accepted-answers-fc: var(--_ps-state-fc);
60
- --_ps-meta-tags-tag-bg: var(--black-150);
61
- --_ps-meta-tags-tag-fc: var(--_ps-state-fc);
62
- --_ps-state-fc: var(--black-400);
63
-
64
- .s-post-summary--meta-tags {
65
- a, // TODO: remove rule for `a` once Core replaces `.post-tag` with `.s-tag`
66
- .post-tag,
67
- .s-tag {
68
- &,
69
- &:active,
70
- &:hover,
71
- &:focus,
72
- .focus-bordered {
73
- .highcontrast-mode({
74
- border-color: currentColor;
75
- });
76
-
77
- background-color: var(--_ps-meta-tags-tag-bg);
78
- color: var(--black-500);
79
- border-color: var(--black-300);
80
- }
81
- }
52
+ &:has(.s-tag.s-tag__ignored) {
53
+ --_ps-ignored-bg: var(--black-100);
54
+ --_ps-ignored-fc: var(--black-400);
55
+
56
+ &.s-post-summary__answered {
57
+ --_ps-stats-answers-bg: var(--_ps-ignored-bg);
58
+ --_ps-stats-answers-fc: var(--_ps-ignored-fc);
59
+ --_ps-stats-answers-icon-fc: var(--black-350);
82
60
  }
83
61
 
84
- .s-user-card {
85
- a,
86
- .s-user-card--link,
87
- .s-user-card--rep,
88
- .s-user-card--time {
89
- color: var(--_ps-state-fc);
90
- }
91
-
92
- .s-badge {
93
- filter: grayscale(100%);
94
- }
62
+ * {
63
+ color: var(--_ps-ignored-fc) !important;
95
64
  }
96
- }
97
- &&__deleted,
98
- &&__watched {
99
- background-color: var(--_ps-bg);
100
- }
101
65
 
102
- &&__deleted {
103
- --_ps-bg: var(--red-100);
104
- --_ps-has-accepted-answers-bg: var(--black-200);
105
- --_ps-has-accepted-answers-fc: var(--black-500);
106
- --_ps-meta-tags-tag-bg: var(--black-200);
107
-
108
- .is-deleted,
109
- .s-badge__danger.s-badge__filled {
110
- .dark-mode({
111
- background-color: var(--red-600);
112
- color: var(--white);
113
- });
66
+ .s-avatar {
67
+ opacity: 0.5;
68
+ }
114
69
 
115
- background-color: var(--red-500);
70
+ .s-user-card--rep .s-bling:before {
71
+ background-color: var(--_ps-ignored-fc) !important;
116
72
  }
117
- }
118
73
 
119
- &&__watched {
120
- &:not(.s-post-summary__deleted):not(.s-post-summary__ignored) {
121
- --_ps-bg: var(--yellow-100);
122
- --_ps-stats-fc: var(--black-400);
123
- --_ps-content-title-a-fc: var(--theme-post-title-color, var(--theme-link-color, var(--theme-secondary)));
124
- --_ps-content-title-a-fc-hover: var(--theme-post-title-color-hover, var(--theme-link-color-hover, var(--theme-secondary-500)));
125
- --_ps-content-title-a-fc-visited: var(--theme-post-title-color-visited, var(--theme-link-color-visited, var(--purple-500)));
126
- --_ps-content-title-a-fc-hover-visited: var(--theme-post-title-color-hover, var(--theme-link-color-hover, var(--purple-600)));
127
-
128
- .s-user-card {
129
- a {
130
- &:active,
131
- &:hover {
132
- color: var(--_ps-content-title-a-fc-hover);
133
- }
134
-
135
- &:visited {
136
- &:hover {
137
- color: var(--_ps-content-title-a-fc-hover-visited);
138
- }
139
-
140
- color: var(--_ps-content-title-a-fc-visited);
141
- }
142
-
143
- color: var(--_ps-content-title-a-fc);
144
- }
145
-
146
- .s-user-card--rep,
147
- .s-user-card--time {
148
- color: var(--black-500);
149
- }
150
- }
74
+ .s-badge,
75
+ .s-tag,
76
+ .s-post-summary--stats-bounty {
77
+ background-color: var(--_ps-ignored-bg) !important;
78
+ border-color: var(--_ps-ignored-bg) !important;
79
+ color: var(--_ps-ignored-fc) !important;
151
80
  }
152
81
  }
153
82
 
154
- &:last-child {
155
- --_ps-bb: none;
83
+ &&__deleted {
84
+ background-color: var(--red-100);
85
+ border: var(--su8) solid var(--red-100);
156
86
  }
157
87
 
158
- // Child Elements
159
- & & {
160
- &--answer {
161
- & + & {
162
- margin-top: var(--su16);
163
- }
88
+ // Child components
89
+ .s-tag.s-tag__watched {
90
+ --_ta-bc: var(--yellow-200);
91
+ --_ta-bg: var(--yellow-200);
92
+ --_ta-fc: var(--yellow-600);
93
+ --_ta-bc-hover: var(--yellow-200);
94
+ --_ta-bg-hover: var(--yellow-200);
95
+ }
164
96
 
165
- &:before {
166
- .highcontrast-mode({
167
- background: var(--black-500);
168
- });
169
-
170
- background: var(--black-250);
171
- border-radius: var(--su8);
172
- bottom: 0;
173
- content: "";
174
- display: block;
175
- left: 0;
176
- position: absolute;
177
- top: 0;
178
- width: var(--su4);
179
- }
97
+ // TODO SHINE complete answers styling
98
+ & &--answers {
99
+ display: flex;
100
+ flex-direction: column;
101
+ gap: var(--su16);
102
+ padding-top: calc(var(--su8) + var(--su2)); // 10px
103
+ }
180
104
 
181
- margin: var(--su16) 1em 0 1em;
182
- padding: 0.5em 0 0.5em calc(1em + var(--su4));
183
- position: relative;
105
+ & &--answer {
106
+ &__accepted {
107
+ --_ps-answer-icon-fc: var(--green-400);
184
108
  }
185
109
 
186
- &--answer-excerpt {
187
- .v-truncate4;
188
- color: var(--black-500);
189
- margin-bottom: var(--su8);
110
+ .s-post-summary--stats-answers--icon {
111
+ color: var(--_ps-answer-icon-fc);
190
112
  }
191
113
 
192
- &--content {
193
- > *:not(.s-post-summary--content-menu-button):not(.s-post-summary--meta):not(.s-popover) {
194
- opacity: var(--_ps-o);
195
- }
196
-
197
- flex-grow: 1;
198
- max-width: 100%;
199
- }
114
+ border-left: var(--su4) solid var(--black-200);
115
+ display: flex;
116
+ flex-direction: column;
117
+ gap: var(--su6);
118
+ padding-left: var(--su8);
119
+ }
200
120
 
201
- &--content-excerpt {
202
- &.s-post-summary--content-excerpt {
203
- &__sm {
204
- .v-truncate1;
205
- }
121
+ & &--content {
122
+ display: flex;
123
+ flex-direction: column;
124
+ gap: var(--su4);
125
+ width: 100%;
126
+ }
206
127
 
207
- &__md {
208
- .v-truncate3;
209
- }
128
+ & &--content-meta {
129
+ align-items: center;
130
+ color: var(--black-400);
131
+ display: flex;
132
+ flex-wrap: wrap;
133
+ font-size: var(--fs-caption);
134
+ gap: var(--su6);
135
+ margin-bottom: var(--su4);
136
+ }
210
137
 
211
- &__lg {
212
- .v-truncate4;
213
- }
214
- }
138
+ & &--content-type {
139
+ &:focus-visible {
140
+ .focus-styles();
141
+ }
215
142
 
216
- .break-word;
217
- .v-truncate2;
218
- color: var( --_ps-content-excerpt-fc);
219
- font-family: var(--theme-post-body-font-family, var(--theme-body-font-family));
220
- margin-top: var(--sun2);
221
- margin-bottom: var(--su8);
143
+ &:hover {
144
+ --_ps-content-type-bc: var(--black-150);
145
+ --_ps-content-type-bg: var(--black-100);
146
+ --_ps-content-type-fc: var(--black-600);
222
147
  }
223
148
 
224
- &--content-menu-button {
225
- .svg-icon {
226
- margin: 0 !important;
227
- }
149
+ border: var(--su1) solid var(--_ps-content-type-bc);
150
+ background-color: var(--_ps-content-type-bg);
151
+ color: var(--_ps-content-type-fc);
228
152
 
229
- &,
230
- &.s-btn { // To override .s-btn class attributes
231
- padding: var(--su8);
232
- position: absolute;
233
- }
153
+ display: flex;
154
+ align-items: center;
155
+ gap: var(--su4);
156
+ padding: 0 var(--su4);
157
+ font-size: var(--fs-caption);
158
+ }
234
159
 
235
- right: var(--su8);
236
- top: var(--su8);
237
- }
160
+ & &--excerpt {
161
+ line-height: 1.25rem; // TODO use a standard line-height variable (currently 20px)
162
+ margin-bottom: 0;
163
+ }
238
164
 
239
- &--content-title {
240
- a {
241
- &:active,
242
- &:hover {
243
- color: var(--_ps-content-title-a-fc-hover);
244
- }
245
- &:visited {
246
- &:hover {
247
- color: var(--_ps-content-title-a-fc-hover-visited);
248
- }
249
-
250
- color: var(--_ps-content-title-a-fc-visited);
251
- }
252
-
253
- .break-word;
254
- color: var(--_ps-content-title-a-fc);
255
- font-family: var(--theme-post-title-font-family, var(--theme-body-font-family));
256
- }
165
+ & &--stats {
166
+ &.s-post-summary--sm-hide {
167
+ .s-post-summary--stats-answers {
168
+ background-color: var(--_ps-stats-answers-bg);
169
+ color: var(--_ps-stats-answers-fc);
170
+ font-weight: var(--_ps-stats-answers-fw);
257
171
 
258
- .iconShield {
259
- color: var(--fc-light);
172
+ align-items: center;
173
+ display: flex;
174
+ gap: var(--su4);
175
+ justify-content: center;
176
+ padding: var(--su4);
260
177
  }
261
178
 
262
- .svg-icon {
263
- position: relative;
264
- top: var(--sun1);
265
- vertical-align: text-bottom; // Optical alignment
179
+ .s-post-summary--stats-bounty {
180
+ align-items: center;
181
+ background-color: var(--blue-400);
182
+ color: var(--white);
183
+ display: flex;
184
+ gap: var(--su2);
185
+ font-weight: 600;
186
+ justify-content: center;
187
+ padding: var(--su4);
266
188
  }
267
189
 
268
- .break-word;
269
- display: block;
270
- font-size: var(--fs-body3);
271
- font-weight: normal;
272
- line-height: var(--lh-md);
273
- margin-bottom: 0.3365rem;
274
- margin-top: -0.125rem; // Optical alignment to compensate for title's containing block
275
- padding-right: var(--su24);
276
- }
277
-
278
- &--content-type {
279
- .svg-icon {
280
- color: var(--fc-light);
281
- margin-left: var(--sun2);
190
+ .s-post-summary--stats-votes {
191
+ align-items: center;
192
+ aspect-ratio: 1/1;
193
+ border: var(--su1) solid var(--black-200);
194
+ display: flex;
195
+ justify-content: center;
196
+ font-size: var(--fs-body2);
197
+ font-weight: 600;
198
+ margin-bottom: var(--su2);
199
+ padding: var(--su4);
200
+ width: calc(var(--su48) + var(--su8)); // 3.5rem
282
201
  }
283
202
 
284
- color: var(--fc-medium);
285
- margin-bottom: var(--su4);
203
+ flex-direction: column;
286
204
  }
287
205
 
288
- &--meta {
289
- > *:not(.s-post-summary--meta-tags):not(.s-user-card) > * {
290
- opacity: var(--_ps-o);
291
- }
292
-
293
- .s-user-card {
294
- > *:not(.magic-popup) {
295
- opacity: var(--_ps-o);
296
- }
297
-
298
- flex-wrap: wrap;
299
- justify-content: flex-end;
300
- margin-left: auto;
206
+ &.s-post-summary--sm-show {
207
+ .s-post-summary--stats-answers--icon {
208
+ color: var(--_ps-stats-answers-icon-fc);
301
209
  }
302
210
 
303
211
  align-items: center;
304
- column-gap: var(--su6);
305
- display: flex;
306
- flex-wrap: wrap;
307
- justify-content: space-between;
308
- row-gap: var(--su8);
212
+ justify-content: center;
213
+ padding: var(--su4);
309
214
  }
310
215
 
311
- &--meta-tags {
312
- > ul > li > a,
313
- > a,
314
- .post-tag,
315
- .s-tag {
316
- opacity: var(--_ps-o);
317
- }
318
-
216
+ .s-post-summary--stats-bounty {
217
+ align-items: center;
218
+ justify-content: center;
219
+ background-color: var(--blue-400);
220
+ color: var(--white);
319
221
  display: flex;
320
- flex-wrap: wrap;
321
- gap: var(--su4);
222
+ gap: var(--su1);
223
+ padding: 0 calc(var(--su4) - var(--su1));
322
224
  }
323
225
 
324
- &--stats {
325
- > *:not(.s-badge__danger) {
326
- opacity: var(--_ps-o);
327
- }
328
-
329
- align-items: var(--_ps-stats-ai);
330
- color: var(--_ps-stats-fc);
331
- flex-direction: var(--_ps-stats-fd);
332
- width: var(--_ps-stats-w);
226
+ display: flex;
227
+ gap: var(--su6);
228
+ font-size: var(--fs-caption);
229
+ }
333
230
 
334
- display: flex;
335
- flex-shrink: 0;
336
- flex-wrap: wrap;
337
- font-size: var(--fs-body1);
338
- gap: var(--su6);
339
- margin-bottom: var(--su4);
340
- margin-right: var(--su16);
231
+ & &--stats-item {
232
+ &:before {
233
+ aspect-ratio: 1/1;
234
+ background-color: var(--black-300);
235
+ content: "";
236
+ display: block;
237
+ height: var(--su4);
341
238
  }
342
239
 
343
- &--stats-item {
344
- &:not(.s-badge) {
345
- &.is-deleted {
346
- color: var(--white);
347
- }
348
-
349
- align-items: center;
350
- border: var(--su1) solid transparent;
351
- display: inline-flex;
352
- gap: 0.3em;
353
- justify-content: center;
354
- white-space: nowrap;
355
- }
356
-
357
- &.s-badge {
358
- font-size: var(--fs-body1);
359
- line-height: var(--lh-md);
360
- padding: var(--su2) var(--su4);
361
- }
362
-
363
- &.has-answers,
364
- &.has-bounty, // TODO DEPRECATED: Remove .has-bounty styling
365
- &.is-archived,
366
- &.is-closed,
367
- &.is-deleted,
368
- &.is-draft,
369
- &.is-pinned,
370
- &.is-published,
371
- &.is-review {
372
- border-radius: var(--br-md);
373
- padding: var(--su2) var(--su4);
374
- }
375
-
376
- &.has-answers {
377
- &.has-accepted-answer {
378
- background-color: var(--_ps-has-accepted-answers-bg);
379
- border-color: var(--_ps-has-accepted-answers-bc);
380
- color: var(--_ps-has-accepted-answers-fc);
381
- }
382
-
383
- background-color: var(--_ps-has-answers-bg);
384
- border: var(--su1) solid var(--_ps-has-answers-bc);
385
- color: var(--_ps-has-answers-fc);
386
- }
387
-
388
- &.has-bounty { // TODO DEPRECATED: Remove and replace with references with `s-badge s-badge__bounty`
389
- background-color: var(--blue-500);
390
- color: var(--white);
391
- }
392
-
393
- // Hotness
394
- &.is-warm {
395
- color: var(--_ps-state-fc, var(--yellow-500));
396
- }
397
-
398
- &.is-hot {
399
- color: var(--_ps-state-fc, var(--orange-500));
400
- }
401
-
402
- &.is-supernova {
403
- color: var(--_ps-state-fc, var(--red-500));
404
- }
405
-
406
- // Status
407
- &.is-archived { // TODO DEPRECATED: Remove and replace with references with `s-badge s-badge__muted s-badge__icon`
408
- background-color: var(--black-225);
409
- border-color: var(--black-500);
410
- color: var(--black-600);
411
- }
412
-
413
- &.is-closed { // TODO DEPRECATED: Remove and replace with references with `s-badge s-badge__danger s-badge__icon`
414
- background-color: var(--red-300);
415
- border-color: var(--red-500);
416
- color: var(--red-600);
417
- }
418
-
419
- &.is-draft { // TODO DEPRECATED: Remove and replace with references with `s-badge s-badge__info s-badge__icon`
420
- background-color: var(--blue-300);
421
- border-color: var(--blue-500);
422
- color: var(--blue-600);
423
- }
240
+ align-items: center;
241
+ display: flex;
242
+ gap: var(--su6);
243
+ }
424
244
 
425
- &.is-pinned { // TODO DEPRECATED: Remove and replace with references with `s-badge s-badge__muted s-badge__filled s-badge__icon`
426
- background-color: var(--black-500);
427
- color: var(--white);
428
- }
245
+ & &--tags {
246
+ display: flex;
247
+ flex-wrap: wrap;
248
+ gap: var(--su8);
249
+ margin-top: var(--su6);
250
+ }
429
251
 
430
- &.is-published {
431
- background-color: var(--black-150);
432
- color: var(--black-600);
433
- }
252
+ & &--title {
253
+ display: flex;
254
+ gap: var(--su6);
255
+ line-height: 1.563rem; // TODO use a standard line-height variable (currently 25px)
256
+ }
434
257
 
435
- &.is-review { // TODO DEPRECATED: Remove and replace with references with `s-badge s-badge__warning s-badge__icon`
436
- background-color: var(--yellow-300);
437
- border-color: var(--yellow-500);
438
- color: var(--yellow-600);
439
- }
258
+ & &--title-link {
259
+ &:hover {
260
+ --_ps-title-link-fc: var(--theme-secondary-500);
440
261
 
441
- &__emphasized {
442
- color: var(--_ps-stats-item-emphasized-fc);
262
+ &:visited {
263
+ color: var(--theme-secondary-600);
443
264
  }
444
265
  }
445
266
 
446
- &--stats-item-number {
447
- font-weight: 500;
267
+ // TODO: Since custom property is not being applied for some reason, we're changing the color directly. Remove this once the custom property is fixed.
268
+ // I suspect this is because of restrictions on the `:visited` pseudo-class.
269
+ // See https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/:visited#privacy_restrictions
270
+ &:visited {
271
+ color: var(--theme-secondary-400);
448
272
  }
449
273
 
274
+ color: var(--_ps-title-link-fc);
275
+ display: flex;
276
+ font-size: var(--fs-body3);
277
+ font-weight: 600;
278
+ gap: var(--su4);
279
+ margin-top: var(--su2);
280
+ text-decoration: none;
281
+ }
282
+
283
+ & &--title-icon {
284
+ flex-shrink: 0;
450
285
  }
451
286
 
452
- background-color: var(--_ps-bg);
453
- border-bottom: var(--_ps-bb);
287
+ // Container query setup
288
+ container-type: inline-size;
289
+ container-name: post-summary;
454
290
 
291
+ color: var(--black-500);
455
292
  display: flex;
456
- padding: var(--su16);
293
+ gap: var(--su16);
457
294
  position: relative;
295
+ width: 100%;
458
296
  }