@rmdes/indiekit-endpoint-microsub 1.0.44 → 1.0.46

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.
package/assets/styles.css CHANGED
@@ -7,13 +7,13 @@
7
7
  Reader Layout
8
8
  ========================================================================== */
9
9
 
10
- .reader {
10
+ .ms-reader {
11
11
  display: flex;
12
12
  flex-direction: column;
13
13
  gap: var(--space-m);
14
14
  }
15
15
 
16
- .reader__header {
16
+ .ms-reader__header {
17
17
  align-items: center;
18
18
  display: flex;
19
19
  flex-wrap: wrap;
@@ -21,7 +21,7 @@
21
21
  justify-content: space-between;
22
22
  }
23
23
 
24
- .reader__actions {
24
+ .ms-reader__actions {
25
25
  display: flex;
26
26
  flex-wrap: wrap;
27
27
  gap: var(--space-xs);
@@ -31,16 +31,16 @@
31
31
  Channel List
32
32
  ========================================================================== */
33
33
 
34
- .reader__channels {
34
+ .ms-reader__channels {
35
35
  display: flex;
36
36
  flex-direction: column;
37
37
  gap: var(--space-xs);
38
38
  }
39
39
 
40
- .reader__channel {
40
+ .ms-reader__channel {
41
41
  align-items: center;
42
42
  background: var(--color-offset);
43
- border-radius: var(--border-radius);
43
+ border-radius: var(--border-radius-small);
44
44
  color: inherit;
45
45
  display: flex;
46
46
  gap: var(--space-s);
@@ -51,27 +51,27 @@
51
51
  box-shadow 0.2s ease;
52
52
  }
53
53
 
54
- .reader__channel:hover {
55
- background: var(--color-offset-active);
54
+ .ms-reader__channel:hover {
55
+ background: var(--color-offset-variant);
56
56
  }
57
57
 
58
- .reader__channel--active {
58
+ .ms-reader__channel--active {
59
59
  background: var(--color-primary);
60
60
  color: var(--color-background);
61
61
  }
62
62
 
63
- .reader__channel-name {
63
+ .ms-reader__channel-name {
64
64
  flex: 1;
65
65
  font-weight: 500;
66
66
  }
67
67
 
68
- .reader__channel-badge {
68
+ .ms-reader__channel-badge {
69
69
  align-items: center;
70
70
  background: var(--color-primary);
71
71
  border-radius: 0.75rem;
72
72
  color: var(--color-background);
73
73
  display: inline-flex;
74
- font-size: var(--font-size-small);
74
+ font-size: var(--font-size-s);
75
75
  font-weight: 600;
76
76
  height: 1.5rem;
77
77
  justify-content: center;
@@ -79,13 +79,13 @@
79
79
  padding: 0 var(--space-xs);
80
80
  }
81
81
 
82
- .reader__channel--active .reader__channel-badge {
82
+ .ms-reader__channel--active .ms-reader__channel-badge {
83
83
  background: var(--color-background);
84
84
  color: var(--color-primary);
85
85
  }
86
86
 
87
87
  /* Dot indicator for boolean unread state */
88
- .reader__channel-badge--dot {
88
+ .ms-reader__channel-badge--dot {
89
89
  height: 0.75rem;
90
90
  min-width: 0.75rem;
91
91
  padding: 0;
@@ -96,14 +96,14 @@
96
96
  Timeline
97
97
  ========================================================================== */
98
98
 
99
- .timeline {
99
+ .ms-timeline {
100
100
  display: flex;
101
101
  flex-direction: column;
102
102
  gap: var(--space-m);
103
103
  }
104
104
 
105
- .timeline__paging {
106
- border-top: 1px solid var(--color-offset);
105
+ .ms-timeline__paging {
106
+ border-top: var(--border-width-thin) solid var(--color-offset);
107
107
  display: flex;
108
108
  gap: var(--space-m);
109
109
  justify-content: space-between;
@@ -114,10 +114,10 @@
114
114
  Item Card
115
115
  ========================================================================== */
116
116
 
117
- .item-card {
117
+ .ms-item-card {
118
118
  background: var(--color-background);
119
- border: 1px solid var(--color-offset);
120
- border-radius: var(--border-radius);
119
+ border: var(--border-width-thin) solid var(--color-offset);
120
+ border-radius: var(--border-radius-small);
121
121
  display: block;
122
122
  overflow: hidden;
123
123
  transition:
@@ -125,21 +125,21 @@
125
125
  transform 0.1s ease;
126
126
  }
127
127
 
128
- .item-card:hover {
129
- border-color: var(--color-offset-active);
128
+ .ms-item-card:hover {
129
+ border-color: var(--color-offset-variant);
130
130
  }
131
131
 
132
132
  /* Unread state - yellow glow (Aperture pattern) */
133
- .item-card:not(.item-card--read) {
134
- border-color: rgba(255, 204, 0, 0.5);
135
- box-shadow: 0 0 10px 0 rgba(255, 204, 0, 0.8);
133
+ .ms-item-card:not(.ms-item-card--read) {
134
+ border-color: hsl(var(--tint-yellow) 50% / 0.5);
135
+ box-shadow: 0 0 10px 0 hsl(var(--tint-yellow) 50% / 0.8);
136
136
  }
137
137
 
138
- .item-card--read {
138
+ .ms-item-card--read {
139
139
  opacity: 0.85;
140
140
  }
141
141
 
142
- .item-card__link {
142
+ .ms-item-card__link {
143
143
  color: inherit;
144
144
  display: block;
145
145
  padding: var(--space-m);
@@ -147,15 +147,15 @@
147
147
  }
148
148
 
149
149
  /* Author */
150
- .item-card__author {
150
+ .ms-item-card__author {
151
151
  align-items: center;
152
152
  display: flex;
153
153
  gap: var(--space-s);
154
154
  margin-bottom: var(--space-s);
155
155
  }
156
156
 
157
- .item-card__author-photo {
158
- border: 1px solid var(--color-offset);
157
+ .ms-item-card__author-photo {
158
+ border: var(--border-width-thin) solid var(--color-offset);
159
159
  border-radius: 50%;
160
160
  flex-shrink: 0;
161
161
  height: 40px;
@@ -163,84 +163,84 @@
163
163
  width: 40px;
164
164
  }
165
165
 
166
- .item-card__author-info {
166
+ .ms-item-card__author-info {
167
167
  display: flex;
168
168
  flex-direction: column;
169
169
  min-width: 0;
170
170
  }
171
171
 
172
- .item-card__author-name {
173
- font-size: var(--font-size-body);
172
+ .ms-item-card__author-name {
173
+ font-size: var(--font-size-m);
174
174
  font-weight: 600;
175
175
  overflow: hidden;
176
176
  text-overflow: ellipsis;
177
177
  white-space: nowrap;
178
178
  }
179
179
 
180
- .item-card__source {
181
- color: var(--color-text-muted);
182
- font-size: var(--font-size-small);
180
+ .ms-item-card__source {
181
+ color: var(--color-on-offset);
182
+ font-size: var(--font-size-s);
183
183
  overflow: hidden;
184
184
  text-overflow: ellipsis;
185
185
  white-space: nowrap;
186
186
  }
187
187
 
188
188
  /* Post type indicator */
189
- .item-card__type {
189
+ .ms-item-card__type {
190
190
  align-items: center;
191
191
  background: var(--color-offset);
192
- border-radius: var(--border-radius);
193
- color: var(--color-text-muted);
192
+ border-radius: var(--border-radius-small);
193
+ color: var(--color-on-offset);
194
194
  display: inline-flex;
195
- font-size: var(--font-size-small);
195
+ font-size: var(--font-size-s);
196
196
  gap: var(--space-xs);
197
197
  margin-bottom: var(--space-s);
198
198
  padding: var(--space-xs) var(--space-s);
199
199
  }
200
200
 
201
- .item-card__type svg {
201
+ .ms-item-card__type svg {
202
202
  height: 1em;
203
203
  width: 1em;
204
204
  }
205
205
 
206
206
  /* Context bar for interactions (Aperture pattern) */
207
- .item-card__context {
207
+ .ms-item-card__context {
208
208
  align-items: center;
209
209
  background: var(--color-offset);
210
210
  display: flex;
211
- font-size: var(--font-size-small);
211
+ font-size: var(--font-size-s);
212
212
  gap: var(--space-xs);
213
213
  margin: calc(-1 * var(--space-m));
214
214
  margin-bottom: var(--space-s);
215
215
  padding: var(--space-s) var(--space-m);
216
216
  }
217
217
 
218
- .item-card__context a {
218
+ .ms-item-card__context a {
219
219
  color: var(--color-primary);
220
220
  text-decoration: none;
221
221
  }
222
222
 
223
- .item-card__context a:hover {
223
+ .ms-item-card__context a:hover {
224
224
  text-decoration: underline;
225
225
  }
226
226
 
227
- .item-card__context svg {
227
+ .ms-item-card__context svg {
228
228
  flex-shrink: 0;
229
229
  height: 1em;
230
230
  width: 1em;
231
231
  }
232
232
 
233
233
  /* Title */
234
- .item-card__title {
235
- font-size: var(--font-size-heading-4);
234
+ .ms-item-card__title {
235
+ font-size: var(--font-size-l);
236
236
  font-weight: 600;
237
237
  line-height: 1.3;
238
238
  margin-bottom: var(--space-xs);
239
239
  }
240
240
 
241
241
  /* Content with expandable overflow (Aperture pattern) */
242
- .item-card__content {
243
- color: var(--color-text);
242
+ .ms-item-card__content {
243
+ color: var(--color-on-background);
244
244
  line-height: 1.5;
245
245
  margin-bottom: var(--space-s);
246
246
  max-height: 200px;
@@ -248,11 +248,11 @@
248
248
  position: relative;
249
249
  }
250
250
 
251
- .item-card__content--expanded {
251
+ .ms-item-card__content--expanded {
252
252
  max-height: none;
253
253
  }
254
254
 
255
- .item-card__content--truncated::after {
255
+ .ms-item-card__content--truncated::after {
256
256
  background: linear-gradient(to bottom, transparent, var(--color-background));
257
257
  bottom: 0;
258
258
  content: "";
@@ -263,18 +263,18 @@
263
263
  right: 0;
264
264
  }
265
265
 
266
- .item-card__read-more {
266
+ .ms-item-card__read-more {
267
267
  color: var(--color-primary);
268
268
  cursor: pointer;
269
269
  display: block;
270
- font-size: var(--font-size-small);
270
+ font-size: var(--font-size-s);
271
271
  padding: var(--space-xs);
272
272
  text-align: center;
273
273
  }
274
274
 
275
275
  /* Photo grid (Aperture multi-photo pattern) */
276
- .item-card__photos {
277
- border-radius: var(--border-radius);
276
+ .ms-item-card__photos {
277
+ border-radius: var(--border-radius-small);
278
278
  display: grid;
279
279
  gap: 2px;
280
280
  margin-bottom: var(--space-s);
@@ -282,87 +282,87 @@
282
282
  }
283
283
 
284
284
  /* Single photo */
285
- .item-card__photos--1 {
285
+ .ms-item-card__photos--1 {
286
286
  grid-template-columns: 1fr;
287
287
  }
288
288
 
289
289
  /* 2 photos - side by side */
290
- .item-card__photos--2 {
290
+ .ms-item-card__photos--2 {
291
291
  grid-template-columns: 1fr 1fr;
292
292
  }
293
293
 
294
294
  /* 3 photos - one large, two small */
295
- .item-card__photos--3 {
295
+ .ms-item-card__photos--3 {
296
296
  grid-template-columns: 2fr 1fr;
297
297
  grid-template-rows: 1fr 1fr;
298
298
  }
299
299
 
300
300
  /* 4+ photos - grid */
301
- .item-card__photos--4 {
301
+ .ms-item-card__photos--4 {
302
302
  grid-template-columns: 1fr 1fr;
303
303
  grid-template-rows: 1fr 1fr;
304
304
  }
305
305
 
306
306
  /* Base photo styles - must come before specific overrides */
307
- .item-card__photo {
307
+ .ms-item-card__photo {
308
308
  background: var(--color-offset);
309
309
  height: 150px;
310
310
  object-fit: cover;
311
311
  width: 100%;
312
312
  }
313
313
 
314
- .item-card__photos--1 .item-card__photo {
314
+ .ms-item-card__photos--1 .ms-item-card__photo {
315
315
  height: auto;
316
316
  max-height: 400px;
317
317
  }
318
318
 
319
- .item-card__photos--3 .item-card__photo:first-child {
319
+ .ms-item-card__photos--3 .ms-item-card__photo:first-child {
320
320
  grid-row: 1 / 3;
321
321
  height: 302px;
322
322
  }
323
323
 
324
324
  /* Video/Audio */
325
- .item-card__video,
326
- .item-card__audio {
327
- border-radius: var(--border-radius);
325
+ .ms-item-card__video,
326
+ .ms-item-card__audio {
327
+ border-radius: var(--border-radius-small);
328
328
  margin-bottom: var(--space-s);
329
329
  width: 100%;
330
330
  }
331
331
 
332
332
  /* Footer */
333
- .item-card__footer {
333
+ .ms-item-card__footer {
334
334
  align-items: center;
335
- border-top: 1px solid var(--color-offset);
336
- color: var(--color-text-muted);
335
+ border-top: var(--border-width-thin) solid var(--color-offset);
336
+ color: var(--color-on-offset);
337
337
  display: flex;
338
- font-size: var(--font-size-small);
338
+ font-size: var(--font-size-s);
339
339
  justify-content: space-between;
340
340
  padding-top: var(--space-s);
341
341
  }
342
342
 
343
- .item-card__date {
343
+ .ms-item-card__date {
344
344
  color: inherit;
345
345
  }
346
346
 
347
- .item-card__unread {
348
- color: var(--color-warning, #ffcc00);
347
+ .ms-item-card__unread {
348
+ color: var(--color-yellow50);
349
349
  font-size: 0.75rem;
350
350
  }
351
351
 
352
352
  /* Categories/Tags */
353
- .item-card__categories {
353
+ .ms-item-card__categories {
354
354
  display: flex;
355
355
  flex-wrap: wrap;
356
356
  gap: var(--space-xs);
357
357
  margin-bottom: var(--space-s);
358
358
  }
359
359
 
360
- .item-card__category {
360
+ .ms-item-card__category {
361
361
  background: var(--color-offset);
362
- border-radius: var(--border-radius);
363
- color: var(--color-text-muted);
362
+ border-radius: var(--border-radius-small);
363
+ color: var(--color-on-offset);
364
364
  display: inline-block;
365
- font-size: var(--font-size-small);
365
+ font-size: var(--font-size-s);
366
366
  padding: 2px var(--space-xs);
367
367
  }
368
368
 
@@ -370,60 +370,110 @@
370
370
  Item Actions (inline on cards)
371
371
  ========================================================================== */
372
372
 
373
- .item-actions {
374
- border-top: 1px solid var(--color-offset);
373
+ .ms-item-actions {
374
+ border-top: var(--border-width-thin) solid var(--color-offset);
375
375
  display: flex;
376
376
  flex-wrap: wrap;
377
377
  gap: var(--space-s);
378
378
  padding-top: var(--space-s);
379
379
  }
380
380
 
381
- .item-actions__button {
381
+ .ms-item-actions__button {
382
382
  align-items: center;
383
383
  background: transparent;
384
- border: 1px solid var(--color-offset);
385
- border-radius: var(--border-radius);
386
- color: var(--color-text-muted);
384
+ border: var(--border-width-thin) solid var(--color-offset);
385
+ border-radius: var(--border-radius-small);
386
+ color: var(--color-on-offset);
387
387
  cursor: pointer;
388
388
  display: inline-flex;
389
- font-size: var(--font-size-small);
389
+ font-size: var(--font-size-s);
390
390
  gap: var(--space-xs);
391
391
  padding: var(--space-xs) var(--space-s);
392
392
  text-decoration: none;
393
393
  transition: all 0.2s ease;
394
394
  }
395
395
 
396
- .item-actions__button:hover {
396
+ .ms-item-actions__button:hover {
397
397
  background: var(--color-offset);
398
- border-color: var(--color-offset-active);
399
- color: var(--color-text);
398
+ border-color: var(--color-offset-variant);
399
+ color: var(--color-on-background);
400
400
  }
401
401
 
402
- .item-actions__button svg {
402
+ .ms-item-actions__button svg {
403
403
  height: 1em;
404
404
  width: 1em;
405
405
  }
406
406
 
407
- .item-actions__button--primary {
407
+ .ms-item-actions__button--primary {
408
408
  background: var(--color-primary);
409
409
  border-color: var(--color-primary);
410
410
  color: var(--color-background);
411
411
  }
412
412
 
413
- .item-actions__button--primary:hover {
414
- background: var(--color-primary-dark, var(--color-primary));
415
- border-color: var(--color-primary-dark, var(--color-primary));
413
+ .ms-item-actions__button--primary:hover {
414
+ background: var(--color-primary-variant);
415
+ border-color: var(--color-primary-variant);
416
416
  color: var(--color-background);
417
417
  }
418
418
 
419
- /* Mark as read button */
420
- .item-actions__mark-read {
419
+ /* Mark as read — split button group */
420
+ .ms-item-actions__mark-read-group {
421
+ display: inline-flex;
422
+ margin-left: auto;
423
+ position: relative;
424
+ }
425
+
426
+ .ms-item-actions__mark-read-group .ms-item-actions__mark-read {
427
+ border-bottom-right-radius: 0;
428
+ border-right: 0;
429
+ border-top-right-radius: 0;
430
+ margin-left: 0;
431
+ }
432
+
433
+ .ms-item-actions__mark-read-caret {
434
+ border-bottom-left-radius: 0;
435
+ border-top-left-radius: 0;
436
+ font-size: 0.625rem;
437
+ padding: var(--space-xs) 6px;
438
+ }
439
+
440
+ .ms-item-actions__mark-read-popover {
441
+ background: var(--color-background);
442
+ border: var(--border-width-thin) solid var(--color-offset-variant);
443
+ border-radius: var(--border-radius-small);
444
+ bottom: calc(100% + 4px);
445
+ box-shadow: 0 2px 8px hsl(var(--tint-neutral) 10% / 0.15);
446
+ padding: var(--space-xs);
447
+ position: absolute;
448
+ right: 0;
449
+ white-space: nowrap;
450
+ z-index: 10;
451
+ }
452
+
453
+ .ms-item-actions__mark-source-read {
454
+ background: transparent;
455
+ border: 0;
456
+ border-radius: var(--border-radius-small);
457
+ color: var(--color-on-background);
458
+ cursor: pointer;
459
+ font-size: var(--font-size-s);
460
+ padding: var(--space-xs) var(--space-s);
461
+ text-align: left;
462
+ width: 100%;
463
+ }
464
+
465
+ .ms-item-actions__mark-source-read:hover {
466
+ background: var(--color-offset);
467
+ }
468
+
469
+ /* Mark as read button (standalone, no split group) */
470
+ .ms-item-actions__mark-read {
421
471
  margin-left: auto;
422
472
  }
423
473
 
424
474
  /* Save for later button */
425
- .item-actions__save-later--saved {
426
- color: var(--color-accent, #4a9eff);
475
+ .ms-item-actions__save-later--saved {
476
+ color: var(--color-primary-on-background);
427
477
  opacity: 0.6;
428
478
  }
429
479
 
@@ -431,84 +481,84 @@
431
481
  Single Item View
432
482
  ========================================================================== */
433
483
 
434
- .item {
484
+ .ms-item {
435
485
  max-width: 40rem;
436
486
  }
437
487
 
438
- .item__header {
488
+ .ms-item__header {
439
489
  margin-bottom: var(--space-m);
440
490
  }
441
491
 
442
- .item__author {
492
+ .ms-item__author {
443
493
  align-items: center;
444
494
  display: flex;
445
495
  gap: var(--space-s);
446
496
  margin-bottom: var(--space-m);
447
497
  }
448
498
 
449
- .item__author-photo {
499
+ .ms-item__author-photo {
450
500
  border-radius: 50%;
451
501
  height: 48px;
452
502
  object-fit: cover;
453
503
  width: 48px;
454
504
  }
455
505
 
456
- .item__author-info {
506
+ .ms-item__author-info {
457
507
  display: flex;
458
508
  flex-direction: column;
459
509
  }
460
510
 
461
- .item__author-name {
511
+ .ms-item__author-name {
462
512
  font-weight: 600;
463
513
  }
464
514
 
465
- .item__date {
466
- color: var(--color-text-muted);
467
- font-size: var(--font-size-small);
515
+ .ms-item__date {
516
+ color: var(--color-on-offset);
517
+ font-size: var(--font-size-s);
468
518
  }
469
519
 
470
- .item__title {
471
- font-size: var(--font-size-heading-2);
520
+ .ms-item__title {
521
+ font-size: var(--font-size-xl);
472
522
  margin-bottom: var(--space-m);
473
523
  }
474
524
 
475
- .item__content {
525
+ .ms-item__content {
476
526
  line-height: 1.6;
477
527
  margin-bottom: var(--space-m);
478
528
  }
479
529
 
480
- .item__content img {
481
- border-radius: var(--border-radius);
530
+ .ms-item__content img {
531
+ border-radius: var(--border-radius-small);
482
532
  height: auto;
483
533
  max-width: 100%;
484
534
  }
485
535
 
486
- .item__photos {
536
+ .ms-item__photos {
487
537
  display: grid;
488
538
  gap: var(--space-s);
489
539
  margin-bottom: var(--space-m);
490
540
  }
491
541
 
492
- .item__photo {
493
- border-radius: var(--border-radius);
542
+ .ms-item__photo {
543
+ border-radius: var(--border-radius-small);
494
544
  width: 100%;
495
545
  }
496
546
 
497
- .item__context {
547
+ .ms-item__context {
498
548
  background: var(--color-offset);
499
- border-radius: var(--border-radius);
549
+ border-radius: var(--border-radius-small);
500
550
  margin-bottom: var(--space-m);
501
551
  padding: var(--space-m);
502
552
  }
503
553
 
504
- .item__context-label {
505
- color: var(--color-text-muted);
506
- font-size: var(--font-size-small);
554
+ .ms-item__context-label {
555
+ color: var(--color-on-offset);
556
+ font-size: var(--font-size-s);
507
557
  margin-bottom: var(--space-xs);
508
558
  }
509
559
 
510
- .item__actions {
511
- border-top: 1px solid var(--color-offset);
560
+ .ms-item__actions {
561
+ border-top: var(--border-width-thin) solid var(--color-offset);
512
562
  display: flex;
513
563
  flex-wrap: wrap;
514
564
  gap: var(--space-s);
@@ -519,7 +569,7 @@
519
569
  Channel Header
520
570
  ========================================================================== */
521
571
 
522
- .channel__header {
572
+ .ms-channel__header {
523
573
  align-items: center;
524
574
  display: flex;
525
575
  flex-wrap: wrap;
@@ -528,7 +578,7 @@
528
578
  margin-bottom: var(--space-m);
529
579
  }
530
580
 
531
- .channel__actions {
581
+ .ms-channel__actions {
532
582
  display: flex;
533
583
  gap: var(--space-xs);
534
584
  }
@@ -537,13 +587,13 @@
537
587
  Feeds Management
538
588
  ========================================================================== */
539
589
 
540
- .feeds {
590
+ .ms-feeds {
541
591
  display: flex;
542
592
  flex-direction: column;
543
593
  gap: var(--space-m);
544
594
  }
545
595
 
546
- .feeds__header {
596
+ .ms-feeds__header {
547
597
  align-items: center;
548
598
  display: flex;
549
599
  flex-wrap: wrap;
@@ -551,65 +601,65 @@
551
601
  justify-content: space-between;
552
602
  }
553
603
 
554
- .feeds__list {
604
+ .ms-feeds__list {
555
605
  display: flex;
556
606
  flex-direction: column;
557
607
  gap: var(--space-s);
558
608
  }
559
609
 
560
- .feeds__item {
610
+ .ms-feeds__item {
561
611
  align-items: center;
562
612
  background: var(--color-offset);
563
- border-radius: var(--border-radius);
613
+ border-radius: var(--border-radius-small);
564
614
  display: flex;
565
615
  gap: var(--space-m);
566
616
  padding: var(--space-m);
567
617
  }
568
618
 
569
- .feeds__photo {
570
- border-radius: var(--border-radius);
619
+ .ms-feeds__photo {
620
+ border-radius: var(--border-radius-small);
571
621
  flex-shrink: 0;
572
622
  height: 48px;
573
623
  object-fit: cover;
574
624
  width: 48px;
575
625
  }
576
626
 
577
- .feeds__info {
627
+ .ms-feeds__info {
578
628
  flex: 1;
579
629
  min-width: 0;
580
630
  }
581
631
 
582
- .feeds__name {
632
+ .ms-feeds__name {
583
633
  font-weight: 600;
584
634
  overflow: hidden;
585
635
  text-overflow: ellipsis;
586
636
  white-space: nowrap;
587
637
  }
588
638
 
589
- .feeds__url {
590
- color: var(--color-text-muted);
591
- font-size: var(--font-size-small);
639
+ .ms-feeds__url {
640
+ color: var(--color-on-offset);
641
+ font-size: var(--font-size-s);
592
642
  overflow: hidden;
593
643
  text-overflow: ellipsis;
594
644
  white-space: nowrap;
595
645
  }
596
646
 
597
- .feeds__actions {
647
+ .ms-feeds__actions {
598
648
  flex-shrink: 0;
599
649
  }
600
650
 
601
- .feeds__add {
651
+ .ms-feeds__add {
602
652
  background: var(--color-offset);
603
- border-radius: var(--border-radius);
653
+ border-radius: var(--border-radius-small);
604
654
  padding: var(--space-m);
605
655
  }
606
656
 
607
- .feeds__form {
657
+ .ms-feeds__form {
608
658
  display: flex;
609
659
  gap: var(--space-s);
610
660
  }
611
661
 
612
- .feeds__form input {
662
+ .ms-feeds__form input {
613
663
  flex: 1;
614
664
  }
615
665
 
@@ -617,48 +667,48 @@
617
667
  Search
618
668
  ========================================================================== */
619
669
 
620
- .search {
670
+ .ms-search {
621
671
  display: flex;
622
672
  flex-direction: column;
623
673
  gap: var(--space-m);
624
674
  }
625
675
 
626
- .search__form {
676
+ .ms-search__form {
627
677
  display: flex;
628
678
  gap: var(--space-s);
629
679
  }
630
680
 
631
- .search__form input {
681
+ .ms-search__form input {
632
682
  flex: 1;
633
683
  }
634
684
 
635
- .search__results {
685
+ .ms-search__results {
636
686
  margin-top: var(--space-m);
637
687
  }
638
688
 
639
- .search__list {
689
+ .ms-search__list {
640
690
  display: flex;
641
691
  flex-direction: column;
642
692
  gap: var(--space-s);
643
693
  }
644
694
 
645
- .search__item {
695
+ .ms-search__item {
646
696
  align-items: center;
647
697
  background: var(--color-offset);
648
- border-radius: var(--border-radius);
698
+ border-radius: var(--border-radius-small);
649
699
  display: flex;
650
700
  justify-content: space-between;
651
701
  padding: var(--space-m);
652
702
  }
653
703
 
654
- .search__feed {
704
+ .ms-search__feed {
655
705
  flex: 1;
656
706
  min-width: 0;
657
707
  }
658
708
 
659
- .search__url {
660
- color: var(--color-text-muted);
661
- font-size: var(--font-size-small);
709
+ .ms-search__url {
710
+ color: var(--color-on-offset);
711
+ font-size: var(--font-size-s);
662
712
  overflow: hidden;
663
713
  text-overflow: ellipsis;
664
714
  white-space: nowrap;
@@ -668,20 +718,20 @@
668
718
  Compose
669
719
  ========================================================================== */
670
720
 
671
- .compose {
721
+ .ms-compose {
672
722
  max-width: 40rem;
673
723
  }
674
724
 
675
- .compose__context {
725
+ .ms-compose__context {
676
726
  background: var(--color-offset);
677
- border-radius: var(--border-radius);
727
+ border-radius: var(--border-radius-small);
678
728
  margin-bottom: var(--space-m);
679
729
  padding: var(--space-m);
680
730
  }
681
731
 
682
- .compose__counter {
683
- color: var(--color-text-muted);
684
- font-size: var(--font-size-small);
732
+ .ms-compose__counter {
733
+ color: var(--color-on-offset);
734
+ font-size: var(--font-size-s);
685
735
  margin-top: var(--space-xs);
686
736
  text-align: right;
687
737
  }
@@ -690,19 +740,19 @@
690
740
  Settings
691
741
  ========================================================================== */
692
742
 
693
- .settings {
743
+ .ms-settings {
694
744
  max-width: 40rem;
695
745
  }
696
746
 
697
- .settings .divider {
698
- border-top: 1px solid var(--color-offset);
747
+ .ms-settings .divider {
748
+ border-top: var(--border-width-thin) solid var(--color-offset);
699
749
  margin: var(--space-l) 0;
700
750
  }
701
751
 
702
- .settings .danger-zone {
703
- background: rgba(var(--color-error-rgb, 255, 0, 0), 0.1);
704
- border: 1px solid var(--color-error);
705
- border-radius: var(--border-radius);
752
+ .ms-settings .danger-zone {
753
+ background: var(--color-red90);
754
+ border: var(--border-width-thin) solid var(--color-red45);
755
+ border-radius: var(--border-radius-small);
706
756
  padding: var(--space-m);
707
757
  }
708
758
 
@@ -710,8 +760,8 @@
710
760
  Keyboard Navigation Focus
711
761
  ========================================================================== */
712
762
 
713
- .item-card:focus-within,
714
- .item-card.item-card--focused {
763
+ .ms-item-card:focus-within,
764
+ .ms-item-card.ms-item-card--focused {
715
765
  outline: 2px solid var(--color-primary);
716
766
  outline-offset: 2px;
717
767
  }
@@ -720,13 +770,13 @@
720
770
  Empty States
721
771
  ========================================================================== */
722
772
 
723
- .reader__empty {
724
- color: var(--color-text-muted);
773
+ .ms-reader__empty {
774
+ color: var(--color-on-offset);
725
775
  padding: var(--space-xl);
726
776
  text-align: center;
727
777
  }
728
778
 
729
- .reader__empty svg {
779
+ .ms-reader__empty svg {
730
780
  height: 4rem;
731
781
  margin-bottom: var(--space-m);
732
782
  opacity: 0.5;
@@ -738,32 +788,32 @@
738
788
  ========================================================================== */
739
789
 
740
790
  @media (max-width: 640px) {
741
- .item-card__photos--3 {
791
+ .ms-item-card__photos--3 {
742
792
  grid-template-columns: 1fr 1fr;
743
793
  grid-template-rows: auto auto;
744
794
  }
745
795
 
746
- .item-card__photos--3 .item-card__photo:first-child {
796
+ .ms-item-card__photos--3 .ms-item-card__photo:first-child {
747
797
  grid-column: 1 / 3;
748
798
  grid-row: 1;
749
799
  height: 200px;
750
800
  }
751
801
 
752
- .item-card__photos--3 .item-card__photo:nth-child(2),
753
- .item-card__photos--3 .item-card__photo:nth-child(3) {
802
+ .ms-item-card__photos--3 .ms-item-card__photo:nth-child(2),
803
+ .ms-item-card__photos--3 .ms-item-card__photo:nth-child(3) {
754
804
  height: 100px;
755
805
  }
756
806
 
757
- .feeds__item {
807
+ .ms-feeds__item {
758
808
  flex-wrap: wrap;
759
809
  }
760
810
 
761
- .feeds__info {
811
+ .ms-feeds__info {
762
812
  order: 1;
763
813
  width: calc(100% - 64px);
764
814
  }
765
815
 
766
- .feeds__actions {
816
+ .ms-feeds__actions {
767
817
  margin-top: var(--space-s);
768
818
  order: 2;
769
819
  width: 100%;
@@ -776,7 +826,7 @@
776
826
 
777
827
  /* Extend Indiekit badges with small variant for inline use */
778
828
  .badge--small {
779
- font-size: var(--font-size-small);
829
+ font-size: var(--font-size-s);
780
830
  padding: 2px var(--space-xs);
781
831
  }
782
832
 
@@ -784,33 +834,33 @@
784
834
  Search Enhancements (feed validation)
785
835
  ========================================================================== */
786
836
 
787
- .search__name {
837
+ .ms-search__name {
788
838
  display: block;
789
839
  font-weight: 600;
790
840
  margin-bottom: var(--space-xs);
791
841
  }
792
842
 
793
- .search__type {
843
+ .ms-search__type {
794
844
  margin-left: var(--space-xs);
795
845
  }
796
846
 
797
- .search__error {
798
- color: var(--color-error, #ff4444);
847
+ .ms-search__error {
848
+ color: var(--color-red45);
799
849
  display: block;
800
- font-size: var(--font-size-small);
850
+ font-size: var(--font-size-s);
801
851
  margin-top: var(--space-xs);
802
852
  }
803
853
 
804
- .search__item--invalid {
854
+ .ms-search__item--invalid {
805
855
  opacity: 0.7;
806
856
  }
807
857
 
808
- .search__item--comments {
809
- border-left: 3px solid var(--color-warning, #ffcc00);
858
+ .ms-search__item--comments {
859
+ border-left: 3px solid var(--color-yellow50);
810
860
  }
811
861
 
812
862
 
813
- .search__subscribe {
863
+ .ms-search__subscribe {
814
864
  align-items: center;
815
865
  display: flex;
816
866
  gap: var(--space-s);
@@ -820,72 +870,72 @@
820
870
  Notices (inline errors, warnings)
821
871
  ========================================================================== */
822
872
 
823
- .notice {
824
- border-radius: var(--border-radius-small, var(--border-radius));
873
+ .ms-notice {
874
+ border-radius: var(--border-radius-small);
825
875
  margin-bottom: var(--space-m);
826
876
  padding: var(--space-m);
827
877
  }
828
878
 
829
- .notice--error {
830
- background: var(--color-red90, #fef2f2);
831
- border: 1px solid var(--color-error, var(--color-red45));
832
- color: var(--color-red10, #7f1d1d);
879
+ .ms-notice--error {
880
+ background: var(--color-red90);
881
+ border: var(--border-width-thin) solid var(--color-red45);
882
+ color: var(--color-red10);
833
883
  }
834
884
 
835
- .notice--warning {
836
- background: var(--color-yellow90, #fefce8);
837
- border: 1px solid var(--color-yellow50, #eab308);
838
- color: var(--color-yellow10, #713f12);
885
+ .ms-notice--warning {
886
+ background: var(--color-yellow90);
887
+ border: var(--border-width-thin) solid var(--color-yellow50);
888
+ color: var(--color-yellow10);
839
889
  }
840
890
 
841
- .notice--success {
842
- background: var(--color-green90, #f0fdf4);
843
- border: 1px solid var(--color-success, var(--color-green50));
844
- color: var(--color-green10, #14532d);
891
+ .ms-notice--success {
892
+ background: var(--color-green90);
893
+ border: var(--border-width-thin) solid var(--color-green50);
894
+ color: var(--color-green10);
845
895
  }
846
896
 
847
897
  /* ==========================================================================
848
898
  Feed Management Enhancements
849
899
  ========================================================================== */
850
900
 
851
- .feeds__item--error {
852
- border-left: 3px solid var(--color-error, #ff4444);
901
+ .ms-feeds__item--error {
902
+ border-left: 3px solid var(--color-red45);
853
903
  }
854
904
 
855
- .feeds__error {
856
- color: var(--color-error, #ff4444);
905
+ .ms-feeds__error {
906
+ color: var(--color-red45);
857
907
  display: block;
858
- font-size: var(--font-size-small);
908
+ font-size: var(--font-size-s);
859
909
  margin-top: var(--space-xs);
860
910
  }
861
911
 
862
- .feeds__error-count {
863
- color: var(--color-warning, #ffcc00);
912
+ .ms-feeds__error-count {
913
+ color: var(--color-yellow50);
864
914
  display: block;
865
- font-size: var(--font-size-small);
915
+ font-size: var(--font-size-s);
866
916
  }
867
917
 
868
- .feeds__meta {
869
- color: var(--color-text-muted);
918
+ .ms-feeds__meta {
919
+ color: var(--color-on-offset);
870
920
  display: block;
871
- font-size: var(--font-size-small);
921
+ font-size: var(--font-size-s);
872
922
  }
873
923
 
874
- .feeds__details {
924
+ .ms-feeds__details {
875
925
  display: flex;
876
926
  flex-direction: column;
877
927
  flex: 1;
878
928
  min-width: 0;
879
929
  }
880
930
 
881
- .feeds__actions {
931
+ .ms-feeds__actions {
882
932
  align-items: center;
883
933
  display: flex;
884
934
  flex-shrink: 0;
885
935
  gap: var(--space-xs);
886
936
  }
887
937
 
888
- .feeds__actions form {
938
+ .ms-feeds__actions form {
889
939
  display: inline;
890
940
  margin: 0;
891
941
  }
@@ -895,51 +945,51 @@
895
945
  Feed Edit Page
896
946
  ========================================================================== */
897
947
 
898
- .feed-edit {
948
+ .ms-feed-edit {
899
949
  max-width: 40rem;
900
950
  }
901
951
 
902
- .feed-edit__current {
952
+ .ms-feed-edit__current {
903
953
  background: var(--color-offset);
904
- border-radius: var(--border-radius);
954
+ border-radius: var(--border-radius-small);
905
955
  margin-bottom: var(--space-l);
906
956
  padding: var(--space-m);
907
957
  }
908
958
 
909
- .feed-edit__url {
910
- color: var(--color-text-muted);
911
- font-size: var(--font-size-small);
959
+ .ms-feed-edit__url {
960
+ color: var(--color-on-offset);
961
+ font-size: var(--font-size-s);
912
962
  overflow-wrap: break-word;
913
963
  word-break: break-all;
914
964
  }
915
965
 
916
- .feed-edit__title {
966
+ .ms-feed-edit__title {
917
967
  font-weight: 600;
918
968
  }
919
969
 
920
- .feed-edit__form {
970
+ .ms-feed-edit__form {
921
971
  margin-bottom: var(--space-l);
922
972
  }
923
973
 
924
- .feed-edit__help {
925
- color: var(--color-text-muted);
926
- font-size: var(--font-size-small);
974
+ .ms-feed-edit__help {
975
+ color: var(--color-on-offset);
976
+ font-size: var(--font-size-s);
927
977
  margin-bottom: var(--space-m);
928
978
  }
929
979
 
930
- .feed-edit__actions {
980
+ .ms-feed-edit__actions {
931
981
  display: flex;
932
982
  flex-direction: column;
933
983
  gap: var(--space-m);
934
984
  }
935
985
 
936
- .feed-edit__action {
986
+ .ms-feed-edit__action {
937
987
  background: var(--color-offset);
938
- border-radius: var(--border-radius);
988
+ border-radius: var(--border-radius-small);
939
989
  padding: var(--space-m);
940
990
  }
941
991
 
942
- .feed-edit__action p {
992
+ .ms-feed-edit__action p {
943
993
  margin-bottom: var(--space-s);
944
994
  }
945
995
 
@@ -947,54 +997,54 @@
947
997
  Actor Profile
948
998
  ========================================================================== */
949
999
 
950
- .actor-profile {
1000
+ .ms-actor-profile {
951
1001
  background: var(--color-offset);
952
- border-radius: var(--border-radius);
1002
+ border-radius: var(--border-radius-small);
953
1003
  margin-bottom: var(--space-m);
954
1004
  padding: var(--space-m);
955
1005
  }
956
1006
 
957
- .actor-profile__header {
1007
+ .ms-actor-profile__header {
958
1008
  align-items: flex-start;
959
1009
  display: flex;
960
1010
  gap: var(--space-m);
961
1011
  }
962
1012
 
963
- .actor-profile__avatar {
1013
+ .ms-actor-profile__avatar {
964
1014
  border-radius: 50%;
965
1015
  flex-shrink: 0;
966
1016
  object-fit: cover;
967
1017
  }
968
1018
 
969
- .actor-profile__info {
1019
+ .ms-actor-profile__info {
970
1020
  flex: 1;
971
1021
  min-width: 0;
972
1022
  }
973
1023
 
974
- .actor-profile__name {
1024
+ .ms-actor-profile__name {
975
1025
  font-size: 1.25em;
976
1026
  margin: 0 0 2px;
977
1027
  }
978
1028
 
979
- .actor-profile__handle {
980
- color: var(--color-text-muted, #666);
1029
+ .ms-actor-profile__handle {
1030
+ color: var(--color-on-offset);
981
1031
  font-size: 0.9em;
982
1032
  }
983
1033
 
984
- .actor-profile__summary {
1034
+ .ms-actor-profile__summary {
985
1035
  font-size: 0.9em;
986
1036
  margin: var(--space-xs) 0 0;
987
1037
  }
988
1038
 
989
- .actor-profile__stats {
990
- color: var(--color-text-muted, #666);
1039
+ .ms-actor-profile__stats {
1040
+ color: var(--color-on-offset);
991
1041
  display: flex;
992
1042
  font-size: 0.85em;
993
1043
  gap: var(--space-m);
994
1044
  margin-top: var(--space-xs);
995
1045
  }
996
1046
 
997
- .actor-profile__actions {
1047
+ .ms-actor-profile__actions {
998
1048
  display: flex;
999
1049
  gap: var(--space-s);
1000
1050
  margin-top: var(--space-s);
@@ -1004,8 +1054,8 @@
1004
1054
  AP Badge
1005
1055
  ========================================================================== */
1006
1056
 
1007
- .item-card__badge {
1008
- border-radius: 3px;
1057
+ .ms-item-card__badge {
1058
+ border-radius: var(--border-radius-small);
1009
1059
  display: inline-block;
1010
1060
  font-size: 0.7em;
1011
1061
  font-weight: 600;
@@ -1016,69 +1066,69 @@
1016
1066
  vertical-align: middle;
1017
1067
  }
1018
1068
 
1019
- .item-card__badge--ap {
1020
- background: #7c3aed20;
1021
- color: #7c3aed;
1069
+ .ms-item-card__badge--ap {
1070
+ background: hsl(var(--tint-purple) 45% / 0.12);
1071
+ color: var(--color-purple45);
1022
1072
  }
1023
1073
 
1024
1074
  /* ==========================================================================
1025
1075
  Breadcrumbs
1026
1076
  ========================================================================== */
1027
1077
 
1028
- .breadcrumbs {
1078
+ .ms-breadcrumbs {
1029
1079
  margin-bottom: var(--space-xs);
1030
1080
  }
1031
1081
 
1032
- .breadcrumbs__list {
1082
+ .ms-breadcrumbs__list {
1033
1083
  align-items: center;
1034
1084
  display: flex;
1035
1085
  flex-wrap: wrap;
1036
- font-size: var(--font-size-small);
1086
+ font-size: var(--font-size-s);
1037
1087
  gap: 0;
1038
1088
  list-style: none;
1039
1089
  margin: 0;
1040
1090
  padding: 0;
1041
1091
  }
1042
1092
 
1043
- .breadcrumbs__item::before {
1044
- color: var(--color-text-muted);
1093
+ .ms-breadcrumbs__item::before {
1094
+ color: var(--color-on-offset);
1045
1095
  content: "/";
1046
1096
  margin: 0 var(--space-xs);
1047
1097
  }
1048
1098
 
1049
- .breadcrumbs__item:first-child::before {
1099
+ .ms-breadcrumbs__item:first-child::before {
1050
1100
  content: none;
1051
1101
  margin: 0;
1052
1102
  }
1053
1103
 
1054
- .breadcrumbs__link {
1104
+ .ms-breadcrumbs__link {
1055
1105
  color: var(--color-primary);
1056
1106
  text-decoration: none;
1057
1107
  }
1058
1108
 
1059
- .breadcrumbs__link:hover {
1109
+ .ms-breadcrumbs__link:hover {
1060
1110
  text-decoration: underline;
1061
1111
  }
1062
1112
 
1063
- .breadcrumbs__current {
1064
- color: var(--color-text-muted);
1113
+ .ms-breadcrumbs__current {
1114
+ color: var(--color-on-offset);
1065
1115
  }
1066
1116
 
1067
1117
  /* ==========================================================================
1068
1118
  View Switcher
1069
1119
  ========================================================================== */
1070
1120
 
1071
- .view-switcher {
1121
+ .ms-view-switcher {
1072
1122
  display: flex;
1073
1123
  gap: var(--space-xs);
1074
1124
  padding: var(--space-xs) 0;
1075
1125
  }
1076
1126
 
1077
- .view-switcher__button {
1127
+ .ms-view-switcher__button {
1078
1128
  align-items: center;
1079
- border: 1px solid var(--color-border, #ddd);
1080
- border-radius: var(--border-radius);
1081
- color: var(--color-text-muted);
1129
+ border: var(--border-width-thin) solid var(--color-outline);
1130
+ border-radius: var(--border-radius-small);
1131
+ color: var(--color-on-offset);
1082
1132
  display: flex;
1083
1133
  justify-content: center;
1084
1134
  padding: var(--space-xs);
@@ -1086,33 +1136,33 @@
1086
1136
  transition: background-color 0.2s ease, color 0.2s ease;
1087
1137
  }
1088
1138
 
1089
- .view-switcher__button:hover {
1139
+ .ms-view-switcher__button:hover {
1090
1140
  background: var(--color-offset);
1091
- color: var(--color-text);
1141
+ color: var(--color-on-background);
1092
1142
  }
1093
1143
 
1094
- .view-switcher__button--active {
1095
- background: var(--color-primary, #333);
1096
- border-color: var(--color-primary, #333);
1097
- color: #fff;
1144
+ .ms-view-switcher__button--active {
1145
+ background: var(--color-primary);
1146
+ border-color: var(--color-primary);
1147
+ color: var(--color-on-primary);
1098
1148
  }
1099
1149
 
1100
- .view-switcher__button--active:hover {
1101
- background: var(--color-primary, #333);
1102
- color: #fff;
1150
+ .ms-view-switcher__button--active:hover {
1151
+ background: var(--color-primary);
1152
+ color: var(--color-on-primary);
1103
1153
  }
1104
1154
 
1105
1155
  /* ==========================================================================
1106
1156
  Timeline View (all channels chronological)
1107
1157
  ========================================================================== */
1108
1158
 
1109
- .timeline-view {
1159
+ .ms-timeline-view {
1110
1160
  display: flex;
1111
1161
  flex-direction: column;
1112
1162
  gap: var(--space-m);
1113
1163
  }
1114
1164
 
1115
- .timeline-view__header {
1165
+ .ms-timeline-view__header {
1116
1166
  align-items: center;
1117
1167
  display: flex;
1118
1168
  flex-wrap: wrap;
@@ -1120,13 +1170,13 @@
1120
1170
  justify-content: space-between;
1121
1171
  }
1122
1172
 
1123
- .timeline-view__item {
1173
+ .ms-timeline-view__item {
1124
1174
  position: relative;
1125
1175
  }
1126
1176
 
1127
- .timeline-view__channel-badge {
1128
- border-radius: 3px;
1129
- color: #fff;
1177
+ .ms-timeline-view__channel-badge {
1178
+ border-radius: var(--border-radius-small);
1179
+ color: var(--color-on-primary);
1130
1180
  display: inline-block;
1131
1181
  font-size: 0.6875rem;
1132
1182
  font-weight: 600;
@@ -1137,14 +1187,14 @@
1137
1187
  text-transform: uppercase;
1138
1188
  }
1139
1189
 
1140
- .timeline-view__filter {
1190
+ .ms-timeline-view__filter {
1141
1191
  position: relative;
1142
1192
  }
1143
1193
 
1144
- .timeline-view__filter-form {
1194
+ .ms-timeline-view__filter-form {
1145
1195
  background: var(--color-background);
1146
- border: 1px solid var(--color-border, #ddd);
1147
- border-radius: var(--border-radius);
1196
+ border: var(--border-width-thin) solid var(--color-outline);
1197
+ border-radius: var(--border-radius-small);
1148
1198
  display: flex;
1149
1199
  flex-direction: column;
1150
1200
  gap: var(--space-xs);
@@ -1156,15 +1206,15 @@
1156
1206
  z-index: 10;
1157
1207
  }
1158
1208
 
1159
- .timeline-view__filter-label {
1209
+ .ms-timeline-view__filter-label {
1160
1210
  align-items: center;
1161
1211
  cursor: pointer;
1162
1212
  display: flex;
1163
1213
  gap: var(--space-xs);
1164
1214
  }
1165
1215
 
1166
- .timeline-view__filter-color {
1167
- border-radius: 2px;
1216
+ .ms-timeline-view__filter-color {
1217
+ border-radius: var(--border-radius-small);
1168
1218
  display: inline-block;
1169
1219
  height: 12px;
1170
1220
  width: 12px;
@@ -1174,27 +1224,27 @@
1174
1224
  Compact Item Card (Deck view)
1175
1225
  ========================================================================== */
1176
1226
 
1177
- .item-card-compact {
1227
+ .ms-item-card-compact {
1178
1228
  background: var(--color-background);
1179
- border: 1px solid var(--color-border, #e0e0e0);
1180
- border-radius: var(--border-radius);
1229
+ border: var(--border-width-thin) solid var(--color-outline);
1230
+ border-radius: var(--border-radius-small);
1181
1231
  overflow: hidden;
1182
1232
  transition: background-color 0.2s ease;
1183
1233
  }
1184
1234
 
1185
- .item-card-compact:hover {
1235
+ .ms-item-card-compact:hover {
1186
1236
  background: var(--color-offset);
1187
1237
  }
1188
1238
 
1189
- .item-card-compact--read {
1239
+ .ms-item-card-compact--read {
1190
1240
  opacity: 0.7;
1191
1241
  }
1192
1242
 
1193
- .item-card-compact:not(.item-card-compact--read) {
1194
- border-left: 3px solid rgba(255, 204, 0, 0.8);
1243
+ .ms-item-card-compact:not(.ms-item-card-compact--read) {
1244
+ border-left: 3px solid hsl(var(--tint-yellow) 50% / 0.8);
1195
1245
  }
1196
1246
 
1197
- .item-card-compact__link {
1247
+ .ms-item-card-compact__link {
1198
1248
  color: inherit;
1199
1249
  display: flex;
1200
1250
  gap: var(--space-xs);
@@ -1202,21 +1252,21 @@
1202
1252
  text-decoration: none;
1203
1253
  }
1204
1254
 
1205
- .item-card-compact__photo {
1206
- border-radius: var(--border-radius);
1255
+ .ms-item-card-compact__photo {
1256
+ border-radius: var(--border-radius-small);
1207
1257
  flex-shrink: 0;
1208
1258
  height: 60px;
1209
1259
  object-fit: cover;
1210
1260
  width: 60px;
1211
1261
  }
1212
1262
 
1213
- .item-card-compact__body {
1263
+ .ms-item-card-compact__body {
1214
1264
  flex: 1;
1215
1265
  min-width: 0;
1216
1266
  overflow: hidden;
1217
1267
  }
1218
1268
 
1219
- .item-card-compact__title {
1269
+ .ms-item-card-compact__title {
1220
1270
  -webkit-box-orient: vertical;
1221
1271
  -webkit-line-clamp: 2;
1222
1272
  display: -webkit-box;
@@ -1227,10 +1277,10 @@
1227
1277
  overflow: hidden;
1228
1278
  }
1229
1279
 
1230
- .item-card-compact__text {
1280
+ .ms-item-card-compact__text {
1231
1281
  -webkit-box-orient: vertical;
1232
1282
  -webkit-line-clamp: 2;
1233
- color: var(--color-text-muted);
1283
+ color: var(--color-on-offset);
1234
1284
  display: -webkit-box;
1235
1285
  font-size: 0.8125rem;
1236
1286
  line-height: 1.4;
@@ -1238,28 +1288,28 @@
1238
1288
  overflow: hidden;
1239
1289
  }
1240
1290
 
1241
- .item-card-compact__meta {
1242
- color: var(--color-text-muted);
1291
+ .ms-item-card-compact__meta {
1292
+ color: var(--color-on-offset);
1243
1293
  display: flex;
1244
1294
  font-size: 0.75rem;
1245
1295
  gap: var(--space-xs);
1246
1296
  margin-top: 2px;
1247
1297
  }
1248
1298
 
1249
- .item-card-compact__source {
1299
+ .ms-item-card-compact__source {
1250
1300
  font-weight: 500;
1251
1301
  overflow: hidden;
1252
1302
  text-overflow: ellipsis;
1253
1303
  white-space: nowrap;
1254
1304
  }
1255
1305
 
1256
- .item-card-compact__date {
1306
+ .ms-item-card-compact__date {
1257
1307
  flex-shrink: 0;
1258
1308
  white-space: nowrap;
1259
1309
  }
1260
1310
 
1261
- .item-card-compact__unread {
1262
- color: rgba(255, 204, 0, 0.9);
1311
+ .ms-item-card-compact__unread {
1312
+ color: hsl(var(--tint-yellow) 50% / 0.9);
1263
1313
  flex-shrink: 0;
1264
1314
  font-size: 0.625rem;
1265
1315
  }
@@ -1268,13 +1318,13 @@
1268
1318
  Deck View (TweetDeck-style columns)
1269
1319
  ========================================================================== */
1270
1320
 
1271
- .deck {
1321
+ .ms-deck {
1272
1322
  display: flex;
1273
1323
  flex-direction: column;
1274
1324
  gap: var(--space-m);
1275
1325
  }
1276
1326
 
1277
- .deck__header {
1327
+ .ms-deck__header {
1278
1328
  align-items: center;
1279
1329
  display: flex;
1280
1330
  flex-wrap: wrap;
@@ -1282,7 +1332,7 @@
1282
1332
  justify-content: space-between;
1283
1333
  }
1284
1334
 
1285
- .deck__columns {
1335
+ .ms-deck__columns {
1286
1336
  display: flex;
1287
1337
  gap: var(--space-m);
1288
1338
  overflow-x: auto;
@@ -1290,16 +1340,16 @@
1290
1340
  scroll-snap-type: x mandatory;
1291
1341
  }
1292
1342
 
1293
- .deck__column {
1343
+ .ms-deck__column {
1294
1344
  flex-shrink: 0;
1295
1345
  scroll-snap-align: start;
1296
1346
  width: 320px;
1297
1347
  }
1298
1348
 
1299
- .deck__column-header {
1349
+ .ms-deck__column-header {
1300
1350
  align-items: center;
1301
1351
  background: var(--color-offset);
1302
- border-radius: var(--border-radius) var(--border-radius) 0 0;
1352
+ border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
1303
1353
  display: flex;
1304
1354
  gap: var(--space-s);
1305
1355
  justify-content: space-between;
@@ -1309,13 +1359,13 @@
1309
1359
  z-index: 1;
1310
1360
  }
1311
1361
 
1312
- .deck__column-name {
1362
+ .ms-deck__column-name {
1313
1363
  color: inherit;
1314
1364
  font-weight: 600;
1315
1365
  text-decoration: none;
1316
1366
  }
1317
1367
 
1318
- .deck__column-items {
1368
+ .ms-deck__column-items {
1319
1369
  display: flex;
1320
1370
  flex-direction: column;
1321
1371
  gap: var(--space-xs);
@@ -1324,28 +1374,28 @@
1324
1374
  padding: var(--space-xs);
1325
1375
  }
1326
1376
 
1327
- .deck__column-empty {
1328
- color: var(--color-text-muted);
1377
+ .ms-deck__column-empty {
1378
+ color: var(--color-on-offset);
1329
1379
  font-size: 0.875rem;
1330
1380
  padding: var(--space-m);
1331
1381
  text-align: center;
1332
1382
  }
1333
1383
 
1334
- .deck__column-more {
1384
+ .ms-deck__column-more {
1335
1385
  display: block;
1336
1386
  margin-top: var(--space-xs);
1337
1387
  text-align: center;
1338
1388
  }
1339
1389
 
1340
1390
  /* Deck settings */
1341
- .deck-settings__channels {
1391
+ .ms-deck-settings__channels {
1342
1392
  display: flex;
1343
1393
  flex-direction: column;
1344
1394
  gap: var(--space-xs);
1345
1395
  margin: var(--space-m) 0;
1346
1396
  }
1347
1397
 
1348
- .deck-settings__channel {
1398
+ .ms-deck-settings__channel {
1349
1399
  align-items: center;
1350
1400
  cursor: pointer;
1351
1401
  display: flex;