@tenphi/starlight 0.6.1 → 0.8.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.
@@ -1,72 +1,45 @@
1
- import { useGlobalStyles } from "@tenphi/tasty";
1
+ import { useFontFace, useGlobalStyles } from "@tenphi/tasty";
2
+ import jetBrainsMonoLatin from "@fontsource-variable/jetbrains-mono/files/jetbrains-mono-latin-wght-normal.woff2?url";
3
+ import onestLatin from "@fontsource-variable/onest/files/onest-latin-wght-normal.woff2?url";
2
4
  import arrowLeftIcon from "../icons/arrow-left.svg?raw";
3
5
  import arrowRightIcon from "../icons/arrow-right.svg?raw";
4
6
  import chevronRightIcon from "../icons/chevron-right.svg?raw";
5
7
  import closeIcon from "../icons/close.svg?raw";
6
8
  import searchIcon from "../icons/search.svg?raw";
9
+ import { resolveComponentStyles } from "./component-styles.js";
7
10
  import { svgIconUrl } from "./svg-icon.js";
8
11
  import { configureCookbookStates } from "./tasty-states.js";
9
12
 
10
13
  configureCookbookStates();
11
14
 
12
- // These global rules bridge Cookbook tokens into markup owned by Astro,
13
- // Starlight, Expressive Code, and Pagefind. Cookbook-owned components use
14
- // tasty() wrappers; every style object remains visible to the Tasty linter.
15
+ // Starlight owns the document markup, while Tasty owns every emitted style and
16
+ // Glaze owns every color value. Cookbook-owned components use tasty() wrappers;
17
+ // every global style object remains visible to the Tasty linter.
15
18
  export default function GlobalStyles() {
19
+ useFontFace("Onest Variable", {
20
+ src: `url("${onestLatin}") format("woff2-variations")`,
21
+ fontWeight: "100 900",
22
+ fontDisplay: "swap",
23
+ });
24
+ useFontFace("JetBrains Mono Variable", {
25
+ src: `url("${jetBrainsMonoLatin}") format("woff2-variations")`,
26
+ fontWeight: "100 800",
27
+ fontDisplay: "swap",
28
+ });
29
+
16
30
  useGlobalStyles(":root", {
17
31
  colorScheme: "dark",
18
- "$sl-font": "$body-font-family",
19
- "$sl-font-mono": "$code-font-family",
20
- "$sl-line-height": "$body-line-height",
21
- "$sl-line-height-headings": "$heading-line-height",
22
- "$sl-text-body": "$body-font-size",
23
- "$sl-text-body-sm": "$small-font-size",
24
- "$sl-text-code": "$code-font-size",
25
- "$sl-text-code-sm": "$small-font-size",
26
- "$sl-text-h1": "$h1-font-size",
27
- "$sl-text-h2": "$h2-font-size",
28
- "$sl-text-h3": "$h3-font-size",
29
- "$sl-text-h4": "$h4-font-size",
30
- "$sl-text-h5": "$h5-font-size",
31
- "$sl-content-width": "$content-width",
32
- "$sl-sidebar-width": "$sidebar-width",
33
- "$sl-color-white": "#text",
34
- "$sl-color-gray-1": "#text",
35
- "$sl-color-gray-2": "#text-soft",
36
- "$sl-color-gray-3": "color-mix( in oklab, #text 66%, #surface )",
37
- "$sl-color-gray-4": "#border-strong",
38
- "$sl-color-gray-5": "#border",
39
- "$sl-color-gray-6": "#surface-2",
40
- "$sl-color-gray-7": "#surface-3",
41
- "$sl-color-black": "#surface",
42
- "$sl-color-text": "#text-soft",
43
- "$sl-color-text-accent": "#accent-text",
44
- "$sl-color-text-invert": "#accent-surface-text",
45
- "$sl-color-bg": "#surface",
46
- "$sl-color-bg-nav": "#surface",
47
- "$sl-color-bg-sidebar": "#surface",
48
- "$sl-color-bg-inline-code": "#surface-2",
49
- "$sl-color-bg-accent": "#accent-surface",
50
- "$sl-color-hairline-light": "#border",
51
- "$sl-color-hairline": "#border",
52
- "$sl-color-hairline-shade": "#border",
53
- "$sl-color-backdrop-overlay": "#overlay",
54
- "$sl-color-accent-low":
55
- "color-mix( in oklab, #accent-surface 12%, #surface )",
56
- "$sl-color-accent": "#accent-text",
57
- "$sl-color-accent-high": "#accent-text",
58
- "$sl-shadow-sm": "none",
59
- "$sl-shadow-md": "0 0.5rem 1.5rem #shadow",
60
- "$sl-shadow-lg": "0 1rem 3rem #shadow",
61
- "$sl-nav-height": "4.5rem",
62
- "$sl-nav-pad-x": "clamp(1.25rem, 2.5vw, 2rem)",
63
- "$sl-sidebar-pad-x": "1.5rem",
64
- "$sl-content-pad-x": "clamp(1.5rem, 4vw, 4rem)",
65
- "$sl-main-pad": "0 0 5rem",
32
+ "$docs-nav-height": "4.5rem",
33
+ "$docs-nav-pad-x": "clamp(1.25rem, 2.5vw, 2rem)",
34
+ "$docs-nav-gap": "0.75rem",
35
+ "$docs-sidebar-pad-x": "1.5rem",
36
+ "$docs-content-pad-x": "clamp(1.5rem, 4vw, 4rem)",
37
+ "$docs-menu-button-size": "2.5rem",
38
+ "$docs-mobile-toc-height": "0rem",
66
39
  });
67
40
 
68
41
  useGlobalStyles(":root:has(.td-top-tabs)", {
69
- "$sl-nav-height": "7rem",
42
+ "$docs-nav-height": "7rem",
70
43
  });
71
44
 
72
45
  useGlobalStyles(':root[data-theme="light"]', {
@@ -79,6 +52,62 @@ export default function GlobalStyles() {
79
52
  },
80
53
  });
81
54
 
55
+ useGlobalStyles("*, *::before, *::after", {
56
+ boxSizing: "border-box",
57
+ });
58
+
59
+ useGlobalStyles("html", {
60
+ minBlockSize: "100%",
61
+ scrollPaddingBlockStart:
62
+ "(1.5rem + $docs-nav-height + $docs-mobile-toc-height)",
63
+ });
64
+
65
+ useGlobalStyles("body", {
66
+ minInlineSize: "0",
67
+ minBlockSize: "100%",
68
+ margin: "0",
69
+ });
70
+
71
+ useGlobalStyles(":where(button, input, select, textarea)", {
72
+ font: "inherit",
73
+ });
74
+
75
+ useGlobalStyles(":where(button, summary, select)", {
76
+ cursor: "pointer",
77
+ });
78
+
79
+ useGlobalStyles(":where(img, picture, video, canvas, svg, iframe)", {
80
+ maxInlineSize: "100%",
81
+ });
82
+
83
+ useGlobalStyles(":where(img, picture, video, canvas, svg)", {
84
+ blockSize: "auto",
85
+ });
86
+
87
+ useGlobalStyles(":where([hidden], .sl-hidden)", {
88
+ hide: true,
89
+ });
90
+
91
+ useGlobalStyles(".md\\:sl-block", {
92
+ display: { "": "block", "@mobile": "none" },
93
+ });
94
+
95
+ useGlobalStyles(".md\\:sl-flex", {
96
+ display: { "": "flex", "@mobile": "none" },
97
+ });
98
+
99
+ useGlobalStyles(".sr-only", {
100
+ position: "absolute",
101
+ inlineSize: "1px",
102
+ blockSize: "1px",
103
+ padding: "0",
104
+ margin: "-1px",
105
+ overflow: "hidden",
106
+ clip: "rect(0, 0, 0, 0)",
107
+ whiteSpace: "nowrap",
108
+ border: "0",
109
+ });
110
+
82
111
  useGlobalStyles("html, body, button, input, select, textarea", {
83
112
  fontFamily: "$body-font-family",
84
113
  });
@@ -92,6 +121,180 @@ export default function GlobalStyles() {
92
121
  letterSpacing: "$body-letter-spacing",
93
122
  });
