@nu-appdev/northwestern-starlight-theme 1.1.1 → 1.3.0

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 (45) hide show
  1. package/CHANGELOG.md +73 -2
  2. package/index.ts +84 -5
  3. package/mermaid.ts +196 -80
  4. package/package.json +19 -4
  5. package/src/components/Expandable.astro +19 -0
  6. package/src/components/Glossary.astro +11 -0
  7. package/src/components/Hero.astro +0 -2
  8. package/src/components/Kbd.astro +147 -0
  9. package/src/components/Property.astro +64 -0
  10. package/src/components/PropertyGroup.astro +13 -0
  11. package/src/components/PropertyTable.astro +54 -0
  12. package/src/components/Term.astro +29 -0
  13. package/src/components/Tooltip.astro +138 -0
  14. package/src/components/glossary-store.ts +12 -0
  15. package/src/components/index.ts +8 -0
  16. package/src/rehype-table-scroll.ts +35 -0
  17. package/src/scripts/mermaid/focus.ts +100 -0
  18. package/src/scripts/mermaid/fullscreen.ts +120 -0
  19. package/src/scripts/mermaid/index.ts +2 -0
  20. package/src/scripts/mermaid/overlay.ts +132 -0
  21. package/src/scripts/mermaid/pan-zoom.ts +285 -0
  22. package/src/scripts/mermaid/render.ts +143 -0
  23. package/src/scripts/mermaid/toolbar.ts +137 -0
  24. package/src/scripts/mermaid/ui.ts +265 -0
  25. package/src/styles/a11y.css +69 -0
  26. package/src/styles/components/blockquotes.css +37 -0
  27. package/src/styles/components/code.css +8 -5
  28. package/src/styles/components/footnotes.css +76 -0
  29. package/src/styles/components/kbd.css +69 -0
  30. package/src/styles/components/mermaid.css +4 -4
  31. package/src/styles/components/property-table.css +569 -0
  32. package/src/styles/components/steps.css +0 -3
  33. package/src/styles/components/tables.css +60 -0
  34. package/src/styles/components/tabs.css +0 -3
  35. package/src/styles/components/tooltip.css +145 -0
  36. package/src/styles/content.css +9 -94
  37. package/src/styles/layers.css +0 -7
  38. package/src/styles/mermaid-toolbar.css +91 -14
  39. package/src/styles/navigation.css +72 -16
  40. package/src/styles/openapi.css +0 -3
  41. package/src/styles/theme.css +0 -4
  42. package/src/styles/typography.css +4 -0
  43. package/src/styles/variables.css +0 -3
  44. package/src/virtual.d.ts +11 -0
  45. package/src/scripts/mermaid-toolbar.ts +0 -589
@@ -1,7 +1,7 @@
1
1
  /* ==========================================================================
2
2
  Mermaid — Structural SVG Overrides
3
3
 
4
- Only includes CSS that cannot be expressed through mermaid themeVariables:
4
+ Only includes CSS that cannot be expressed through Mermaid themeVariables:
5
5
  font enforcement, HTML label backgrounds, and diagram-specific structural
6
6
  fixes. Colors and contrast are handled by the TS config in mermaid.ts.
7
7
  ========================================================================== */
@@ -15,17 +15,17 @@ pre.mermaid,
15
15
  border: 1px solid var(--nu-border-color) !important;
16
16
  }
17
17
 
18
- /* Font — mermaid applies font via inline style, CSS !important needed */
18
+ /* Font — Mermaid applies font via inline style, CSS !important needed */
19
19
  .mermaid text {
20
20
  font-family: var(--nu-font-body) !important;
21
21
  }
22
22
 
23
- /* HTML labels inherit color from parent instead of mermaid's inline style */
23
+ /* HTML labels inherit color from parent instead of Mermaid's inline style */
24
24
  .mermaid .nodeLabel p {
25
25
  color: inherit !important;
26
26
  }
27
27
 
