@stackoverflow/stacks 2.7.3 → 2.7.4

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 (83) hide show
  1. package/LICENSE.MD +9 -9
  2. package/README.md +158 -180
  3. package/dist/css/stacks.css +6 -0
  4. package/dist/js/stacks.min.js +1 -1
  5. package/lib/atomic/border.less +139 -139
  6. package/lib/atomic/color.less +36 -36
  7. package/lib/atomic/flex.less +426 -426
  8. package/lib/atomic/gap.less +44 -44
  9. package/lib/atomic/grid.less +139 -139
  10. package/lib/atomic/misc.less +374 -374
  11. package/lib/atomic/spacing.less +98 -98
  12. package/lib/atomic/typography.less +266 -264
  13. package/lib/atomic/width-height.less +194 -194
  14. package/lib/base/body.less +44 -44
  15. package/lib/base/configuration-static.less +61 -61
  16. package/lib/base/fieldset.less +5 -5
  17. package/lib/base/icon.less +11 -11
  18. package/lib/base/internal.less +220 -220
  19. package/lib/base/reset-meyer.less +64 -64
  20. package/lib/base/reset-normalize.less +449 -449
  21. package/lib/base/reset.less +20 -20
  22. package/lib/components/activity-indicator/activity-indicator.less +53 -53
  23. package/lib/components/avatar/avatar.less +108 -108
  24. package/lib/components/award-bling/award-bling.less +31 -31
  25. package/lib/components/banner/banner.less +44 -44
  26. package/lib/components/banner/banner.ts +149 -149
  27. package/lib/components/block-link/block-link.less +82 -82
  28. package/lib/components/breadcrumbs/breadcrumbs.less +41 -41
  29. package/lib/components/button-group/button-group.less +82 -82
  30. package/lib/components/card/card.less +37 -37
  31. package/lib/components/check-control/check-control.less +17 -17
  32. package/lib/components/check-group/check-group.less +19 -19
  33. package/lib/components/checkbox_radio/checkbox_radio.less +159 -159
  34. package/lib/components/code-block/code-block.fixtures.ts +88 -88
  35. package/lib/components/code-block/code-block.less +116 -116
  36. package/lib/components/description/description.less +9 -9
  37. package/lib/components/empty-state/empty-state.less +16 -16
  38. package/lib/components/expandable/expandable.less +118 -118
  39. package/lib/components/input-fill/input-fill.less +35 -35
  40. package/lib/components/input-icon/input-icon.less +45 -45
  41. package/lib/components/input-message/input-message.less +49 -49
  42. package/lib/components/label/label.less +110 -110
  43. package/lib/components/link-preview/link-preview.less +148 -148
  44. package/lib/components/menu/menu.less +41 -41
  45. package/lib/components/modal/modal.less +118 -118
  46. package/lib/components/modal/modal.ts +383 -383
  47. package/lib/components/navigation/navigation.less +136 -136
  48. package/lib/components/navigation/navigation.ts +128 -128
  49. package/lib/components/page-title/page-title.less +51 -51
  50. package/lib/components/popover/popover.less +159 -159
  51. package/lib/components/popover/popover.ts +651 -651
  52. package/lib/components/post-summary/post-summary.less +457 -457
  53. package/lib/components/progress-bar/progress-bar.less +291 -291
  54. package/lib/components/prose/prose.less +452 -452
  55. package/lib/components/select/select.less +138 -138
  56. package/lib/components/spinner/spinner.less +103 -103
  57. package/lib/components/table/table.ts +296 -296
  58. package/lib/components/table-container/table-container.less +4 -4
  59. package/lib/components/tag/tag.less +186 -186
  60. package/lib/components/toast/toast.less +35 -35
  61. package/lib/components/toast/toast.ts +357 -357
  62. package/lib/components/toggle-switch/toggle-switch.less +104 -104
  63. package/lib/components/topbar/topbar.less +553 -553
  64. package/lib/components/uploader/uploader.less +205 -205
  65. package/lib/components/user-card/user-card.less +129 -129
  66. package/lib/controllers.ts +33 -33
  67. package/lib/exports/color-mixins.less +283 -283
  68. package/lib/exports/constants-helpers.less +108 -108
  69. package/lib/exports/constants-type.less +155 -155
  70. package/lib/exports/exports.less +15 -15
  71. package/lib/exports/mixins.less +334 -333
  72. package/lib/exports/spacing-mixins.less +67 -67
  73. package/lib/index.ts +32 -32
  74. package/lib/input-utils.less +41 -41
  75. package/lib/stacks-dynamic.less +24 -24
  76. package/lib/stacks-static.less +93 -93
  77. package/lib/stacks.less +13 -13
  78. package/lib/test/assertions.ts +36 -36
  79. package/lib/test/less-test-utils.ts +28 -28
  80. package/lib/test/open-wc-testing-patch.d.ts +26 -26
  81. package/lib/tsconfig.build.json +4 -4
  82. package/lib/tsconfig.json +17 -17
  83. package/package.json +26 -22