94
123
 
124
+ useGlobalStyles("a", {
125
+ color: "#accent-text",
126
+ });
127
+
128
+ useGlobalStyles(".page", {
129
+ display: "flex",
130
+ flow: "column",
131
+ minBlockSize: "100vh",
132
+ });
133
+
134
+ useGlobalStyles("body > .page > .header", {
135
+ position: "fixed",
136
+ zIndex: "10",
137
+ inset: "0 0 auto",
138
+ inlineSize: "100%",
139
+ blockSize: "$docs-nav-height",
140
+ padding: "0 $docs-nav-pad-x",
141
+ borderBlockEnd: "$border-width solid #border",
142
+ fill: "#surface",
143
+ });
144
+
145
+ useGlobalStyles(".sidebar-pane", {
146
+ visibility: { "": "visible", "@mobile": "hidden" },
147
+ position: "fixed",
148
+ zIndex: { "": "8", "@mobile": "12" },
149
+ insetBlockStart: "$docs-nav-height",
150
+ insetBlockEnd: "0",
151
+ insetInlineStart: "0",
152
+ inlineSize: { "": "$sidebar-width", "@mobile": "100%" },
153
+ overflowY: "auto",
154
+ scrollbarGutter: "stable",
155
+ fill: "#surface",
156
+ });
157
+
158
+ useGlobalStyles(
159
+ 'starlight-menu-button[aria-expanded="true"] ~ .sidebar-pane',
160
+ {
161
+ visibility: { "@mobile": "visible" },
162
+ },
163
+ );
164
+
165
+ useGlobalStyles(".sidebar-content", {
166
+ display: "flex",
167
+ flow: "column",
168
+ gap: "($gap * 2)",
169
+ minBlockSize: "100%",
170
+ padding: "($gap * 2) $docs-sidebar-pad-x ($gap * 6)",
171
+ });
172
+
173
+ useGlobalStyles("starlight-menu-button", {
174
+ display: { "": "none", "@mobile": "block" },
175
+ position: { "@mobile": "fixed" },
176
+ zIndex: { "@mobile": "11" },
177
+ insetBlockStart: {
178
+ "@mobile": "(($docs-nav-height - $docs-menu-button-size) / 2)",
179
+ },
180
+ insetInlineEnd: { "@mobile": "$docs-nav-pad-x" },
181
+ });
182
+
183
+ useGlobalStyles(".main-frame", {
184
+ minInlineSize: "0",
185
+ paddingBlockStart: "($docs-nav-height + $docs-mobile-toc-height)",
186
+ paddingInlineStart: "0",
187
+ });
188
+
189
+ useGlobalStyles("[data-has-sidebar] .main-frame", {
190
+ paddingInlineStart: { "": "$sidebar-width", "@mobile": "0" },
191
+ });
192
+
193
+ useGlobalStyles(".main-frame > .lg\\:sl-flex", {
194
+ display: { "": "flex", "@narrow-layout": "block" },
195
+ minInlineSize: "0",
196
+ });
197
+
198
+ useGlobalStyles(".main-pane", {
199
+ isolation: "isolate",
200
+ inlineSize: "100%",
201
+ minInlineSize: "0",
202
+ });
203
+
204
+ useGlobalStyles("[data-has-sidebar][data-has-toc] .main-pane", {
205
+ order: "1",
206
+ inlineSize: {
207
+ "": "min(calc(100% - $sidebar-width), calc($content-width + (100% - $content-width - $sidebar-width) / 2))",
208
+ "@narrow-layout": "100%",
209
+ },
210
+ });
211
+
212
+ useGlobalStyles(".right-sidebar-container", {
213
+ order: "2",
214
+ position: "relative",
215
+ inlineSize: {
216
+ "": "max($sidebar-width, calc($sidebar-width + (100% - $content-width - $sidebar-width) / 2))",
217
+ "@narrow-layout": "100%",
218
+ },
219
+ });
220
+
221
+ useGlobalStyles(".right-sidebar", {
222
+ position: { "": "fixed", "@narrow-layout": "static" },
223
+ insetBlockStart: { "": "0", "@narrow-layout": "auto" },
224
+ inlineSize: { "": "inherit", "@narrow-layout": "100%" },
225
+ blockSize: { "": "100vh", "@narrow-layout": "auto" },
226
+ paddingBlockStart: {
227
+ "": "$docs-nav-height",
228
+ "@narrow-layout": "0",
229
+ },
230
+ overflowY: { "": "auto", "@narrow-layout": "visible" },
231
+ scrollbarWidth: "none",
232
+ });
233
+
234
+ useGlobalStyles(".lg\\:sl-hidden", {
235
+ display: { "": "none", "@narrow-layout": "block" },
236
+ });
237
+
238
+ useGlobalStyles(".right-sidebar-panel", {
239
+ display: { "": "block", "@narrow-layout": "none" },
240
+ });
241
+
242
+ useGlobalStyles(".md\\:sl-hidden", {
243
+ display: { "": "none", "@mobile": "block" },
244
+ });
245
+
246
+ useGlobalStyles("main", {
247
+ padding: "0 0 5rem",
248
+ });
249
+
250
+ useGlobalStyles(".content-panel > .sl-container > * + *", {
251
+ marginBlockStart: "($gap * 3)",
252
+ });
253
+
254
+ useGlobalStyles(".content-panel > .sl-container", {
255
+ marginInlineStart: { "": "auto", "@narrow-layout": "0" },
256
+ marginInlineEnd: { "": "auto", "@narrow-layout": "0" },
257
+ });
258
+
259
+ useGlobalStyles(".sl-banner", {
260
+ padding: "($gap * 1.5) $docs-nav-pad-x",
261
+ color: "#accent-surface-text",
262
+ fill: "#accent-surface",
263
+ fontWeight: "$body-bold-font-weight",
264
+ lineHeight: "$heading-line-height",
265
+ textAlign: "center",
266
+ textWrap: "balance",
267
+ boxShadow: "none",
268
+ });
269
+
270
+ useGlobalStyles(".sl-banner a", {
271
+ color: "#accent-surface-text",
272
+ });
273
+
274
+ useGlobalStyles(".sl-skip-link", {
275
+ position: "fixed",
276
+ inset: "($gap * 1.5) auto auto ($gap * 1.5)",
277
+ inlineSize: "1px",
278
+ blockSize: "1px",
279
+ padding: "0",
280
+ overflow: "hidden",
281
+ clip: "rect(0, 0, 0, 0)",
282
+ });
283
+
284
+ useGlobalStyles(".sl-skip-link:focus", {
285
+ zIndex: "20",
286
+ inlineSize: "auto",
287
+ blockSize: "auto",
288
+ padding: "$gap ($gap * 2)",
289
+ overflow: "visible",
290
+ color: "#accent-surface-text",
291
+ fill: "#accent-surface",
292
+ clip: "auto",
293
+ radius: "$radius",
294
+ shadow: "0 1rem 3rem #shadow",
295
+ textDecoration: "none",
296
+ });
297
+
95
298
  useGlobalStyles(":where(h1, h2, h3, h4, h5, h6), .site-title", {
96
299
  color: "#text",
97
300
  fontFamily: "$heading-font-family",
@@ -148,136 +351,598 @@ export default function GlobalStyles() {
148
351
  },
149
352
  );
150
353
 
354
+ useGlobalStyles(":where(button, input, select, textarea)", {
355
+ minBlockSize: "$control-height",
356
+ radius: "$radius",
357
+ boxShadow: "none",
358
+ });
359
+
151
360
  useGlobalStyles(
152
- ":where(button, input, select, textarea):not(:where(.expressive-code *))",
361
+ 'site-search button[data-open-modal], site-search dialog, .pagination-links a, a[aria-current="page"]',
362
+ { radius: "$radius" },
363
+ );
364
+
365
+ useGlobalStyles(
366
+ '#starlight__sidebar a[aria-current="page"], #starlight__sidebar a[aria-current="page"]:hover, #starlight__sidebar a[aria-current="page"]:focus',
153
367
  {
154
- minBlockSize: "$control-height",
155
- radius: "$radius",
156
- boxShadow: "none",
368
+ color: "#accent-text",
369
+ fill: "#accent-surface-subtle",
157
370
  },
158
371
  );
159
372
 
160
- useGlobalStyles(".expressive-code", {
161
- "$ec-brdRad": "calc($card-radius - $border-width)",
162
- "$ec-brdWd": "$border-width",
163
- "$ec-brdCol": "#border",
373
+ useGlobalStyles("body > .page > .header, .sidebar-pane", {
374
+ fill: "#surface",
164
375
  });
165
376
 
166
- useGlobalStyles(".expressive-code .copy button", {
377
+ useGlobalStyles("#starlight__sidebar .sidebar-content", {
378
+ gap: "($gap * 3)",
379
+ paddingBlockStart: {
380
+ "": "($gap * 4)",
381
+ "@medium-layout": "($gap * 1.5)",
382
+ },
383
+ paddingBlockEnd: "($gap * 6)",
384
+ });
385
+
386
+ useGlobalStyles("#starlight__sidebar ul", {
387
+ padding: "0",
388
+ listStyle: "none",
389
+ });
390
+
391
+ useGlobalStyles("#starlight__sidebar li", {
392
+ overflowWrap: "anywhere",
393
+ });
394
+
395
+ useGlobalStyles("#starlight__sidebar .top-level > li + li", {
396
+ marginBlockStart: "($gap * 3)",
397
+ });
398
+
399
+ useGlobalStyles("#starlight__sidebar ul ul li", {
400
+ marginInlineStart: "($gap * 0.75)",
401
+ paddingInlineStart: "($gap * 0.75)",
402
+ borderInlineStart: "0",
403
+ });
404
+
405
+ useGlobalStyles("#starlight__sidebar :where(summary, a)", {
406
+ padding: "($gap * 0.8) ($gap * 1.25)",
407
+ color: "#text-soft",
408
+ lineHeight: "1.45",
167
409
  radius: "$radius",
168
- fill: "#surface-3",
169
- boxShadow: "none",
410
+ textDecoration: "none",
170
411
  });
171
412
 
172
- useGlobalStyles(".expressive-code .copy button::before", {
173
- borderColor: "#border",
174
- opacity: "1",
413
+ useGlobalStyles("#starlight__sidebar summary", {
414
+ display: "flex",
415
+ alignItems: "center",
416
+ justifyContent: "space-between",
417
+ cursor: "pointer",
418
+ userSelect: "none",
175
419
  });
176
420
 
177
- useGlobalStyles(".expressive-code .copy button div", {
421
+ useGlobalStyles("#starlight__sidebar a", {
422
+ display: "block",
423
+ fill: "#surface",
424
+ });
425
+
426
+ useGlobalStyles(
427
+ "#starlight__sidebar a:hover, #starlight__sidebar a:focus-visible, #starlight__sidebar summary:hover",
428
+ {
429
+ color: "#text",
430
+ fill: "#surface-2-hover",
431
+ },
432
+ );
433
+
434
+ useGlobalStyles("#starlight__sidebar summary::marker", {
178
435
  hide: true,
179
436
  });
180
437
 
438
+ useGlobalStyles("#starlight__sidebar a", {
439
+ fontSize: "0.9375rem",
440
+ });
441
+
442
+ useGlobalStyles("#starlight__sidebar .large", {
443
+ fontSize: "0.9375rem",
444
+ fontWeight: "$body-bold-font-weight",
445
+ color: "#text",
446
+ });
447
+
448
+ useGlobalStyles(".right-sidebar-panel", {
449
+ paddingBlockStart: "($gap * 5)",
450
+ paddingInlineStart: "$docs-sidebar-pad-x",
451
+ paddingInlineEnd: "$docs-sidebar-pad-x",
452
+ });
453
+
454
+ useGlobalStyles(".right-sidebar-panel h2", {
455
+ marginBlockEnd: "$gap",
456
+ color: "#text",
457
+ fontSize: "0.9375rem",
458
+ fontWeight: "$body-bold-font-weight",
459
+ lineHeight: "$heading-line-height",
460
+ });
461
+
462
+ useGlobalStyles(".right-sidebar-panel ul", {
463
+ display: "grid",
464
+ gap: "1px",
465
+ margin: "0",
466
+ padding: "0",
467
+ listStyle: "none",
468
+ });
469
+
470
+ useGlobalStyles(".right-sidebar-panel li", {
471
+ margin: "0",
472
+ padding: "0",
473
+ listStyle: "none",
474
+ });
475
+
476
+ useGlobalStyles(".right-sidebar-panel a", {
477
+ display: "block",
478
+ paddingBlockStart: "($gap * 0.5)",
479
+ paddingBlockEnd: "($gap * 0.5)",
480
+ color: "#text-muted",
481
+ fontSize: "$small-font-size",
482
+ lineHeight: "1.45",
483
+ textDecoration: "none",
484
+ overflowWrap: "anywhere",
485
+ });
486
+
487
+ useGlobalStyles(".right-sidebar-panel a:hover", {
488
+ color: "#text",
489
+ });
490
+
491
+ useGlobalStyles('.right-sidebar-panel a[aria-current="true"]', {
492
+ color: "#accent-text",
493
+ });
494
+
495
+ useGlobalStyles(".content-panel", {
496
+ padding: "($gap * 3) $docs-content-pad-x",
497
+ });
498
+
499
+ useGlobalStyles(".content-panel > .sl-container", {
500
+ maxInlineSize: "$content-width",
501
+ });
502
+
503
+ useGlobalStyles("main h1#_top", {
504
+ marginBlockStart: "($gap * 2)",
505
+ color: "#text",
506
+ preset: "h1",
507
+ });
508
+
509
+ useGlobalStyles("main > .content-panel:first-of-type", {
510
+ paddingBlockStart: "($gap * 3)",
511
+ paddingBlockEnd: "($gap * 2)",
512
+ });
513
+
514
+ useGlobalStyles("main > .content-panel:nth-of-type(2)", {
515
+ paddingBlockStart: "($gap * 2)",
516
+ });
517
+
518
+ useGlobalStyles(".sl-markdown-content", {
519
+ fontSize: "1.025rem",
520
+ });
521
+
181
522
  useGlobalStyles(
182
- ".expressive-code .copy button:hover, .expressive-code .copy button:focus-visible",
523
+ ".sl-markdown-content :where(p, ul, ol, dl, blockquote, pre, table, hr, details):not(:where(.not-content *))",
183
524
  {
184
- fill: "#surface-3-hover",
525
+ marginBlockStart: "0",
526
+ marginBlockEnd: "0",
185
527
  },
186
528
  );
187
529
 
188
- useGlobalStyles(".expressive-code .copy button:active", {
189
- fill: "#surface-3-pressed",
530
+ useGlobalStyles(
531
+ ".sl-markdown-content :not(a, strong, em, del, span, input, code, br) + :not(a, strong, em, del, span, input, code, br, :where(.not-content *))",
532
+ {
533
+ marginBlockStart: "($gap * 3)",
534
+ },
535
+ );
536
+
537
+ useGlobalStyles(
538
+ ".sl-markdown-content :not(h1, h2, h3, h4, h5, h6, .sl-heading-wrapper) + :where(h1, h2, h3, h4, h5, h6, .sl-heading-wrapper):not(:where(.not-content *))",
539
+ {
540
+ marginBlockStart: "1.5em",
541
+ },
542
+ );
543
+
544
+ useGlobalStyles(
545
+ ".sl-markdown-content :where(ul, ol):not(:where(.not-content *))",
546
+ {
547
+ paddingInlineStart: "1.5rem",
548
+ },
549
+ );
550
+
551
+ useGlobalStyles(
552
+ ".sl-markdown-content :where(li + li, dt + dt, dt + dd, dd + dd):not(:where(.not-content *))",
553
+ {
554
+ marginBlockStart: "($gap * 0.5)",
555
+ },
556
+ );
557
+
558
+ useGlobalStyles(".sl-markdown-content li:not(:where(.not-content *))", {
559
+ overflowWrap: "anywhere",
560
+ });
561
+
562
+ useGlobalStyles(".sl-markdown-content dt:not(:where(.not-content *))", {
563
+ fontWeight: "$body-bold-font-weight",
564
+ });
565
+
566
+ useGlobalStyles(".sl-markdown-content dd:not(:where(.not-content *))", {
567
+ paddingInlineStart: "($gap * 2)",
568
+ });
569
+
570
+ useGlobalStyles(".sl-markdown-content a:not(:where(.not-content *))", {
571
+ color: "#accent-text",
572
+ textUnderlineOffset: "0.15em",
573
+ });
574
+
575
+ useGlobalStyles(".sl-markdown-content a:hover:not(:where(.not-content *))", {
576
+ color: "#text",
190
577
  });
191
578
 
192
579
  useGlobalStyles(
193
- 'site-search button[data-open-modal], site-search dialog, .pagination-links a, a[aria-current="page"]',
194
- { radius: "$radius" },
580
+ ".sl-markdown-content code:not(:where(pre *, .not-content *))",
581
+ {
582
+ padding: "0.125rem 0.375rem",
583
+ color: "#text",
584
+ fill: "#surface-2",
585
+ fontSize: "$small-font-size",
586
+ radius: "($radius * 0.65)",
587
+ },
195
588
  );
196
589
 
590
+ useGlobalStyles(".sl-markdown-content pre:not(:where(.not-content *))", {
591
+ padding: "0.875rem 1rem",
592
+ overflowX: "auto",
593
+ color: "#syntax-text",
594
+ border: true,
595
+ fill: "#syntax-bg",
596
+ fontSize: "$code-font-size",
597
+ lineHeight: "$code-line-height",
598
+ radius: "$card-radius",
599
+ tabSize: "2",
600
+ });
601
+
602
+ useGlobalStyles(".sl-markdown-content pre code", {
603
+ padding: "0",
604
+ color: "inherit",
605
+ fill: "#clear",
606
+ fontFamily: "$code-font-family",
607
+ fontSize: "inherit",
608
+ lineHeight: "inherit",
609
+ });
610
+
197
611
  useGlobalStyles(
198
- '#starlight__sidebar a[aria-current="page"], #starlight__sidebar a[aria-current="page"]:hover, #starlight__sidebar a[aria-current="page"]:focus',
612
+ ".sl-markdown-content .td-mermaid",
613
+ resolveComponentStyles("Mermaid", {
614
+ display: "grid",
615
+ placeItems: "center",
616
+ minInlineSize: "0",
617
+ padding: "($gap * 2)",
618
+ overflowX: "auto",
619
+ border: true,
620
+ fill: "#surface-2",
621
+ radius: "$card-radius",
622
+ Diagram: {
623
+ $: "> svg",
624
+ $_text: "#text",
625
+ "$_text-sec": "#text-soft",
626
+ "$_text-muted": "#text-soft",
627
+ "$_text-faint": "#text-muted",
628
+ $_line: "#text-soft",
629
+ $_arrow: "#accent-text",
630
+ "$_node-fill": "#surface",
631
+ "$_node-stroke": "#border-strong",
632
+ "$_group-fill": "#surface-2",
633
+ "$_group-hdr": "#surface",
634
+ "$_inner-stroke": "#border",
635
+ "$_key-badge": "#surface",
636
+ display: "block",
637
+ maxInlineSize: "100%",
638
+ blockSize: "auto",
639
+ margin: "auto",
640
+ },
641
+ Text: {
642
+ $: "text",
643
+ fontFamily: "$body-font-family",
644
+ },
645
+ MonoText: {
646
+ $: ".mono",
647
+ fontFamily: "$code-font-family",
648
+ },
649
+ }),
650
+ );
651
+
652
+ useGlobalStyles(
653
+ ".sl-markdown-content blockquote:not(:where(.not-content *))",
199
654
  {
200
- color: "#accent-text",
201
- fill: "color-mix( in oklab, #accent-surface 12%, #surface )",
655
+ paddingInlineStart: "($gap * 2)",
656
+ color: "#text-soft",
657
+ borderInlineStart: "$border-width solid #border-strong",
202
658
  },
203
659
  );
204
660
 
661
+ useGlobalStyles(".sl-markdown-content hr:not(:where(.not-content *))", {
662
+ border: "0",
663
+ borderBlockEnd: "$border-width solid #border",
664
+ });
665
+
666
+ useGlobalStyles(".sl-markdown-content details:not(:where(.not-content *))", {
667
+ paddingInlineStart: "($gap * 2)",
668
+ borderInlineStart: "2px solid #border",
669
+ });
670
+
205
671
  useGlobalStyles(
206
- "body > .page > .header, .sidebar-pane, .right-sidebar, .content-panel + .content-panel, mobile-starlight-toc :where(nav, summary)",
672
+ ".sl-markdown-content details:not([open]):hover:not(:where(.not-content *)), .sl-markdown-content details:has(> summary:hover):not(:where(.not-content *))",
207
673
  {
208
- border: "0",
674
+ borderColor: "#accent-text",
209
675
  },
210
676
  );
211
677
 
212
- useGlobalStyles("body > .page > .header, .sidebar-pane", {
213
- fill: "#surface",
678
+ useGlobalStyles(".sl-markdown-content summary:not(:where(.not-content *))", {
679
+ display: "block",
680
+ marginInlineStart: "-0.5rem",
681
+ paddingInlineStart: "0.5rem",
682
+ color: "#text",
683
+ fontWeight: "$body-bold-font-weight",
214
684
  });
215
685
 
216
- useGlobalStyles("#starlight__sidebar .sidebar-content", {
217
- gap: "($gap * 3)",
218
- paddingBlockStart: "($gap * 4)",
219
- paddingBlockEnd: "($gap * 6)",
686
+ useGlobalStyles(
687
+ ".sl-markdown-content details[open] > summary:not(:where(.not-content *))",
688
+ {
689
+ marginBlockEnd: "($gap * 2)",
690
+ },
691
+ );
692
+
693
+ useGlobalStyles(
694
+ ".sl-markdown-content summary:not(:where(.not-content *))::marker, .sl-markdown-content summary:not(:where(.not-content *))::-webkit-details-marker",
695
+ {
696
+ hide: true,
697
+ },
698
+ );
699
+
700
+ useGlobalStyles(
701
+ ".sl-markdown-content summary:not(:where(.not-content *))::before",
702
+ {
703
+ content: '""',
704
+ display: "inline-block",
705
+ inlineSize: "1.25rem",
706
+ blockSize: "1.25rem",
707
+ marginInlineEnd: "($gap * 0.5)",
708
+ verticalAlign: "middle",
709
+ fill: "#current",
710
+ mask: `url("${svgIconUrl(chevronRightIcon)}") center / contain no-repeat`,
711
+ transition: "rotate 120ms ease",
712
+ },
713
+ );
714
+
715
+ useGlobalStyles(
716
+ ".sl-markdown-content details[open] > summary:not(:where(.not-content *))::before",
717
+ {
718
+ rotate: "90deg",
719
+ },
720
+ );
721
+
722
+ useGlobalStyles(".sl-markdown-content .sl-heading-wrapper", {
723
+ lineHeight: "$heading-line-height",
220
724
  });
221
725
 
222
- useGlobalStyles("#starlight__sidebar .top-level > li + li", {
223
- marginBlockStart: "($gap * 3)",
726
+ useGlobalStyles(".sl-markdown-content .sl-heading-wrapper.level-h1", {
727
+ fontSize: "$h1-font-size",
224
728
  });
225
729
 
226
- useGlobalStyles("#starlight__sidebar ul ul li", {
227
- marginInlineStart: "($gap * 0.75)",
228
- paddingInlineStart: "($gap * 0.75)",
229
- borderInlineStart: "0",
730
+ useGlobalStyles(".sl-markdown-content .sl-heading-wrapper.level-h2", {
731
+ fontSize: "$h2-font-size",
732
+ });
733
+
734
+ useGlobalStyles(".sl-markdown-content .sl-heading-wrapper.level-h3", {
735
+ fontSize: "$h3-font-size",
736
+ });
737
+
738
+ useGlobalStyles(".sl-markdown-content .sl-heading-wrapper.level-h4", {
739
+ fontSize: "$h4-font-size",
740
+ });
741
+
742
+ useGlobalStyles(".sl-markdown-content .sl-heading-wrapper.level-h5", {
743
+ fontSize: "$h5-font-size",
744
+ });
745
+
746
+ useGlobalStyles(".sl-markdown-content .sl-heading-wrapper.level-h6", {
747
+ fontSize: "$h6-font-size",
748
+ });
749
+
750
+ useGlobalStyles(".sl-markdown-content .sl-heading-wrapper > :first-child", {
751
+ display: "inline",
752
+ paddingInlineEnd: "1.1em",
753
+ });
754
+
755
+ useGlobalStyles(".sl-markdown-content .sl-anchor-link", {
756
+ position: "relative",
757
+ display: "inline-flex",
758
+ marginInlineStart: "-0.85em",
759
+ color: "#text-muted",
760
+ userSelect: "none",
761
+ textDecoration: "none",
762
+ });
763
+
764
+ useGlobalStyles(".sl-markdown-content .sl-anchor-link:hover", {
765
+ color: "#accent-text",
766
+ });
767
+
768
+ useGlobalStyles(".sl-markdown-content .sl-anchor-icon > svg", {
769
+ display: "inline",
770
+ inlineSize: "0.8275em",
771
+ verticalAlign: "middle",
772
+ });
773
+
774
+ useGlobalStyles(".starlight-aside", {
775
+ padding: "($gap * 2) ($gap * 2.5)",
776
+ color: "#text-soft",
777
+ border: true,
778
+ radius: "$card-radius",
779
+ fill: "#surface-2",
780
+ });
781
+
782
+ useGlobalStyles(".starlight-aside__title", {
783
+ display: "flex",
784
+ alignItems: "center",
785
+ gap: "$gap",
786
+ margin: "0 0 $gap",
787
+ color: "#text",
788
+ fontWeight: "$body-bold-font-weight",
789
+ });
790
+
791
+ useGlobalStyles(".starlight-aside__icon", {
792
+ flexShrink: "0",
793
+ color: "#accent-text",
794
+ });
795
+
796
+ useGlobalStyles(".starlight-aside__content > :first-child", {
797
+ marginBlockStart: "0",
798
+ });
799
+
800
+ useGlobalStyles(".card", {
801
+ display: "flex",
802
+ flow: "column",
803
+ gap: "clamp(0.5rem, calc(0.125rem + 1vw), 1rem)",
804
+ padding: "clamp(1rem, calc(0.125rem + 3vw), 2.5rem)",
805
+ border: true,
806
+ radius: "$card-radius",
807
+ fill: "#surface-2",
808
+ });
809
+
810
+ useGlobalStyles(".card > .title", {
811
+ display: "flex",
812
+ alignItems: "center",
813
+ gap: "($gap * 2)",
814
+ margin: "0",
815
+ color: "#text",
816
+ preset: "h4 / strong",
817
+ });
818
+
819
+ useGlobalStyles(".sl-link-card", {
820
+ position: "relative",
821
+ display: "grid",
822
+ gridColumns: "1fr auto",
823
+ gap: "$gap",
824
+ padding: "($gap * 2)",
825
+ border: true,
826
+ radius: "$card-radius",
827
+ fill: "#surface-2",
230
828
  });
231
829
 
232
- useGlobalStyles("#starlight__sidebar :where(summary, a)", {
233
- padding: "($gap * 0.8) ($gap * 1.25)",
234
- lineHeight: "1.45",
830
+ useGlobalStyles(".sl-link-card:hover", {
831
+ fill: "#surface-2-hover",
235
832
  });
236
833
 
237
- useGlobalStyles("#starlight__sidebar a", {
238
- fontSize: "0.9375rem",
834
+ useGlobalStyles(".sl-link-card .stack", {
835
+ display: "flex",
836
+ flow: "column",
837
+ gap: "$gap",
239
838
  });
240
839
 
241
- useGlobalStyles("#starlight__sidebar .large", {
242
- fontSize: "0.9375rem",
840
+ useGlobalStyles(".sl-link-card a", {
841
+ color: "#text",
243
842
  fontWeight: "$body-bold-font-weight",
843
+ textDecoration: "none",
244
844
  });
245
845
 
246
- useGlobalStyles(".right-sidebar-panel", {
247
- paddingBlockStart: "($gap * 5)",
846
+ useGlobalStyles(".sl-link-card a::before", {
847
+ content: '""',
848
+ position: "absolute",
849
+ inset: "0",
248
850
  });
249
851
 
250
- useGlobalStyles(".right-sidebar-panel h2", {
251
- fontSize: "0.9375rem",
852
+ useGlobalStyles(".sl-link-card .description, .sl-link-card .icon", {
853
+ color: "#text-muted",
252
854
  });
253
855
 
254
- useGlobalStyles(".right-sidebar-panel a", {
255
- paddingBlockStart: "($gap * 0.5)",
256
- paddingBlockEnd: "($gap * 0.5)",
856
+ useGlobalStyles(".sl-badge", {
857
+ display: "inline-block",
858
+ padding: "0.175rem 0.35rem",
859
+ color: "#text-soft",
860
+ border: true,
861
+ radius: "$radius",
862
+ fill: "#surface-3",
863
+ fontFamily: "$code-font-family",
257
864
  fontSize: "$small-font-size",
258
- lineHeight: "1.45",
865
+ lineHeight: "1",
866
+ overflowWrap: "anywhere",
259
867
  });
260
868
 
261
- useGlobalStyles("main > .content-panel:first-of-type", {
262
- paddingBlockStart: "($gap * 3)",
263
- paddingBlockEnd: "($gap * 2)",
869
+ useGlobalStyles(".sl-steps", {
870
+ listStyle: "none",
871
+ counterReset: "steps-counter",
872
+ paddingInlineStart: "0",
264
873
  });
265
874
 
266
- useGlobalStyles("main > .content-panel:nth-of-type(2)", {
267
- paddingBlockStart: "($gap * 2)",
875
+ useGlobalStyles(".sl-steps > li", {
876
+ counterIncrement: "steps-counter",
877
+ position: "relative",
878
+ minBlockSize: "2rem",
879
+ paddingInlineStart: "3rem",
880
+ paddingBlockEnd: "1px",
268
881
  });
269
882
 
270
- useGlobalStyles(".sl-markdown-content", {
271
- fontSize: "1.025rem",
883
+ useGlobalStyles(".sl-steps > li::before", {
884
+ content: "counter(steps-counter)",
885
+ position: "absolute",
886
+ insetBlockStart: "0",
887
+ insetInlineStart: "0",
888
+ display: "grid",
889
+ placeItems: "center",
890
+ inlineSize: "2rem",
891
+ blockSize: "2rem",
892
+ color: "#text",
893
+ border: true,
894
+ radius: "999px",
895
+ fill: "#surface-3",
896
+ fontSize: "$small-font-size",
897
+ fontWeight: "$body-bold-font-weight",
898
+ });
899
+
900
+ useGlobalStyles(".sl-steps > li::after", {
901
+ content: '""',
902
+ position: "absolute",
903
+ insetBlock: "2.5rem $gap",
904
+ insetInlineStart: "(1rem - ($border-width / 2))",
905
+ inlineSize: "$border-width",
906
+ fill: "#border",
272
907
  });
273
908
 
274
909
  useGlobalStyles("site-search button[data-open-modal]", {
910
+ display: "flex",
911
+ alignItems: "center",
912
+ gap: "$gap",
913
+ inlineSize: "100%",
914
+ maxInlineSize: "22rem",
915
+ blockSize: "$control-height",
916
+ paddingInlineStart: "($gap * 1.5)",
917
+ paddingInlineEnd: "$gap",
918
+ color: "#text-soft",
275
919
  border: true,
276
920
  fill: "#surface",
921
+ fontSize: "$small-font-size",
277
922
  boxShadow: "none",
923
+ cursor: "pointer",
278
924
  transition: "color 120ms ease, background-color 120ms ease",
279
925
  });
280
926
 
927
+ useGlobalStyles("site-search", {
928
+ display: "contents",
929
+ });
930
+
931
+ useGlobalStyles("site-search button[data-open-modal] > :last-child", {
932
+ marginInlineStart: "auto",
933
+ });
934
+
935
+ useGlobalStyles("site-search button[data-open-modal] > kbd", {
936
+ display: { "": "flex", "@mobile": "none" },
937
+ gap: "0.25em",
938
+ paddingInlineStart: "0.375rem",
939
+ paddingInlineEnd: "0.375rem",
940
+ fill: "#surface-3",
941
+ fontFamily: "$body-font-family",
942
+ fontSize: "0.75rem",
943
+ radius: "($radius * 0.75)",
944
+ });
945
+
281
946
  useGlobalStyles("site-search button[data-open-modal]:hover", {
282
947
  borderColor: "#border",
283
948
  fill: "#surface-2-hover",
@@ -288,11 +953,33 @@ export default function GlobalStyles() {
288
953
  });
289
954
 
290
955
  useGlobalStyles(".pagination-links a", {
291
- borderWidth: "$border-width",
292
- borderColor: "#border",
956
+ display: "flex",
957
+ alignItems: "center",
958
+ justifyContent: "flex-start",
959
+ gap: "$gap",
960
+ inlineSize: "100%",
961
+ padding: "($gap * 2)",
962
+ border: "$border-width solid #border",
963
+ color: "#text-soft",
293
964
  fill: "#surface-2",
294
965
  boxShadow: "none",
295
966
  transition: "color 120ms ease, background-color 120ms ease",
967
+ textDecoration: "none",
968
+ overflowWrap: "anywhere",
969
+ });
970
+
971
+ useGlobalStyles('.pagination-links a[rel="next"]', {
972
+ justifyContent: "flex-start",
973
+ textAlign: "end",
974
+ });
975
+
976
+ useGlobalStyles('.pagination-links a[rel="next"]::before', {
977
+ order: "1",
978
+ });
979
+
980
+ useGlobalStyles('.pagination-links a[rel="next"] > span', {
981
+ marginInlineStart: "auto",
982
+ textAlign: "end",
296
983
  });
297
984
 
298
985
  useGlobalStyles(".pagination-links a:hover", {
@@ -304,7 +991,82 @@ export default function GlobalStyles() {
304
991
  fill: "#surface-2-pressed",
305
992
  });
306
993
 
994
+ useGlobalStyles(".pagination-links .link-title", {
995
+ color: "#text",
996
+ preset: "h5 / strong",
997
+ });
998
+
999
+ useGlobalStyles("main footer", {
1000
+ display: "flex",
1001
+ flow: "column",
1002
+ gap: "($gap * 3)",
1003
+ });
1004
+
1005
+ useGlobalStyles("main footer .meta", {
1006
+ display: "flex",
1007
+ flow: "row wrap",
1008
+ justifyContent: "space-between",
1009
+ gap: "($gap * 1.5) ($gap * 6)",
1010
+ marginBlockStart: "($gap * 6)",
1011
+ color: "#text-muted",
1012
+ preset: "small",
1013
+ });
1014
+
1015
+ useGlobalStyles("main footer .meta a, main footer .kudos", {
1016
+ display: "flex",
1017
+ alignItems: "center",
1018
+ gap: "$gap",
1019
+ color: "#text-muted",
1020
+ textDecoration: "none",
1021
+ });
1022
+
1023
+ useGlobalStyles("main footer .meta a:hover, main footer .kudos:hover", {
1024
+ color: "#text",
1025
+ });
1026
+
1027
+ useGlobalStyles("main footer .kudos", {
1028
+ margin: "($gap * 3) auto",
1029
+ preset: "small",
1030
+ });
1031
+
1032
+ useGlobalStyles("starlight-lang-select label", {
1033
+ position: "relative",
1034
+ display: "flex",
1035
+ alignItems: "center",
1036
+ gap: "($gap * 0.5)",
1037
+ color: "#text-soft",
1038
+ });
1039
+
1040
+ useGlobalStyles("starlight-lang-select label:hover", {
1041
+ color: "#text",
1042
+ });
1043
+
1044
+ useGlobalStyles("starlight-lang-select select", {
1045
+ color: "#text-soft",
1046
+ border: "0",
1047
+ fill: "#clear",
1048
+ cursor: "pointer",
1049
+ });
1050
+
1051
+ useGlobalStyles("starlight-lang-select option", {
1052
+ color: "#text",
1053
+ fill: "#surface-2",
1054
+ });
1055
+
1056
+ useGlobalStyles(".td-header__social a, .td-mobile-preferences__social a", {
1057
+ color: "#accent-text",
1058
+ });
1059
+
1060
+ useGlobalStyles(
1061
+ ".td-header__social a:hover, .td-mobile-preferences__social a:hover",
1062
+ {
1063
+ color: "#text",
1064
+ },
1065
+ );
1066
+
307
1067
  useGlobalStyles("main .pagination-links", {
1068
+ display: "grid",
1069
+ gap: "($gap * 2)",
308
1070
  gridTemplateColumns: {
309
1071
  "": "repeat(2, minmax(0, 1fr))",
310
1072
  "@small": "1fr",
@@ -381,21 +1143,133 @@ export default function GlobalStyles() {
381
1143
  );
382
1144
 
383
1145
  useGlobalStyles("site-search dialog", {
1146
+ inlineSize: { "": "90%", "@mobile": "100%" },
1147
+ maxInlineSize: { "": "40rem", "@mobile": "100%" },
1148
+ blockSize: { "": "max-content", "@mobile": "100%" },
1149
+ maxBlockSize: { "": "(100% - 8rem)", "@mobile": "100%" },
1150
+ minBlockSize: { "": "15rem", "@mobile": "100%" },
1151
+ margin: { "": "4rem auto auto", "@mobile": "0" },
1152
+ padding: "0",
1153
+ color: "#text",
1154
+ border: true,
1155
+ radius: { "": "$card-radius", "@mobile": "0" },
384
1156
  fill: "#surface",
1157
+ shadow: "0 1rem 3rem #shadow",
1158
+ });
1159
+
1160
+ useGlobalStyles("site-search dialog[open]", {
1161
+ display: "flex",
1162
+ });
1163
+
1164
+ useGlobalStyles("site-search dialog::backdrop", {
1165
+ fill: "#overlay",
1166
+ backdropFilter: "blur(0.25rem)",
1167
+ });
1168
+
1169
+ useGlobalStyles("site-search .dialog-frame", {
1170
+ position: "relative",
1171
+ display: "flex",
1172
+ flow: "column",
1173
+ flexGrow: "1",
1174
+ gap: "($gap * 2)",
1175
+ padding: { "": "($gap * 3)", "@mobile": "($gap * 2)" },
1176
+ overflow: "auto",
1177
+ });
1178
+
1179
+ useGlobalStyles("site-search .search-container", {
1180
+ inlineSize: "100%",
1181
+ paddingBlockStart: { "": "0", "@mobile": "4rem" },
385
1182
  });
386
1183
 
387
1184
  useGlobalStyles("site-search button[data-close-modal]", {
1185
+ position: "absolute",
1186
+ zIndex: "1",
1187
+ insetBlockStart: "($gap * 2)",
1188
+ insetInlineEnd: "($gap * 2)",
1189
+ display: { "": "none", "@mobile": "flex" },
1190
+ alignItems: "center",
1191
+ justifyContent: "center",
388
1192
  gap: "0.375rem",
1193
+ blockSize: "3rem",
1194
+ minBlockSize: "3rem",
389
1195
  paddingInlineStart: "0.625rem",
390
1196
  paddingInlineEnd: "0.625rem",
391
- color: "#text",
1197
+ color: "#text-soft",
392
1198
  border: true,
1199
+ borderColor: "#border",
393
1200
  radius: "$radius",
1201
+ fill: "#surface-3",
1202
+ fontSize: "$small-font-size",
1203
+ fontWeight: "$body-bold-font-weight",
1204
+ boxShadow: "none",
1205
+ cursor: "pointer",
1206
+ transition: "color 120ms ease, background-color 120ms ease",
1207
+ });
1208
+
1209
+ useGlobalStyles("site-search button[data-close-modal]:hover", {
1210
+ color: "#text",
1211
+ fill: "#surface-3-hover",
1212
+ });
1213
+
1214
+ useGlobalStyles("site-search button[data-close-modal]:active", {
1215
+ color: "#text",
1216
+ fill: "#surface-3-pressed",
394
1217
  });
395
1218
 
396
1219
  useGlobalStyles("#starlight__search", {
1220
+ "$pagefind-ui-primary": "#accent-text",
1221
+ "$pagefind-ui-text": "#text-soft",
1222
+ "$pagefind-ui-font": "$body-font-family",
397
1223
  "$pagefind-ui-background": "#surface",
398
1224
  "$pagefind-ui-border": "#border",
1225
+ "$pagefind-ui-border-width": "$border-width",
1226
+ "$pagefind-ui-tag": "#surface-3",
1227
+ });
1228
+
1229
+ useGlobalStyles("#starlight__search .pagefind-ui__form", {
1230
+ position: "relative",
1231
+ });
1232
+
1233
+ useGlobalStyles("#starlight__search .pagefind-ui__search-input", {
1234
+ inlineSize: "100%",
1235
+ minBlockSize: "3rem",
1236
+ paddingInlineStart: "2.75rem",
1237
+ paddingInlineEnd: "2.75rem",
1238
+ color: "#text",
1239
+ border: true,
1240
+ radius: "$radius",
1241
+ fill: "#surface",
1242
+ });
1243
+
1244
+ useGlobalStyles("#starlight__search .pagefind-ui__search-clear", {
1245
+ position: "absolute",
1246
+ insetBlockStart: "0",
1247
+ insetInlineEnd: "0",
1248
+ inlineSize: "3rem",
1249
+ blockSize: "3rem",
1250
+ padding: "0",
1251
+ color: "#text-soft",
1252
+ border: "0",
1253
+ fill: "#clear",
1254
+ });
1255
+
1256
+ useGlobalStyles("#starlight__search .pagefind-ui__results-area", {
1257
+ marginBlockStart: "($gap * 3)",
1258
+ });
1259
+
1260
+ useGlobalStyles("#starlight__search .pagefind-ui__result", {
1261
+ paddingBlockStart: "($gap * 2)",
1262
+ paddingBlockEnd: "($gap * 2)",
1263
+ borderBlockStart: "$border-width solid #border",
1264
+ });
1265
+
1266
+ useGlobalStyles("#starlight__search .pagefind-ui__result-link", {
1267
+ color: "#text",
1268
+ fontWeight: "$body-bold-font-weight",
1269
+ });
1270
+
1271
+ useGlobalStyles("[data-search-modal-open]", {
1272
+ overflow: "hidden",
399
1273
  });
400
1274
 
401
1275
  useGlobalStyles("#starlight__search .pagefind-ui__search-input", {
@@ -405,15 +1279,43 @@ export default function GlobalStyles() {
405
1279
  });
406
1280
 
407
1281
  useGlobalStyles("#starlight__search .pagefind-ui__form::before", {
1282
+ content: '""',
1283
+ position: "absolute",
1284
+ zIndex: "1",
1285
+ insetBlockStart: "1rem",
1286
+ insetInlineStart: "1rem",
1287
+ display: "block",
408
1288
  inlineSize: "1rem",
409
1289
  blockSize: "1rem",
1290
+ fill: "#text-soft",
410
1291
  mask: `url("${svgIconUrl(searchIcon)}") center / contain no-repeat`,
1292
+ pointerEvents: "none",
411
1293
  });
412
1294
 
413
1295
  useGlobalStyles("#starlight__search .pagefind-ui__search-clear::before", {
1296
+ content: '""',
1297
+ display: "block",
1298
+ inlineSize: "1rem",
1299
+ blockSize: "1rem",
1300
+ fill: "#current",
414
1301
  mask: `url("${svgIconUrl(closeIcon)}") center / 1rem no-repeat`,
415
1302
  });
416
1303
 
1304
+ useGlobalStyles("#starlight__search .pagefind-ui__search-clear", {
1305
+ display: "flex",
1306
+ alignItems: "center",
1307
+ justifyContent: "center",
1308
+ fontSize: "0",
1309
+ cursor: "pointer",
1310
+ });
1311
+
1312
+ useGlobalStyles(
1313
+ "#starlight__search .pagefind-ui__search-clear.pagefind-ui__suppressed",
1314
+ {
1315
+ display: "none",
1316
+ },
1317
+ );
1318
+
417
1319
  useGlobalStyles(
418
1320
  "starlight-menu-button button, mobile-starlight-toc .toggle",
419
1321
  {
@@ -426,10 +1328,11 @@ export default function GlobalStyles() {
426
1328
  );
427
1329
 
428
1330
  useGlobalStyles("starlight-menu-button button", {
1331
+ display: "flex",
429
1332
  alignItems: "center",
430
1333
  justifyContent: "center",
431
- inlineSize: "$sl-menu-button-size",
432
- blockSize: "$sl-menu-button-size",
1334
+ inlineSize: "$docs-menu-button-size",
1335
+ blockSize: "$docs-menu-button-size",
433
1336
  minBlockSize: "0",
434
1337
  padding: "0",
435
1338
  color: "#text-soft",
@@ -441,6 +1344,17 @@ export default function GlobalStyles() {
441
1344
  blockSize: "1.125rem",
442
1345
  });
443
1346
 
1347
+ useGlobalStyles(
1348
+ 'starlight-menu-button[aria-expanded="true"] .open-menu, starlight-menu-button:not([aria-expanded="true"]) .close-menu',
1349
+ {
1350
+ hide: true,
1351
+ },
1352
+ );
1353
+
1354
+ useGlobalStyles("[data-mobile-menu-expanded]", {
1355
+ overflow: { "": "auto", "@mobile": "hidden" },
1356
+ });
1357
+
444
1358
  useGlobalStyles(
445
1359
  "starlight-menu-button button:hover, mobile-starlight-toc .toggle:hover, mobile-starlight-toc details[open] .toggle",
446
1360
  {
@@ -462,15 +1376,20 @@ export default function GlobalStyles() {
462
1376
 
463
1377
  useGlobalStyles("mobile-starlight-toc summary", {
464
1378
  position: "relative",
1379
+ display: "flex",
465
1380
  alignItems: "center",
1381
+ justifyContent: "flex-start",
466
1382
  gap: "$gap",
467
- paddingInlineStart: "$sl-content-pad-x",
468
- paddingInlineEnd: "$sl-content-pad-x",
1383
+ paddingInlineStart: "$docs-content-pad-x",
1384
+ paddingInlineEnd: "$docs-content-pad-x",
469
1385
  });
470
1386
 
471
1387
  useGlobalStyles(
472
1388
  "mobile-starlight-toc .toggle, mobile-starlight-toc .toggle:hover, mobile-starlight-toc details[open] .toggle, mobile-starlight-toc .toggle:active",
473
1389
  {
1390
+ display: "inline-flex",
1391
+ alignItems: "center",
1392
+ flexShrink: "0",
474
1393
  gap: "$gap",
475
1394
  margin: "0",
476
1395
  padding: "0",
@@ -493,18 +1412,18 @@ export default function GlobalStyles() {
493
1412
  );
494
1413
 
495
1414
  useGlobalStyles("mobile-starlight-toc summary .toggle", {
496
- gap: "$gap",
497
- margin: "0",
1415
+ whiteSpace: "nowrap",
498
1416
  });
499
1417
 
500
1418
  useGlobalStyles("mobile-starlight-toc .dropdown", {
501
1419
  position: "absolute",
502
1420
  inset: "100% top",
503
- insetInlineStart: "$sl-content-pad-x",
1421
+ insetInlineStart: "$docs-content-pad-x",
504
1422
  zIndex: "1",
505
1423
  display: "block",
506
- inlineSize: "min(22rem, (100% - ($sl-content-pad-x * 2)))",
507
- maxBlockSize: "min(24rem, (100vh - ($sl-mobile-toc-height + ($gap * 4))))",
1424
+ inlineSize: "min(22rem, (100% - ($docs-content-pad-x * 2)))",
1425
+ maxBlockSize:
1426
+ "min(24rem, (100vh - ($docs-mobile-toc-height + ($gap * 4))))",
508
1427
  margin: "$gap 0 0",
509
1428
  padding: "4px",
510
1429
  overflow: "auto",
@@ -515,9 +1434,42 @@ export default function GlobalStyles() {
515
1434
  shadow: "0 0.75rem 2rem #shadow",
516
1435
  });
517
1436
 
1437
+ useGlobalStyles("mobile-starlight-toc nav", {
1438
+ position: "fixed",
1439
+ zIndex: "9",
1440
+ insetBlockStart: "($docs-nav-height - $border-width)",
1441
+ insetInlineStart: {
1442
+ "": "0",
1443
+ "@medium-layout": "$sidebar-width",
1444
+ },
1445
+ insetInlineEnd: "0",
1446
+ fill: "#surface",
1447
+ });
1448
+
1449
+ useGlobalStyles("mobile-starlight-toc details", {
1450
+ position: "relative",
1451
+ });
1452
+
1453
+ useGlobalStyles("mobile-starlight-toc .display-current", {
1454
+ minInlineSize: "0",
1455
+ overflow: "hidden",
1456
+ color: "#text",
1457
+ textOverflow: "ellipsis",
1458
+ whiteSpace: "nowrap",
1459
+ });
1460
+
518
1461
  useGlobalStyles("mobile-starlight-toc .dropdown .isMobile", {
519
1462
  display: "grid",
520
1463
  gap: "1px",
1464
+ margin: "0",
1465
+ padding: "0",
1466
+ listStyle: "none",
1467
+ });
1468
+
1469
+ useGlobalStyles("mobile-starlight-toc .dropdown .isMobile > li", {
1470
+ margin: "0",
1471
+ padding: "0",
1472
+ listStyle: "none",
521
1473
  });
522
1474
 
523
1475
  useGlobalStyles("mobile-starlight-toc .dropdown .isMobile a", {
@@ -540,7 +1492,7 @@ export default function GlobalStyles() {
540
1492
  'mobile-starlight-toc .dropdown .isMobile a[aria-current="true"]',
541
1493
  {
542
1494
  color: "#accent-text",
543
- fill: "color-mix(in oklab, #accent-surface 12%, #surface-2)",
1495
+ fill: "#accent-surface-2-subtle",
544
1496
  },
545
1497
  );
546
1498
 
@@ -558,57 +1510,67 @@ export default function GlobalStyles() {
558
1510
  },
559
1511
  );
560
1512
 
561
- useGlobalStyles(".sl-markdown-content :where(table, blockquote, details)", {
562
- borderColor: "#border",
563
- });
564
-
565
- useGlobalStyles(".sl-markdown-content table", {
566
- inlineSize: "100%",
567
- borderCollapse: "separate",
568
- borderSpacing: "0",
569
- overflow: "auto",
570
- color: "#text-soft",
571
- fontSize: "$small-font-size",
572
- lineHeight: "$small-line-height",
573
- border: true,
574
- radius: "$card-radius",
575
- scrollbarWidth: "thin",
576
- });
577
-
578
- useGlobalStyles(".sl-markdown-content :where(th, td)", {
579
- padding: "($gap * 1.5) ($gap * 2)",
580
- verticalAlign: "top",
1513
+ useGlobalStyles(".sl-markdown-content :where(blockquote, details)", {
581
1514
  borderColor: "#border",
582
1515
  });
583
1516
 
584
- useGlobalStyles(".sl-markdown-content :where(th, td):first-child", {
585
- paddingInlineStart: "($gap * 2)",
586
- });
587
-
588
- useGlobalStyles(".sl-markdown-content :where(th, td):last-child", {
589
- paddingInlineEnd: "($gap * 2)",
590
- });
591
-
592
- useGlobalStyles(".sl-markdown-content tbody tr:last-child td", {
593
- borderBlockEnd: "0",
594
- });
595
-
596
- useGlobalStyles(".sl-markdown-content th", {
597
- color: "#text",
598
- fill: "#surface-2",
599
- });
1517
+ useGlobalStyles(
1518
+ ".sl-markdown-content",
1519
+ resolveComponentStyles("MarkdownTable", {
1520
+ Table: {
1521
+ $: "table",
1522
+ inlineSize: "100%",
1523
+ borderCollapse: "separate",
1524
+ borderSpacing: "0",
1525
+ overflow: "auto",
1526
+ color: "#text-soft",
1527
+ fontSize: "$small-font-size",
1528
+ lineHeight: "$small-line-height",
1529
+ border: true,
1530
+ borderColor: "#border",
1531
+ radius: "$card-radius",
1532
+ scrollbarWidth: "thin",
1533
+ },
1534
+ Cell: {
1535
+ $: "th, td",
1536
+ padding: "($gap * 1.5) ($gap * 2)",
1537
+ verticalAlign: "top",
1538
+ borderColor: "#border",
1539
+ },
1540
+ LastBodyRowCell: {
1541
+ $: "tbody td",
1542
+ borderBlockEnd: {
1543
+ "@own(:is(tbody tr:last-child > td))": "0",
1544
+ },
1545
+ },
1546
+ HeaderCell: {
1547
+ $: "th",
1548
+ color: "#text",
1549
+ fill: "#surface-2",
1550
+ textAlign: "start",
1551
+ radius: {
1552
+ "@own(:is(thead:first-child tr:first-child > th) & :first-child & !:last-child)":
1553
+ "($card-radius - $border-width) top-left",
1554
+ "@own(:is(thead:first-child tr:first-child > th) & !:first-child & :last-child)":
1555
+ "($card-radius - $border-width) top-right",
1556
+ "@own(:is(thead:first-child tr:first-child > th) & :first-child & :last-child)":
1557
+ "($card-radius - $border-width) top",
1558
+ },
1559
+ },
1560
+ }),
1561
+ );
600
1562
 
601
1563
  useGlobalStyles(":root, :root:has(.td-top-tabs)", {
602
- "$sl-nav-height": {
1564
+ "$docs-nav-height": {
603
1565
  "@mobile": "3.5rem",
604
1566
  },
605
- "$sl-nav-pad-x": {
1567
+ "$docs-nav-pad-x": {
606
1568
  "@mobile": "1rem",
607
1569
  },
608
- "$sl-nav-gap": {
1570
+ "$docs-nav-gap": {
609
1571
  "@mobile": "0.5rem",
610
1572
  },
611
- "$sl-menu-button-size": {
1573
+ "$docs-menu-button-size": {
612
1574
  "@mobile": "2.25rem",
613
1575
  },
614
1576
  });
@@ -620,10 +1582,10 @@ export default function GlobalStyles() {
620
1582
  "@mobile": "center",
621
1583
  },
622
1584
  inlineSize: {
623
- "@mobile": "$sl-menu-button-size",
1585
+ "@mobile": "$docs-menu-button-size",
624
1586
  },
625
1587
  blockSize: {
626
- "@mobile": "$sl-menu-button-size",
1588
+ "@mobile": "$docs-menu-button-size",
627
1589
  },
628
1590
  minBlockSize: {
629
1591
  "@mobile": "0",
@@ -674,7 +1636,7 @@ export default function GlobalStyles() {
674
1636
  });
675
1637
 
676
1638
  useGlobalStyles(":root[data-has-toc]", {
677
- "$sl-mobile-toc-height": {
1639
+ "$docs-mobile-toc-height": {
678
1640
  "@narrow-layout": "2.5rem",
679
1641
  },
680
1642
  });
@@ -701,7 +1663,7 @@ export default function GlobalStyles() {
701
1663
  });
702
1664
 
703
1665
  useGlobalStyles(":root[data-has-toc], :root[data-has-toc]", {
704
- "$sl-mobile-toc-height": {
1666
+ "$docs-mobile-toc-height": {
705
1667
  "@medium-layout": "calc(2.5rem + ($gap * 3))",
706
1668
  },
707
1669
  });