28
- /* Edge label HTML elements — mermaid uses <div> with inline background */
28
+ /* Edge label HTML elements — Mermaid uses <div> with inline background */
29
29
  .mermaid .edgeLabel,
30
30
  .mermaid .edgeLabel p {
31
31
  color: var(--nu-color-text, #342f2e) !important;
@@ -0,0 +1,569 @@
1
+ /* ==========================================================================
2
+ Property Table — Structured display for config options, props, and API params
3
+ ========================================================================== */
4
+
5
+ /* stylelint-disable selector-class-pattern */
6
+
7
+ @layer northwestern {
8
+ .nu-property-table {
9
+ margin: 1.5rem 0;
10
+ overflow: hidden;
11
+ background-color: var(--nu-card-bg);
12
+ border: 1px solid var(--nu-border-color);
13
+ border-top: 1px solid var(--nu-purple-100);
14
+ }
15
+
16
+ :root:not([data-theme="light"]) .nu-property-table {
17
+ border-top-color: var(--nu-purple-60);
18
+ }
19
+
20
+ .nu-property-table__header {
21
+ padding: 0.625rem 1rem;
22
+ font-family: var(--sl-font-system-mono);
23
+ font-size: var(--sl-text-sm);
24
+ font-weight: 600;
25
+ color: var(--nu-black-80);
26
+ background-color: var(--nu-purple-surface);
27
+ border-bottom: 1px solid var(--nu-border-color);
28
+ }
29
+
30
+ :root:not([data-theme="light"]) .nu-property-table__header {
31
+ color: var(--nu-color-text);
32
+ background-color: rgb(78 42 132 / 14%);
33
+ }
34
+
35
+ .nu-property-table__body {
36
+ padding: 0;
37
+ margin: 0;
38
+ }
39
+
40
+ .nu-property-table__body:empty {
41
+ display: none;
42
+ }
43
+
44
+ .nu-property-table:has(.nu-property-table__body:empty) {
45
+ display: none;
46
+ }
47
+
48
+ .nu-property {
49
+ padding: 0.875rem 1rem;
50
+ }
51
+
52
+ .nu-property + .nu-property {
53
+ border-top: 1px solid rgb(0 0 0 / 6%);
54
+ }
55
+
56
+ :root:not([data-theme="light"]) .nu-property + .nu-property {
57
+ border-top-color: rgb(255 255 255 / 6%);
58
+ }
59
+
60
+ .nu-property__head {
61
+ display: flex;
62
+ flex-wrap: wrap;
63
+ gap: 0.375rem 0.625rem;
64
+ align-items: center;
65
+ margin: 0;
66
+ font: inherit;
67
+ }
68
+
69
+ .nu-property__prop-col {
70
+ position: relative;
71
+ display: flex;
72
+ flex-wrap: wrap;
73
+ gap: 0.375rem;
74
+ align-items: center;
75
+ }
76
+
77
+ .nu-property__name {
78
+ display: inline-flex;
79
+ align-items: center;
80
+ padding: 0.1875rem 0.375rem;
81
+ font-family: var(--sl-font-system-mono);
82
+ font-size: var(--sl-text-sm);
83
+ font-weight: 700;
84
+ line-height: 1;
85
+ color: var(--sl-color-text-accent);
86
+ background-color: var(--nu-purple-surface);
87
+ border: 1px solid rgb(78 42 132 / 20%);
88
+ }
89
+
90
+ :root:not([data-theme="light"]) .nu-property__name {
91
+ background-color: rgb(255 255 255 / 6%);
92
+ border-color: rgb(255 255 255 / 12%);
93
+ }
94
+
95
+ .nu-property__anchor {
96
+ position: absolute;
97
+ top: 50%;
98
+ right: 100%;
99
+ padding-right: 0.25rem;
100
+ padding-bottom: 0;
101
+ font-family: var(--sl-font-system-mono);
102
+ font-size: var(--sl-text-sm);
103
+ font-weight: 400;
104
+ line-height: 1;
105
+ color: var(--nu-color-text-muted);
106
+ text-decoration: none !important;
107
+ border-bottom: none !important;
108
+ opacity: 0;
109
+ transform: translateY(-50%);
110
+ transition:
111
+ opacity var(--nu-transition-fast),
112
+ color var(--nu-transition-fast);
113
+ }
114
+
115
+ .nu-property:hover > .nu-property__head .nu-property__anchor,
116
+ .nu-property__anchor:focus-visible {
117
+ opacity: 1;
118
+ }
119
+
120
+ .nu-property:has(.nu-expandable:hover) > .nu-property__head .nu-property__anchor {
121
+ opacity: 0;
122
+ }
123
+
124
+ .nu-property__anchor:hover {
125
+ color: var(--nu-purple-60) !important;
126
+ border-bottom: none !important;
127
+ }
128
+
129
+ .nu-property__anchor:focus-visible {
130
+ outline: 2px solid var(--nu-focus-ring);
131
+ outline-offset: 2px;
132
+ opacity: 1;
133
+ }
134
+
135
+ .nu-property__type-link {
136
+ color: inherit;
137
+ text-decoration: none !important;
138
+ border-bottom: none !important;
139
+ }
140
+
141
+ .nu-property__type-link .nu-property__type {
142
+ text-decoration: underline;
143
+ text-decoration-style: dashed;
144
+ text-decoration-color: var(--nu-border-color);
145
+ text-underline-offset: 2px;
146
+ transition: text-decoration-color var(--nu-transition-fast);
147
+ }
148
+
149
+ .nu-property__type-link:hover .nu-property__type {
150
+ text-decoration-color: var(--sl-color-text-accent);
151
+ }
152
+
153
+ .nu-property__type-link:focus-visible {
154
+ outline: 2px solid var(--nu-focus-ring);
155
+ outline-offset: 2px;
156
+ }
157
+
158
+ .nu-property__type {
159
+ padding: 0;
160
+ font-family: var(--sl-font-system-mono);
161
+ font-size: var(--sl-text-sm);
162
+ font-weight: 400;
163
+ line-height: 1;
164
+ color: var(--nu-color-text-muted);
165
+ background: none;
166
+ border: none;
167
+ }
168
+
169
+ .nu-property__default-col {
170
+ display: inline-flex;
171
+ align-items: center;
172
+ }
173
+
174
+ .nu-property__badges {
175
+ display: flex;
176
+ flex-wrap: wrap;
177
+ gap: 0.3rem;
178
+ align-items: center;
179
+ }
180
+
181
+ .nu-property__badge {
182
+ display: inline-flex;
183
+ align-items: center;
184
+ padding: 0.125rem 0.375rem;
185
+ font-family: var(--nu-font-body);
186
+ font-size: 0.625rem;
187
+ font-weight: 700;
188
+ line-height: 1;
189
+ text-transform: uppercase;
190
+ letter-spacing: 0.04em;
191
+ border-style: solid;
192
+ border-width: 1px;
193
+ }
194
+
195
+ .nu-property__badge code {
196
+ font-family: var(--sl-font-system-mono);
197
+ font-size: inherit;
198
+ font-weight: 500;
199
+ color: inherit;
200
+ text-transform: none;
201
+ letter-spacing: normal;
202
+ background: none;
203
+ border: none;
204
+ }
205
+
206
+ .nu-property__badge--required {
207
+ color: color-mix(in srgb, var(--nu-dark-orange), black 25%);
208
+ background-color: rgb(239 85 63 / 8%);
209
+ border-color: rgb(239 85 63 / 22%);
210
+ }
211
+
212
+ :root:not([data-theme="light"]) .nu-property__badge--required {
213
+ color: #fca5a5;
214
+ background-color: rgb(239 85 63 / 10%);
215
+ border-color: rgb(239 85 63 / 22%);
216
+ }
217
+
218
+ .nu-property__badge--default {
219
+ font-weight: 400;
220
+ color: var(--nu-color-text-muted);
221
+ text-transform: none;
222
+ letter-spacing: normal;
223
+ background-color: rgb(78 42 132 / 6%);
224
+ border-color: rgb(78 42 132 / 15%);
225
+ }
226
+
227
+ .nu-property__badge--default code {
228
+ font-weight: 400;
229
+ }
230
+
231
+ :root:not([data-theme="light"]) .nu-property__badge--default {
232
+ background-color: rgb(147 128 182 / 8%);
233
+ border-color: rgb(147 128 182 / 15%);
234
+ }
235
+
236
+ .nu-property__badge--since {
237
+ color: color-mix(in srgb, var(--nu-dark-teal), black 10%);
238
+ background-color: rgb(127 206 205 / 10%);
239
+ border-color: rgb(127 206 205 / 25%);
240
+ }
241
+
242
+ :root:not([data-theme="light"]) .nu-property__badge--since {
243
+ color: var(--nu-teal);
244
+ background-color: rgb(127 206 205 / 10%);
245
+ border-color: rgb(127 206 205 / 22%);
246
+ }
247
+
248
+ .nu-property__badge--deprecated {
249
+ color: var(--nu-color-text-muted);
250
+ background-color: var(--nu-surface-muted);
251
+ border-color: var(--nu-border-color);
252
+ }
253
+
254
+ .nu-property__description {
255
+ margin: 0.25rem 0 0;
256
+ font-size: var(--sl-text-sm);
257
+ line-height: 1.5;
258
+ color: var(--nu-color-text-muted);
259
+ }
260
+
261
+ .nu-property__description:empty {
262
+ display: none;
263
+ }
264
+
265
+ .nu-property__description > :first-child {
266
+ margin-top: 0;
267
+ }
268
+
269
+ .nu-property__description > :last-child {
270
+ margin-bottom: 0;
271
+ }
272
+
273
+ .nu-property__description code:not(.nu-property__name, .nu-property__type) {
274
+ padding: 0.1rem 0.3rem;
275
+ color: var(--nu-color-text);
276
+ background-color: var(--nu-surface-muted);
277
+ }
278
+
279
+ :root:not([data-theme="light"]) .nu-property__description code:not(.nu-property__name, .nu-property__type) {
280
+ background-color: rgb(255 255 255 / 6%);
281
+ }
282
+
283
+ .nu-property-table--show-optional
284
+ .nu-property:not(.nu-property--required, .nu-property--deprecated)
285
+ .nu-property__prop-col::after {
286
+ display: inline-flex;
287
+ align-items: center;
288
+ font-family: var(--nu-font-body);
289
+ font-size: 0.625rem;
290
+ font-style: italic;
291
+ font-weight: 400;
292
+ line-height: 1;
293
+ color: var(--nu-color-text-muted);
294
+ content: "Optional";
295
+ }
296
+
297
+ .nu-property--deprecated .nu-property__name {
298
+ color: var(--nu-color-text-muted);
299
+ text-decoration: line-through;
300
+ background-color: var(--nu-surface-muted);
301
+ border-color: var(--nu-border-color);
302
+ }
303
+
304
+ .nu-property--deprecated .nu-property__type {
305
+ color: #6b6665;
306
+ }
307
+
308
+ :root:not([data-theme="light"]) .nu-property--deprecated .nu-property__type {
309
+ color: var(--nu-color-text-muted);
310
+ }
311
+
312
+ .nu-property-group + .nu-property-group,
313
+ .nu-property + .nu-property-group {
314
+ border-top: 1px solid var(--nu-border-color);
315
+ }
316
+
317
+ .nu-property-group__title {
318
+ padding: 0.5rem 1rem;
319
+ font-family: var(--nu-font-heading);
320
+ font-size: var(--sl-text-xs);
321
+ font-weight: 700;
322
+ color: var(--nu-color-text-muted);
323
+ text-transform: uppercase;
324
+ letter-spacing: 0.06em;
325
+ background-color: var(--nu-surface-muted);
326
+ border-inline-start: 1px solid var(--nu-purple-100);
327
+ }
328
+
329
+ :root:not([data-theme="light"]) .nu-property-group__title {
330
+ background-color: rgb(255 255 255 / 3%);
331
+ border-inline-start-color: var(--nu-purple-60);
332
+ }
333
+
334
+ .nu-property-table--table .nu-property-group__title {
335
+ grid-column: 1 / -1;
336
+ }
337
+
338
+ .nu-expandable {
339
+ margin-top: 0.625rem;
340
+ }
341
+
342
+ .nu-expandable__toggle {
343
+ padding: 0.25rem 0.5rem;
344
+ margin-bottom: 0;
345
+ font-family: var(--sl-font-system-mono);
346
+ font-size: 0.6875rem;
347
+ font-weight: 500;
348
+ color: var(--nu-color-text-muted);
349
+ letter-spacing: 0.02em;
350
+ cursor: pointer;
351
+ user-select: none;
352
+ transition:
353
+ color var(--nu-transition-fast),
354
+ background-color var(--nu-transition-fast);
355
+ }
356
+
357
+ .nu-expandable__toggle:hover {
358
+ color: var(--sl-color-text-accent);
359
+ background-color: var(--nu-purple-surface-subtle);
360
+ }
361
+
362
+ :root:not([data-theme="light"]) .nu-expandable__toggle:hover {
363
+ background-color: rgb(255 255 255 / 5%);
364
+ }
365
+
366
+ .nu-expandable__toggle:focus-visible {
367
+ outline: 2px solid var(--nu-focus-ring);
368
+ outline-offset: 2px;
369
+ }
370
+
371
+ .nu-expandable__content {
372
+ margin-top: 0;
373
+ }
374
+
375
+ .nu-expandable__nested {
376
+ margin-inline-start: 0.675rem;
377
+ margin-top: 0.625rem;
378
+ margin-bottom: 0.25rem;
379
+ overflow: hidden;
380
+ border-inline-start: 1px solid var(--nu-purple-40);
381
+ }
382
+
383
+ :root:not([data-theme="light"]) .nu-expandable__nested {
384
+ border-inline-start-color: var(--nu-purple-110);
385
+ }
386
+
387
+ .nu-expandable__nested .nu-property {
388
+ padding: 0.625rem 0.75rem 0.625rem 1.25rem;
389
+ }
390
+
391
+ .nu-expandable__nested .nu-property + .nu-property {
392
+ border-top: 1px solid rgb(0 0 0 / 6%);
393
+ }
394
+
395
+ :root:not([data-theme="light"]) .nu-expandable__nested .nu-property + .nu-property {
396
+ border-top-color: rgb(255 255 255 / 6%);
397
+ }
398
+
399
+ .nu-property-table:not(.nu-property-table--table) .nu-property__default-col:empty {
400
+ display: none;
401
+ }
402
+
403
+ .nu-property-table__columns {
404
+ display: grid;
405
+ grid-template-columns: repeat(var(--nu-pt-columns, 3), 1fr);
406
+ gap: 0 1rem;
407
+ align-items: center;
408
+ padding: 0.5625rem 1rem;
409
+ margin-top: 0;
410
+ font-family: var(--nu-font-body);
411
+ font-size: 0.625rem;
412
+ font-weight: 500;
413
+ line-height: 1;
414
+ color: var(--nu-color-text-muted);
415
+ text-transform: uppercase;
416
+ letter-spacing: 0.08em;
417
+ background-color: var(--nu-purple-surface-subtle);
418
+ border-bottom: 1px solid rgb(0 0 0 / 6%);
419
+ }
420
+
421
+ :root:not([data-theme="light"]) .nu-property-table__columns {
422
+ background-color: rgb(78 42 132 / 6%);
423
+ border-bottom-color: rgb(255 255 255 / 6%);
424
+ }
425
+
426
+ .nu-property-table--table[style*="--nu-pt-columns: 3"] .nu-property-table__columns {
427
+ grid-template-columns: 1.2fr 1.5fr 0.8fr;
428
+ }
429
+
430
+ .nu-property-table--table .nu-property {
431
+ display: grid;
432
+ grid-template-columns: repeat(var(--nu-pt-columns, 3), 1fr);
433
+ gap: 0 1rem;
434
+ align-items: center;
435
+ padding: 0.625rem 1rem;
436
+ }
437
+
438
+ .nu-property-table--table[style*="--nu-pt-columns: 3"] .nu-property {
439
+ grid-template-columns: 1.2fr 1.5fr 0.8fr;
440
+ }
441
+
442
+ .nu-property-table--table .nu-property:hover {
443
+ background-color: rgb(78 42 132 / 3%);
444
+ }
445
+
446
+ :root:not([data-theme="light"]) .nu-property-table--table .nu-property:hover {
447
+ background-color: rgb(255 255 255 / 3%);
448
+ }
449
+
450
+ .nu-property-table--table .nu-property__head {
451
+ display: contents;
452
+ }
453
+
454
+ .nu-property-table--table .nu-property__prop-col {
455
+ display: flex;
456
+ flex-wrap: wrap;
457
+ gap: 0.375rem;
458
+ align-items: center;
459
+ }
460
+
461
+ .nu-property-table--table .nu-property__type {
462
+ font-size: var(--sl-text-sm);
463
+ }
464
+
465
+ .nu-property-table--table .nu-property__description {
466
+ display: none;
467
+ }
468
+
469
+ .nu-property-table--table:not([data-columns*="type"]) .nu-property__type {
470
+ display: none;
471
+ }
472
+
473
+ .nu-property-table--table:not([data-columns*="default"]) .nu-property__default-col {
474
+ display: none;
475
+ }
476
+
477
+ .nu-property-table--table .nu-property__default-col .nu-property__badge--default {
478
+ padding: 0;
479
+ font-weight: 400;
480
+ text-transform: none;
481
+ letter-spacing: normal;
482
+ background: none;
483
+ border: none;
484
+ }
485
+
486
+ .nu-property-table--table .nu-property__default-col .nu-property__badge--default code {
487
+ font-size: var(--sl-text-sm);
488
+ font-weight: 400;
489
+ color: var(--nu-color-text-muted);
490
+ }
491
+
492
+ .nu-property-table--table .nu-property__default-col:empty::after {
493
+ font-family: var(--sl-font-system-mono);
494
+ font-size: var(--sl-text-sm);
495
+ color: var(--nu-border-color);
496
+ content: "—";
497
+ }
498
+
499
+ @media (width <= 30rem) {
500
+ .nu-property-table__columns {
501
+ display: none;
502
+ }
503
+
504
+ .nu-property-table--table .nu-property {
505
+ display: block;
506
+ padding: 0.875rem 1rem;
507
+ }
508
+
509
+ .nu-property-table--table .nu-property__head {
510
+ display: flex;
511
+ flex-wrap: wrap;
512
+ gap: 0.375rem 0.625rem;
513
+ align-items: center;
514
+ }
515
+
516
+ .nu-property-table--table .nu-property__prop-col {
517
+ display: flex;
518
+ flex-wrap: wrap;
519
+ gap: 0.375rem;
520
+ align-items: center;
521
+ }
522
+
523
+ .nu-property-table--table[data-columns*="type"] .nu-property__type {
524
+ display: revert;
525
+ }
526
+
527
+ .nu-property-table--table[data-columns*="default"] .nu-property__default-col {
528
+ display: revert;
529
+ }
530
+
531
+ .nu-property-table--table .nu-property__default-col .nu-property__badge--default {
532
+ padding: 0.0625rem 0.375rem;
533
+ font-size: 0.625rem;
534
+ font-weight: 400;
535
+ background-color: rgb(78 42 132 / 6%);
536
+ border: 1px solid rgb(78 42 132 / 15%);
537
+ }
538
+
539
+ .nu-property-table--table .nu-property__default-col .nu-property__badge--default code {
540
+ font-size: inherit;
541
+ }
542
+
543
+ .nu-property-table--table .nu-property__description {
544
+ display: block;
545
+ }
546
+
547
+ .nu-property-table--table .nu-property__default-col:empty {
548
+ display: none;
549
+ }
550
+
551
+ .nu-property-table--table .nu-property__default-col:empty::after {
552
+ content: none;
553
+ }
554
+ }
555
+
556
+ @media (width <= 30rem) {
557
+ .nu-property-table:not(.nu-property-table--table) .nu-property__head {
558
+ flex-direction: column;
559
+ gap: 0.25rem;
560
+ }
561
+
562
+ .nu-property-table:not(.nu-property-table--table) .nu-property__prop-col {
563
+ display: flex;
564
+ flex-wrap: wrap;
565
+ gap: 0.375rem;
566
+ align-items: center;
567
+ }
568
+ }
569
+ }
@@ -1,8 +1,5 @@
1
1
  /* ==========================================================================
2
2
  Steps — Ordered Step Indicators
3
-
4
- Encapsulates Starlight step marker styling, including numbered bullets and
5
- connector lines across light and dark modes.
6
3
  ========================================================================== */
7
4
 
8
5
  @layer northwestern {
@@ -0,0 +1,60 @@
1
+ /* ==========================================================================
2
+ Tables — Markdown table styling with striped rows and horizontal scroll
3
+ ========================================================================== */
4
+
5
+ @layer northwestern {
6
+ .nu-table-scroll {
7
+ overflow-x: auto;
8
+ }
9
+
10
+ .sl-markdown-content table:not(:where(.not-content *)) {
11
+ display: table;
12
+ width: 100%;
13
+ text-indent: 0;
14
+ border-collapse: collapse;
15
+ border-color: var(--nu-border-color);
16
+ }
17
+
18
+ .sl-markdown-content table:not(:where(.not-content *)) > thead > tr > th {
19
+ padding: 0.5rem 1rem;
20
+ font-family: var(--nu-font-heading);
21
+ font-weight: 600;
22
+ color: var(--nu-black-80);
23
+ text-align: left;
24
+ background-color: var(--nu-purple-surface);
25
+ border: 1px solid var(--nu-border-color);
26
+ }
27
+
28
+ :root:not([data-theme="light"]) .sl-markdown-content table:not(:where(.not-content *)) > thead > tr > th {
29
+ color: var(--nu-color-text);
30
+ background-color: rgb(78 42 132 / 14%);
31
+ }
32
+
33
+ .sl-markdown-content table:not(:where(.not-content *)) > tbody > tr > td {
34
+ padding: 0.5rem 1rem;
35
+ text-align: left;
36
+ border: 1px solid var(--nu-border-color);
37
+ }
38
+
39
+ .sl-markdown-content table:not(:where(.not-content *)) > thead > tr > th[align="right"],
40
+ .sl-markdown-content table:not(:where(.not-content *)) > tbody > tr > td[align="right"] {
41
+ text-align: right;
42
+ }
43
+
44
+ .sl-markdown-content table:not(:where(.not-content *)) > thead > tr > th[align="center"],
45
+ .sl-markdown-content table:not(:where(.not-content *)) > tbody > tr > td[align="center"] {
46
+ text-align: center;
47
+ }
48
+
49
+ .sl-markdown-content table:not(:where(.not-content *)) > tbody > tr:nth-child(even) {
50
+ background-color: #f3f4f6;
51
+ }
52
+
53
+ :root:not([data-theme="light"])
54
+ .sl-markdown-content
55
+ table:not(:where(.not-content *))
56
+ > tbody
57
+ > tr:nth-child(even) {
58
+ background-color: #1e1e1e;
59
+ }
60
+ }
@@ -1,8 +1,5 @@
1
1
  /* ==========================================================================
2
2
  Tabs — Code-Oriented Tab Panels
3
-
4
- Encapsulates Starlight tab styling when tabs wrap code blocks, including
5
- tab chrome, panel spacing, and embedded code-frame adjustments.
6
3
  ========================================================================== */
7
4
 
8
5
  /* stylelint-disable custom-property-pattern */