@@ -1,457 +1,457 @@
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-400))));
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;
30
-
31
- flex-direction: column;
32
- });
33
-
34
- // MODIFIERS
35
- &&__minimal,
36
- & &--answer {
37
- --_ps-stats-ai: center;
38
- --_ps-stats-fd: row;
39
- --_ps-stats-w: auto;
40
- }
41
-
42
- &&__minimal {
43
- .s-post-summary--content {
44
- width: 100%;
45
- }
46
-
47
- flex-direction: column;
48
- }
49
-
50
- // VARIANTS
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
- }
80
- }
81
- }
82
-
83
- .s-user-card {
84
- a,
85
- .s-user-card--link,
86
- .s-user-card--rep,
87
- .s-user-card--time {
88
- color: var(--_ps-state-fc);
89
- }
90
-
91
- .s-badge {
92
- filter: grayscale(100%);
93
- }
94
- }
95
- }
96
- &&__deleted,
97
- &&__watched {
98
- background-color: var(--_ps-bg);
99
- }
100
-
101
- &&__deleted {
102
- --_ps-bg: var(--red-100);
103
- --_ps-has-accepted-answers-bg: var(--black-200);
104
- --_ps-has-accepted-answers-fc: var(--black-500);
105
- --_ps-meta-tags-tag-bg: var(--black-200);
106
-
107
- .is-deleted,
108
- .s-badge__danger.s-badge__filled {
109
- .dark-mode({
110
- background-color: var(--red-600);
111
- color: var(--white);
112
- });
113
-
114
- background-color: var(--red-500);
115
- }
116
- }
117
-
118
- &&__watched {
119
- &:not(.s-post-summary__deleted):not(.s-post-summary__ignored) {
120
- --_ps-bg: var(--yellow-100);
121
- --_ps-stats-fc: var(--black-400);
122
- --_ps-content-title-a-fc: var(--theme-post-title-color, var(--theme-link-color, var(--theme-secondary-400)));
123
- --_ps-content-title-a-fc-hover: var(--theme-post-title-color-hover, var(--theme-link-color-hover, var(--theme-secondary-500)));
124
- --_ps-content-title-a-fc-visited: var(--theme-post-title-color-visited, var(--theme-link-color-visited, var(--purple-500)));
125
- --_ps-content-title-a-fc-hover-visited: var(--theme-post-title-color-hover, var(--theme-link-color-hover, var(--purple-600)));
126
-
127
- .s-user-card {
128
- a {
129
- &:active,
130
- &:hover {
131
- color: var(--_ps-content-title-a-fc-hover);
132
- }
133
-
134
- &:visited {
135
- &:hover {
136
- color: var(--_ps-content-title-a-fc-hover-visited);
137
- }
138
-
139
- color: var(--_ps-content-title-a-fc-visited);
140
- }
141
-
142
- color: var(--_ps-content-title-a-fc);
143
- }
144
-
145
- .s-user-card--rep,
146
- .s-user-card--time {
147
- color: var(--black-500);
148
- }
149
- }
150
- }
151
- }
152
-
153
- &:last-child {
154
- --_ps-bb: none;
155
- }
156
-
157
- // Child Elements
158
- & & {
159
- &--answer {
160
- & + & {
161
- margin-top: var(--su16);
162
- }
163
-
164
- &:before {
165
- .highcontrast-mode({
166
- background: var(--black-500);
167
- });
168
-
169
- background: var(--black-250);
170
- border-radius: var(--su8);
171
- bottom: 0;
172
- content: "";
173
- display: block;
174
- left: 0;
175
- position: absolute;
176
- top: 0;
177
- width: var(--su4);
178
- }
179
-
180
- margin: var(--su16) 1em 0 1em;
181
- padding: 0.5em 0 0.5em calc(1em + var(--su4));
182
- position: relative;
183
- }
184
-
185
- &--answer-excerpt {
186
- .v-truncate4;
187
- color: var(--black-500);
188
- margin-bottom: var(--su8);
189
- }
190
-
191
- &--content {
192
- > *:not(.s-post-summary--content-menu-button):not(.s-post-summary--meta):not(.s-popover) {
193
- opacity: var(--_ps-o);
194
- }
195
-
196
- flex-grow: 1;
197
- max-width: 100%;
198
- }
199
-
200
- &--content-excerpt {
201
- &.s-post-summary--content-excerpt {
202
- &__sm {
203
- .v-truncate1;
204
- }
205
-
206
- &__md {
207
- .v-truncate3;
208
- }
209
-
210
- &__lg {
211
- .v-truncate4;
212
- }
213
- }
214
-
215
- .break-word;
216
- .v-truncate2;
217
- color: var( --_ps-content-excerpt-fc);
218
- font-family: var(--theme-post-body-font-family, var(--theme-body-font-family));
219
- margin-top: calc(var(--su2) * -1);
220
- margin-bottom: var(--su8);
221
- }
222
-
223
- &--content-menu-button {
224
- .svg-icon {
225
- margin: 0 !important;
226
- }
227
-
228
- &,
229
- &.s-btn { // To override .s-btn class attributes
230
- padding: var(--su8);
231
- position: absolute;
232
- }
233
-
234
- right: var(--su8);
235
- top: var(--su8);
236
- }
237
-
238
- &--content-title {
239
- a {
240
- &:active,
241
- &:hover {
242
- color: var(--_ps-content-title-a-fc-hover);
243
- }
244
- &:visited {
245
- &:hover {
246
- color: var(--_ps-content-title-a-fc-hover-visited);
247
- }
248
-
249
- color: var(--_ps-content-title-a-fc-visited);
250
- }
251
-
252
- .break-word;
253
- color: var(--_ps-content-title-a-fc);
254
- font-family: var(--theme-post-title-font-family, var(--theme-body-font-family));
255
- }
256
-
257
- .iconShield {
258
- color: var(--fc-light);
259
- }
260
-
261
- .svg-icon {
262
- position: relative;
263
- top: calc(var(--su1) * -1);
264
- vertical-align: text-bottom; // Optical alignment
265
- }
266
-
267
- .break-word;
268
- display: block;
269
- font-size: var(--fs-body3);
270
- font-weight: normal;
271
- line-height: var(--lh-md);
272
- margin-bottom: 0.3846rem;
273
- margin-top: -0.15rem; // Optical alignment to compensate for title's containing block
274
- padding-right: var(--su24);
275
- }
276
-
277
- &--content-type {
278
- .svg-icon {
279
- color: var(--fc-light);
280
- margin-left: calc(var(--su2) * -1);
281
- }
282
-
283
- color: var(--fc-medium);
284
- margin-bottom: var(--su4);
285
- }
286
-
287
- &--meta {
288
- > *:not(.s-post-summary--meta-tags):not(.s-user-card) > * {
289
- opacity: var(--_ps-o);
290
- }
291
-
292
- .s-user-card {
293
- > *:not(.magic-popup) {
294
- opacity: var(--_ps-o);
295
- }
296
-
297
- flex-wrap: wrap;
298
- justify-content: flex-end;
299
- margin-left: auto;
300
- }
301
-
302
- align-items: center;
303
- column-gap: var(--su6);
304
- display: flex;
305
- flex-wrap: wrap;
306
- justify-content: space-between;
307
- row-gap: var(--su8);
308
- }
309
-
310
- &--meta-tags {
311
- > ul > li > a,
312
- > a,
313
- .post-tag,
314
- .s-tag {
315
- opacity: var(--_ps-o);
316
- }
317
-
318
- display: flex;
319
- flex-wrap: wrap;
320
- gap: var(--su4);
321
- }
322
-
323
- &--stats {
324
- > *:not(.s-badge__danger) {
325
- opacity: var(--_ps-o);
326
- }
327
-
328
- align-items: var(--_ps-stats-ai);
329
- color: var(--_ps-stats-fc);
330
- flex-direction: var(--_ps-stats-fd);
331
- width: var(--_ps-stats-w);
332
-
333
- display: flex;
334
- flex-shrink: 0;
335
- flex-wrap: wrap;
336
- font-size: var(--fs-body1);
337
- gap: var(--su6);
338
- margin-bottom: var(--su4);
339
- margin-right: var(--su16);
340
- }
341
-
342
- &--stats-item {
343
- &:not(.s-badge) {
344
- &.is-deleted {
345
- color: var(--white);
346
- }
347
-
348
- align-items: center;
349
- border: var(--su1) solid transparent;
350
- display: inline-flex;
351
- gap: 0.3em;
352
- justify-content: center;
353
- white-space: nowrap;
354
- }
355
-
356
- &.s-badge {
357
- font-size: var(--fs-body1);
358
- line-height: var(--lh-md);
359
- padding: var(--su2) var(--su4);
360
- }
361
-
362
- &.has-answers,
363
- &.has-bounty, // TODO DEPRECATED: Remove .has-bounty styling
364
- &.is-archived,
365
- &.is-closed,
366
- &.is-deleted,
367
- &.is-draft,
368
- &.is-pinned,
369
- &.is-published,
370
- &.is-review {
371
- border-radius: var(--br-sm);
372
- padding: var(--su2) var(--su4);
373
- }
374
-
375
- &.has-answers {
376
- &.has-accepted-answer {
377
- background-color: var(--_ps-has-accepted-answers-bg);
378
- border-color: var(--_ps-has-accepted-answers-bc);
379
- color: var(--_ps-has-accepted-answers-fc);
380
- }
381
-
382
- background-color: var(--_ps-has-answers-bg);
383
- border: var(--su1) solid var(--_ps-has-answers-bc);
384
- color: var(--_ps-has-answers-fc);
385
- }
386
-
387
- &.has-bounty { // TODO DEPRECATED: Remove and replace with references with `s-badge s-badge__bounty`
388
- background-color: var(--blue-500);
389
- color: var(--white);
390
- }
391
-
392
- // Hotness
393
- &.is-warm {
394
- color: var(--_ps-state-fc, var(--yellow-500));
395
- }
396
-
397
- &.is-hot {
398
- color: var(--_ps-state-fc, var(--orange-500));
399
- }
400
-
401
- &.is-supernova {
402
- color: var(--_ps-state-fc, var(--red-500));
403
- }
404
-
405
- // Status
406
- &.is-archived { // TODO DEPRECATED: Remove and replace with references with `s-badge s-badge__muted s-badge__icon`
407
- background-color: var(--black-225);
408
- border-color: var(--black-500);
409
- color: var(--black-600);
410
- }
411
-
412
- &.is-closed { // TODO DEPRECATED: Remove and replace with references with `s-badge s-badge__danger s-badge__icon`
413
- background-color: var(--red-300);
414
- border-color: var(--red-500);
415
- color: var(--red-600);
416
- }
417
-
418
- &.is-draft { // TODO DEPRECATED: Remove and replace with references with `s-badge s-badge__info s-badge__icon`
419
- background-color: var(--blue-300);
420
- border-color: var(--blue-500);
421
- color: var(--blue-600);
422
- }
423
-
424
- &.is-pinned { // TODO DEPRECATED: Remove and replace with references with `s-badge s-badge__muted s-badge__filled s-badge__icon`
425
- background-color: var(--black-500);
426
- color: var(--white);
427
- }
428
-
429
- &.is-published {
430
- background-color: var(--black-150);
431
- color: var(--black-600);
432
- }
433
-
434
- &.is-review { // TODO DEPRECATED: Remove and replace with references with `s-badge s-badge__warning s-badge__icon`
435
- background-color: var(--yellow-300);
436
- border-color: var(--yellow-500);
437
- color: var(--yellow-600);
438
- }
439
-
440
- &__emphasized {
441
- color: var(--_ps-stats-item-emphasized-fc);
442
- }
443
- }
444
-
445
- &--stats-item-number {
446
- font-weight: 500;
447
- }
448
-
449
- }
450
-
451
- background-color: var(--_ps-bg);
452
- border-bottom: var(--_ps-bb);
453
-
454
- display: flex;
455
- padding: var(--su16);
456
- position: relative;
457
- }
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-400))));
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;
30
+
31
+ flex-direction: column;
32
+ });
33
+
34
+ // MODIFIERS
35
+ &&__minimal,
36
+ & &--answer {
37
+ --_ps-stats-ai: center;
38
+ --_ps-stats-fd: row;
39
+ --_ps-stats-w: auto;
40
+ }
41
+
42
+ &&__minimal {
43
+ .s-post-summary--content {
44
+ width: 100%;
45
+ }
46
+
47
+ flex-direction: column;
48
+ }
49
+
50
+ // VARIANTS
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
+ }
80
+ }
81
+ }
82
+
83
+ .s-user-card {
84
+ a,
85
+ .s-user-card--link,
86
+ .s-user-card--rep,
87
+ .s-user-card--time {
88
+ color: var(--_ps-state-fc);
89
+ }
90
+
91
+ .s-badge {
92
+ filter: grayscale(100%);
93
+ }
94
+ }
95
+ }
96
+ &&__deleted,
97
+ &&__watched {
98
+ background-color: var(--_ps-bg);
99
+ }
100
+
101
+ &&__deleted {
102
+ --_ps-bg: var(--red-100);
103
+ --_ps-has-accepted-answers-bg: var(--black-200);
104
+ --_ps-has-accepted-answers-fc: var(--black-500);
105
+ --_ps-meta-tags-tag-bg: var(--black-200);
106
+
107
+ .is-deleted,
108
+ .s-badge__danger.s-badge__filled {
109
+ .dark-mode({
110
+ background-color: var(--red-600);
111
+ color: var(--white);
112
+ });
113
+
114
+ background-color: var(--red-500);
115
+ }
116
+ }
117
+
118
+ &&__watched {
119
+ &:not(.s-post-summary__deleted):not(.s-post-summary__ignored) {
120
+ --_ps-bg: var(--yellow-100);
121
+ --_ps-stats-fc: var(--black-400);
122
+ --_ps-content-title-a-fc: var(--theme-post-title-color, var(--theme-link-color, var(--theme-secondary-400)));
123
+ --_ps-content-title-a-fc-hover: var(--theme-post-title-color-hover, var(--theme-link-color-hover, var(--theme-secondary-500)));
124
+ --_ps-content-title-a-fc-visited: var(--theme-post-title-color-visited, var(--theme-link-color-visited, var(--purple-500)));
125
+ --_ps-content-title-a-fc-hover-visited: var(--theme-post-title-color-hover, var(--theme-link-color-hover, var(--purple-600)));
126
+
127
+ .s-user-card {
128
+ a {
129
+ &:active,
130
+ &:hover {
131
+ color: var(--_ps-content-title-a-fc-hover);
132
+ }
133
+
134
+ &:visited {
135
+ &:hover {
136
+ color: var(--_ps-content-title-a-fc-hover-visited);
137
+ }
138
+
139
+ color: var(--_ps-content-title-a-fc-visited);
140
+ }
141
+
142
+ color: var(--_ps-content-title-a-fc);
143
+ }
144
+
145
+ .s-user-card--rep,
146
+ .s-user-card--time {
147
+ color: var(--black-500);
148
+ }
149
+ }
150
+ }
151
+ }
152
+
153
+ &:last-child {
154
+ --_ps-bb: none;
155
+ }
156
+
157
+ // Child Elements
158
+ & & {
159
+ &--answer {
160
+ & + & {
161
+ margin-top: var(--su16);
162
+ }
163
+
164
+ &:before {
165
+ .highcontrast-mode({
166
+ background: var(--black-500);
167
+ });
168
+
169
+ background: var(--black-250);
170
+ border-radius: var(--su8);
171
+ bottom: 0;
172
+ content: "";
173
+ display: block;
174
+ left: 0;
175
+ position: absolute;
176
+ top: 0;
177
+ width: var(--su4);
178
+ }
179
+
180
+ margin: var(--su16) 1em 0 1em;
181
+ padding: 0.5em 0 0.5em calc(1em + var(--su4));
182
+ position: relative;
183
+ }
184
+
185
+ &--answer-excerpt {
186
+ .v-truncate4;
187
+ color: var(--black-500);
188
+ margin-bottom: var(--su8);
189
+ }
190
+
191
+ &--content {
192
+ > *:not(.s-post-summary--content-menu-button):not(.s-post-summary--meta):not(.s-popover) {
193
+ opacity: var(--_ps-o);
194
+ }
195
+
196
+ flex-grow: 1;
197
+ max-width: 100%;
198
+ }
199
+
200
+ &--content-excerpt {
201
+ &.s-post-summary--content-excerpt {
202
+ &__sm {
203
+ .v-truncate1;
204
+ }
205
+
206
+ &__md {
207
+ .v-truncate3;
208
+ }
209
+
210
+ &__lg {
211
+ .v-truncate4;
212
+ }
213
+ }
214
+
215
+ .break-word;
216
+ .v-truncate2;
217
+ color: var( --_ps-content-excerpt-fc);
218
+ font-family: var(--theme-post-body-font-family, var(--theme-body-font-family));
219
+ margin-top: calc(var(--su2) * -1);
220
+ margin-bottom: var(--su8);
221
+ }
222
+
223
+ &--content-menu-button {
224
+ .svg-icon {
225
+ margin: 0 !important;
226
+ }
227
+
228
+ &,
229
+ &.s-btn { // To override .s-btn class attributes
230
+ padding: var(--su8);
231
+ position: absolute;
232
+ }
233
+
234
+ right: var(--su8);
235
+ top: var(--su8);
236
+ }
237
+
238
+ &--content-title {
239
+ a {
240
+ &:active,
241
+ &:hover {
242
+ color: var(--_ps-content-title-a-fc-hover);
243
+ }
244
+ &:visited {
245
+ &:hover {
246
+ color: var(--_ps-content-title-a-fc-hover-visited);
247
+ }
248
+
249
+ color: var(--_ps-content-title-a-fc-visited);
250
+ }
251
+
252
+ .break-word;
253
+ color: var(--_ps-content-title-a-fc);
254
+ font-family: var(--theme-post-title-font-family, var(--theme-body-font-family));
255
+ }
256
+
257
+ .iconShield {
258
+ color: var(--fc-light);
259
+ }
260
+
261
+ .svg-icon {
262
+ position: relative;
263
+ top: calc(var(--su1) * -1);
264
+ vertical-align: text-bottom; // Optical alignment
265
+ }
266
+
267
+ .break-word;
268
+ display: block;
269
+ font-size: var(--fs-body3);
270
+ font-weight: normal;
271
+ line-height: var(--lh-md);
272
+ margin-bottom: 0.3846rem;
273
+ margin-top: -0.15rem; // Optical alignment to compensate for title's containing block
274
+ padding-right: var(--su24);
275
+ }
276
+
277
+ &--content-type {
278
+ .svg-icon {
279
+ color: var(--fc-light);
280
+ margin-left: calc(var(--su2) * -1);
281
+ }
282
+
283
+ color: var(--fc-medium);
284
+ margin-bottom: var(--su4);
285
+ }
286
+
287
+ &--meta {
288
+ > *:not(.s-post-summary--meta-tags):not(.s-user-card) > * {
289
+ opacity: var(--_ps-o);
290
+ }
291
+
292
+ .s-user-card {
293
+ > *:not(.magic-popup) {
294
+ opacity: var(--_ps-o);
295
+ }
296
+
297
+ flex-wrap: wrap;
298
+ justify-content: flex-end;
299
+ margin-left: auto;
300
+ }
301
+
302
+ align-items: center;
303
+ column-gap: var(--su6);
304
+ display: flex;
305
+ flex-wrap: wrap;
306
+ justify-content: space-between;
307
+ row-gap: var(--su8);
308
+ }
309
+
310
+ &--meta-tags {
311
+ > ul > li > a,
312
+ > a,
313
+ .post-tag,
314
+ .s-tag {
315
+ opacity: var(--_ps-o);
316
+ }
317
+
318
+ display: flex;
319
+ flex-wrap: wrap;
320
+ gap: var(--su4);
321
+ }
322
+
323
+ &--stats {
324
+ > *:not(.s-badge__danger) {
325
+ opacity: var(--_ps-o);
326
+ }
327
+
328
+ align-items: var(--_ps-stats-ai);
329
+ color: var(--_ps-stats-fc);
330
+ flex-direction: var(--_ps-stats-fd);
331
+ width: var(--_ps-stats-w);
332
+
333
+ display: flex;
334
+ flex-shrink: 0;
335
+ flex-wrap: wrap;
336
+ font-size: var(--fs-body1);
337
+ gap: var(--su6);
338
+ margin-bottom: var(--su4);
339
+ margin-right: var(--su16);
340
+ }
341
+
342
+ &--stats-item {
343
+ &:not(.s-badge) {
344
+ &.is-deleted {
345
+ color: var(--white);
346
+ }
347
+
348
+ align-items: center;
349
+ border: var(--su1) solid transparent;
350
+ display: inline-flex;
351
+ gap: 0.3em;
352
+ justify-content: center;
353
+ white-space: nowrap;
354
+ }
355
+
356
+ &.s-badge {
357
+ font-size: var(--fs-body1);
358
+ line-height: var(--lh-md);
359
+ padding: var(--su2) var(--su4);
360
+ }
361
+
362
+ &.has-answers,
363
+ &.has-bounty, // TODO DEPRECATED: Remove .has-bounty styling
364
+ &.is-archived,
365
+ &.is-closed,
366
+ &.is-deleted,
367
+ &.is-draft,
368
+ &.is-pinned,
369
+ &.is-published,
370
+ &.is-review {
371
+ border-radius: var(--br-sm);
372
+ padding: var(--su2) var(--su4);
373
+ }
374
+
375
+ &.has-answers {
376
+ &.has-accepted-answer {
377
+ background-color: var(--_ps-has-accepted-answers-bg);
378
+ border-color: var(--_ps-has-accepted-answers-bc);
379
+ color: var(--_ps-has-accepted-answers-fc);
380
+ }
381
+
382
+ background-color: var(--_ps-has-answers-bg);
383
+ border: var(--su1) solid var(--_ps-has-answers-bc);
384
+ color: var(--_ps-has-answers-fc);
385
+ }
386
+
387
+ &.has-bounty { // TODO DEPRECATED: Remove and replace with references with `s-badge s-badge__bounty`
388
+ background-color: var(--blue-500);
389
+ color: var(--white);
390
+ }
391
+
392
+ // Hotness
393
+ &.is-warm {
394
+ color: var(--_ps-state-fc, var(--yellow-500));
395
+ }
396
+
397
+ &.is-hot {
398
+ color: var(--_ps-state-fc, var(--orange-500));
399
+ }
400
+
401
+ &.is-supernova {
402
+ color: var(--_ps-state-fc, var(--red-500));
403
+ }
404
+
405
+ // Status
406
+ &.is-archived { // TODO DEPRECATED: Remove and replace with references with `s-badge s-badge__muted s-badge__icon`
407
+ background-color: var(--black-225);
408
+ border-color: var(--black-500);
409
+ color: var(--black-600);
410
+ }
411
+
412
+ &.is-closed { // TODO DEPRECATED: Remove and replace with references with `s-badge s-badge__danger s-badge__icon`
413
+ background-color: var(--red-300);
414
+ border-color: var(--red-500);
415
+ color: var(--red-600);
416
+ }
417
+
418
+ &.is-draft { // TODO DEPRECATED: Remove and replace with references with `s-badge s-badge__info s-badge__icon`
419
+ background-color: var(--blue-300);
420
+ border-color: var(--blue-500);
421
+ color: var(--blue-600);
422
+ }
423
+
424
+ &.is-pinned { // TODO DEPRECATED: Remove and replace with references with `s-badge s-badge__muted s-badge__filled s-badge__icon`
425
+ background-color: var(--black-500);
426
+ color: var(--white);
427
+ }
428
+
429
+ &.is-published {
430
+ background-color: var(--black-150);
431
+ color: var(--black-600);
432
+ }
433
+
434
+ &.is-review { // TODO DEPRECATED: Remove and replace with references with `s-badge s-badge__warning s-badge__icon`
435
+ background-color: var(--yellow-300);
436
+ border-color: var(--yellow-500);
437
+ color: var(--yellow-600);
438
+ }
439
+
440
+ &__emphasized {
441
+ color: var(--_ps-stats-item-emphasized-fc);
442
+ }
443
+ }
444
+
445
+ &--stats-item-number {
446
+ font-weight: 500;
447
+ }
448
+
449
+ }
450
+
451
+ background-color: var(--_ps-bg);
452
+ border-bottom: var(--_ps-bb);
453
+
454
+ display: flex;
455
+ padding: var(--su16);
456
+ position: relative;
457
+ }