@tenphi/starlight 0.5.0 → 0.6.1

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 (38) hide show
  1. package/dist/components/Card.astro +5 -3
  2. package/dist/components/GlobalStyles.js +761 -0
  3. package/dist/components/LayoutComponents.js +404 -0
  4. package/dist/components/Logo.astro +39 -0
  5. package/dist/components/MobileNavigationTabs.astro +7 -2
  6. package/dist/components/PackageVersion.astro +22 -0
  7. package/dist/components/Preview.astro +21 -10
  8. package/dist/components/Steps.astro +5 -1
  9. package/dist/components/Tabs.astro +9 -2
  10. package/dist/components/TastyComponents.js +156 -0
  11. package/dist/components/component-styles.test.ts +75 -0
  12. package/dist/components/component-styles.ts +79 -0
  13. package/dist/components/customize-component.js +10 -0
  14. package/dist/components/svg-icon.test.ts +11 -0
  15. package/dist/components/svg-icon.ts +11 -0
  16. package/dist/components/tasty-states.d.ts +2 -0
  17. package/dist/components/tasty-states.js +21 -0
  18. package/dist/components-public.d.ts +1 -0
  19. package/dist/components.d.ts +2 -1
  20. package/dist/components.js +2 -1
  21. package/dist/index.d.ts +2 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +297 -163
  24. package/dist/index.js.map +1 -1
  25. package/dist/{navigation-CC0dlAL8.js → navigation-CkQXI2Zb.js} +41 -2
  26. package/dist/navigation-CkQXI2Zb.js.map +1 -0
  27. package/dist/navigation.d.ts +11 -2
  28. package/dist/navigation.d.ts.map +1 -1
  29. package/dist/navigation.js +2 -2
  30. package/dist/overrides/Header.astro +28 -5
  31. package/dist/overrides/MobileMenuFooter.astro +15 -0
  32. package/dist/overrides/ThemeSelect.astro +69 -0
  33. package/dist/routes/DocsPage.astro +43 -145
  34. package/package.json +5 -9
  35. package/dist/components/NavigationTree.astro +0 -98
  36. package/dist/navigation-CC0dlAL8.js.map +0 -1
  37. package/dist/styles.css +0 -1346
  38. package/dist/styles.d.ts +0 -1
package/dist/styles.css DELETED
@@ -1,1346 +0,0 @@
1
- @import "@fontsource-variable/onest/wght.css";
2
- @import "@fontsource-variable/jetbrains-mono/wght.css";
3
-
4
- @layer starlight.reset, starlight.base, starlight.core, starlight.content, starlight.components, starlight.utils, cookbook;
5
-
6
- @layer cookbook {
7
- :root {
8
- color-scheme: dark;
9
-
10
- /* Bridge the public Cookbook tokens into Starlight's internal contract. */
11
- --sl-font: var(--body-font-family);
12
- --sl-font-mono: var(--code-font-family);
13
- --sl-line-height: var(--body-line-height);
14
- --sl-line-height-headings: var(--heading-line-height);
15
- --sl-text-body: var(--body-font-size);
16
- --sl-text-body-sm: var(--small-font-size);
17
- --sl-text-code: var(--code-font-size);
18
- --sl-text-code-sm: var(--small-font-size);
19
- --sl-text-h1: var(--h1-font-size);
20
- --sl-text-h2: var(--h2-font-size);
21
- --sl-text-h3: var(--h3-font-size);
22
- --sl-text-h4: var(--h4-font-size);
23
- --sl-text-h5: var(--h5-font-size);
24
- --sl-content-width: var(--content-width);
25
- --sl-sidebar-width: var(--sidebar-width);
26
-
27
- --sl-color-white: var(--td-text);
28
- --sl-color-gray-1: var(--td-text);
29
- --sl-color-gray-2: var(--td-text-soft);
30
- --sl-color-gray-3: color-mix(
31
- in oklab,
32
- var(--td-text) 66%,
33
- var(--td-surface)
34
- );
35
- --sl-color-gray-4: var(--td-border-strong);
36
- --sl-color-gray-5: var(--td-border);
37
- --sl-color-gray-6: var(--td-surface-2);
38
- --sl-color-gray-7: var(--td-surface-3);
39
- --sl-color-black: var(--td-surface);
40
- --sl-color-text: var(--td-text-soft);
41
- --sl-color-text-accent: var(--td-accent-text);
42
- --sl-color-text-invert: var(--td-accent-surface-text);
43
- --sl-color-bg: var(--td-surface);
44
- --sl-color-bg-nav: var(--td-surface);
45
- --sl-color-bg-sidebar: var(--td-surface);
46
- --sl-color-bg-inline-code: var(--td-surface-2);
47
- --sl-color-bg-accent: var(--td-accent-surface);
48
- --sl-color-hairline-light: var(--td-border);
49
- --sl-color-hairline: var(--td-border);
50
- --sl-color-hairline-shade: var(--td-border);
51
- --sl-color-backdrop-overlay: var(--td-overlay);
52
- --sl-color-accent-low: color-mix(
53
- in oklab,
54
- var(--td-accent-surface) 12%,
55
- var(--td-surface)
56
- );
57
- --sl-color-accent: var(--td-accent-text);
58
- --sl-color-accent-high: var(--td-accent-text);
59
- --sl-shadow-sm: none;
60
- --sl-shadow-md: 0 0.5rem 1.5rem var(--td-shadow);
61
- --sl-shadow-lg: 0 1rem 3rem var(--td-shadow);
62
-
63
- /* Tabler Icons, MIT: https://tabler.io/icons */
64
- --td-icon-search: url("./icons/search.svg?no-inline");
65
- --td-icon-chevron-down: url("./icons/chevron-down.svg?no-inline");
66
- --td-icon-chevron-right: url("./icons/chevron-right.svg?no-inline");
67
- --td-icon-arrow-left: url("./icons/arrow-left.svg?no-inline");
68
- --td-icon-arrow-right: url("./icons/arrow-right.svg?no-inline");
69
- --td-icon-copy: url("./icons/copy.svg?no-inline");
70
- --td-icon-menu: url("./icons/menu.svg?no-inline");
71
- --td-icon-close: url("./icons/close.svg?no-inline");
72
- --td-icon-device: url("./icons/device-desktop.svg?no-inline");
73
- --td-icon-sun: url("./icons/sun.svg?no-inline");
74
- --td-icon-moon: url("./icons/moon.svg?no-inline");
75
- --td-icon-contrast: url("./icons/contrast.svg?no-inline");
76
-
77
- --sl-nav-height: 4.5rem;
78
- --sl-nav-pad-x: clamp(1.25rem, 2.5vw, 2rem);
79
- --sl-sidebar-pad-x: 1.5rem;
80
- --sl-content-pad-x: clamp(1.5rem, 4vw, 4rem);
81
- --sl-main-pad: 0 0 5rem;
82
- }
83
-
84
- :root:has(.td-top-tabs) {
85
- --sl-nav-height: 7rem;
86
- }
87
-
88
- :root[data-theme="light"] {
89
- color-scheme: light;
90
- }
91
-
92
- @media (prefers-color-scheme: light) {
93
- :root:not([data-theme]) {
94
- color-scheme: light;
95
- }
96
- }
97
-
98
- html,
99
- body,
100
- button,
101
- input,
102
- select,
103
- textarea {
104
- font-family: var(--body-font-family);
105
- }
106
-
107
- body,
108
- .td-shell {
109
- color: var(--td-text);
110
- background: var(--td-surface);
111
- font-size: var(--body-font-size);
112
- font-weight: var(--body-font-weight);
113
- line-height: var(--body-line-height);
114
- letter-spacing: var(--body-letter-spacing);
115
- }
116
-
117
- :where(h1, h2, h3, h4, h5, h6),
118
- .site-title {
119
- color: var(--td-text);
120
- font-family: var(--heading-font-family);
121
- font-weight: var(--heading-font-weight);
122
- letter-spacing: var(--heading-letter-spacing);
123
- text-wrap: balance;
124
- }
125
-
126
- h1 {
127
- font-size: var(--h1-font-size);
128
- line-height: var(--h1-line-height);
129
- letter-spacing: var(--h1-letter-spacing);
130
- }
131
- h2 {
132
- font-size: var(--h2-font-size);
133
- line-height: var(--h2-line-height);
134
- letter-spacing: var(--h2-letter-spacing);
135
- }
136
- h3 {
137
- font-size: var(--h3-font-size);
138
- line-height: var(--h3-line-height);
139
- letter-spacing: var(--h3-letter-spacing);
140
- }
141
- h4 {
142
- font-size: var(--h4-font-size);
143
- line-height: var(--h4-line-height);
144
- letter-spacing: var(--h4-letter-spacing);
145
- }
146
- h5 {
147
- font-size: var(--h5-font-size);
148
- line-height: var(--h5-line-height);
149
- letter-spacing: var(--h5-letter-spacing);
150
- }
151
- h6 {
152
- font-size: var(--h6-font-size);
153
- line-height: var(--h6-line-height);
154
- letter-spacing: var(--h6-letter-spacing);
155
- }
156
-
157
- :where(code, kbd, samp, pre) {
158
- font-family: var(--code-font-family);
159
- }
160
-
161
- :where(a, button, input, select, textarea, summary):focus-visible {
162
- outline: var(--outline-width) solid var(--td-focus);
163
- outline-offset: var(--outline-offset);
164
- }
165
-
166
- :where(button, input, select, textarea):not(:where(.expressive-code *)) {
167
- min-height: var(--control-height);
168
- border-radius: var(--radius);
169
- box-shadow: none;
170
- }
171
-
172
- .expressive-code {
173
- --ec-brdRad: calc(var(--card-radius) - var(--border-width));
174
- --ec-brdWd: var(--border-width);
175
- --ec-brdCol: var(--td-border);
176
- --ec-frm-copyIcon: var(--td-icon-copy);
177
- }
178
-
179
- .expressive-code .copy button {
180
- border-radius: var(--radius);
181
- background: var(--td-surface-3);
182
- box-shadow: none;
183
- }
184
-
185
- .expressive-code .copy button::before {
186
- border-color: var(--td-border);
187
- opacity: 1;
188
- }
189
-
190
- .expressive-code .copy button div {
191
- display: none;
192
- }
193
-
194
- .expressive-code .copy button:hover,
195
- .expressive-code .copy button:focus-visible {
196
- background: var(--td-surface-3-hover);
197
- }
198
-
199
- .expressive-code .copy button:active {
200
- background: var(--td-surface-3-pressed);
201
- }
202
-
203
- starlight-theme-select label,
204
- starlight-theme-select select,
205
- site-search button[data-open-modal],
206
- site-search dialog,
207
- .pagination-links a,
208
- a[aria-current="page"] {
209
- border-radius: var(--radius);
210
- }
211
-
212
- #starlight__sidebar a[aria-current="page"],
213
- #starlight__sidebar a[aria-current="page"]:hover,
214
- #starlight__sidebar a[aria-current="page"]:focus {
215
- color: var(--td-accent-text);
216
- background: color-mix(
217
- in oklab,
218
- var(--td-accent-surface) 12%,
219
- var(--td-surface)
220
- );
221
- }
222
-
223
- starlight-theme-select label {
224
- box-sizing: border-box;
225
- position: relative;
226
- justify-content: center;
227
- inline-size: var(--control-height);
228
- block-size: var(--control-height);
229
- padding: 0;
230
- border: 0;
231
- background: transparent;
232
- transition:
233
- color 120ms ease,
234
- background-color 120ms ease;
235
- }
236
-
237
- starlight-theme-select label:hover,
238
- starlight-theme-select label:has(select:focus-visible) {
239
- color: var(--td-text);
240
- background: var(--td-surface-2-hover);
241
- }
242
-
243
- starlight-theme-select label:has(select:active) {
244
- background: var(--td-surface-2-pressed);
245
- }
246
-
247
- starlight-theme-select label:has(select:focus-visible) {
248
- outline: var(--outline-width) solid var(--td-focus);
249
- outline-offset: var(--outline-offset);
250
- }
251
-
252
- starlight-theme-select select {
253
- position: absolute;
254
- inset: 0;
255
- inline-size: 100%;
256
- block-size: 100%;
257
- padding: 0;
258
- margin: 0;
259
- opacity: 0;
260
- cursor: pointer;
261
- }
262
-
263
- starlight-theme-select select:focus-visible {
264
- outline: 0;
265
- }
266
-
267
- .td-header {
268
- display: flex;
269
- flex-direction: column;
270
- inline-size: 100%;
271
- max-inline-size: calc(var(--layout-width) - (var(--sl-sidebar-pad-x) * 2));
272
- block-size: 100%;
273
- min-inline-size: 0;
274
- margin-inline: auto;
275
- }
276
-
277
- .td-header__primary {
278
- display: grid;
279
- grid-template-columns:
280
- minmax(9rem, var(--sidebar-width)) minmax(12rem, 28rem)
281
- minmax(5rem, 1fr);
282
- align-items: center;
283
- flex: 1;
284
- gap: clamp(1rem, 2.5vw, 2.5rem);
285
- min-block-size: 0;
286
- }
287
-
288
- .td-header__title,
289
- .td-header__search {
290
- min-inline-size: 0;
291
- }
292
-
293
- .td-header__tools {
294
- align-items: center;
295
- justify-content: flex-end;
296
- gap: calc(var(--gap) * 1.5);
297
- }
298
-
299
- .td-header__social {
300
- display: flex;
301
- align-items: center;
302
- }
303
-
304
- .site-title {
305
- color: var(--td-text);
306
- font-weight: var(--heading-bold-font-weight);
307
- letter-spacing: var(--heading-letter-spacing);
308
- }
309
-
310
- .td-top-tabs {
311
- display: flex;
312
- align-items: stretch;
313
- gap: clamp(1.25rem, 2.5vw, 2.5rem);
314
- inline-size: 100%;
315
- min-block-size: 2.5rem;
316
- overflow-x: auto;
317
- scrollbar-width: none;
318
- }
319
-
320
- .td-top-tabs::-webkit-scrollbar {
321
- display: none;
322
- }
323
-
324
- .td-top-tabs a {
325
- position: relative;
326
- display: inline-flex;
327
- align-items: center;
328
- flex: none;
329
- padding-block: calc(var(--gap) * 0.75) var(--gap);
330
- color: var(--td-text-soft);
331
- font-size: var(--small-font-size);
332
- font-weight: var(--body-bold-font-weight);
333
- line-height: var(--small-line-height);
334
- text-decoration: none;
335
- white-space: nowrap;
336
- }
337
-
338
- .td-top-tabs a:hover {
339
- color: var(--td-text);
340
- }
341
-
342
- .td-top-tabs a[aria-current="page"] {
343
- color: var(--td-accent-text);
344
- }
345
-
346
- .td-top-tabs a[aria-current="page"]::after {
347
- content: "";
348
- position: absolute;
349
- inset: auto 0 0;
350
- block-size: 2px;
351
- border-radius: 999px;
352
- background: var(--td-accent-surface);
353
- }
354
-
355
- .td-mobile-tabs {
356
- display: grid;
357
- gap: var(--gap);
358
- margin-block-end: calc(var(--gap) * 2);
359
- padding-block-end: calc(var(--gap) * 2);
360
- border-block-end: var(--border-width) solid var(--td-border);
361
- }
362
-
363
- .td-mobile-tabs__label {
364
- padding-inline: calc(var(--gap) * 1.25);
365
- color: var(--td-text);
366
- font-size: var(--small-font-size);
367
- font-weight: var(--body-bold-font-weight);
368
- line-height: var(--small-line-height);
369
- }
370
-
371
- .td-mobile-tabs ul {
372
- display: grid;
373
- grid-template-columns: repeat(2, minmax(0, 1fr));
374
- gap: var(--gap);
375
- padding: 0;
376
- margin: 0;
377
- list-style: none;
378
- }
379
-
380
- .td-mobile-tabs li {
381
- margin: 0;
382
- }
383
-
384
- .td-mobile-tabs a {
385
- display: flex;
386
- align-items: center;
387
- min-block-size: 2.25rem;
388
- padding: calc(var(--gap) * 0.75) calc(var(--gap) * 1.25);
389
- color: var(--td-text-soft);
390
- font-size: var(--small-font-size);
391
- font-weight: var(--body-bold-font-weight);
392
- line-height: var(--small-line-height);
393
- text-decoration: none;
394
- border-radius: var(--radius);
395
- }
396
-
397
- .td-mobile-tabs a:hover {
398
- color: var(--td-text);
399
- background: var(--td-surface-2-hover);
400
- }
401
-
402
- .td-mobile-tabs a[aria-current="page"] {
403
- color: var(--td-accent-text);
404
- background: color-mix(
405
- in oklab,
406
- var(--td-accent-surface) 12%,
407
- var(--td-surface)
408
- );
409
- }
410
-
411
- body > .page > .header,
412
- .sidebar-pane,
413
- .right-sidebar,
414
- .content-panel + .content-panel,
415
- mobile-starlight-toc :where(nav, summary) {
416
- border: 0;
417
- }
418
-
419
- body > .page > .header,
420
- .sidebar-pane {
421
- background: var(--td-surface);
422
- }
423
-
424
- #starlight__sidebar .sidebar-content {
425
- gap: calc(var(--gap) * 3);
426
- padding-block: calc(var(--gap) * 4) calc(var(--gap) * 6);
427
- }
428
-
429
- #starlight__sidebar .top-level > li + li {
430
- margin-block-start: calc(var(--gap) * 3);
431
- }
432
-
433
- #starlight__sidebar ul ul li {
434
- margin-inline-start: calc(var(--gap) * 0.75);
435
- padding-inline-start: calc(var(--gap) * 0.75);
436
- border-inline-start: 0;
437
- }
438
-
439
- #starlight__sidebar :where(summary, a) {
440
- padding: calc(var(--gap) * 0.8) calc(var(--gap) * 1.25);
441
- line-height: 1.45;
442
- }
443
-
444
- #starlight__sidebar a {
445
- font-size: 0.9375rem;
446
- }
447
-
448
- #starlight__sidebar .large {
449
- font-size: 0.9375rem;
450
- font-weight: var(--body-bold-font-weight);
451
- }
452
-
453
- .right-sidebar-panel {
454
- padding-block-start: calc(var(--gap) * 5);
455
- }
456
-
457
- .right-sidebar-panel h2 {
458
- font-size: 0.9375rem;
459
- }
460
-
461
- .right-sidebar-panel a {
462
- padding-block: calc(var(--gap) * 0.5);
463
- font-size: var(--small-font-size);
464
- line-height: 1.45;
465
- }
466
-
467
- main > .content-panel:first-of-type {
468
- padding-block-start: calc(var(--gap) * 3);
469
- padding-block-end: calc(var(--gap) * 2);
470
- }
471
-
472
- main > .content-panel:nth-of-type(2) {
473
- padding-block-start: calc(var(--gap) * 2);
474
- }
475
-
476
- .sl-markdown-content {
477
- font-size: 1.025rem;
478
- }
479
-
480
- site-search button[data-open-modal] {
481
- border: var(--border-width) solid var(--td-border);
482
- background: var(--td-surface);
483
- box-shadow: none;
484
- transition:
485
- color 120ms ease,
486
- background-color 120ms ease;
487
- }
488
-
489
- site-search button[data-open-modal]:hover {
490
- border-color: var(--td-border);
491
- background: var(--td-surface-2-hover);
492
- }
493
-
494
- site-search button[data-open-modal]:active {
495
- background: var(--td-surface-2-pressed);
496
- }
497
-
498
- .pagination-links a {
499
- border-width: var(--border-width);
500
- border-color: var(--td-border);
501
- background: var(--td-surface-2);
502
- box-shadow: none;
503
- transition:
504
- color 120ms ease,
505
- background-color 120ms ease;
506
- }
507
-
508
- .pagination-links a:hover {
509
- border-color: var(--td-border);
510
- background: var(--td-surface-2-hover);
511
- }
512
-
513
- .pagination-links a:active {
514
- background: var(--td-surface-2-pressed);
515
- }
516
-
517
- site-search button[data-open-modal] > svg,
518
- .pagination-links a > svg,
519
- starlight-theme-select .label-icon,
520
- starlight-theme-select .caret,
521
- starlight-menu-button button > svg,
522
- mobile-starlight-toc .toggle > svg,
523
- #starlight__sidebar summary > svg.caret {
524
- display: none;
525
- }
526
-
527
- site-search button[data-open-modal]::before,
528
- site-search button[data-close-modal]::before,
529
- .pagination-links a::before,
530
- starlight-theme-select label::before,
531
- starlight-theme-select label::after,
532
- starlight-menu-button button::before,
533
- mobile-starlight-toc .toggle::after,
534
- #starlight__sidebar summary::after,
535
- [data-docs-search-open]::before,
536
- [data-docs-search] button[aria-label="Close search"]::before,
537
- .td-shell__actions label:has([data-docs-theme])::before {
538
- content: "";
539
- display: block;
540
- flex: none;
541
- inline-size: 1rem;
542
- block-size: 1rem;
543
- background: currentColor;
544
- mask: var(--td-control-icon) center / contain no-repeat;
545
- }
546
-
547
- site-search button[data-open-modal]::before,
548
- [data-docs-search-open]::before {
549
- --td-control-icon: var(--td-icon-search);
550
- }
551
-
552
- site-search button[data-close-modal]::before,
553
- [data-docs-search] button[aria-label="Close search"]::before {
554
- --td-control-icon: var(--td-icon-close);
555
- }
556
-
557
- .pagination-links a::before {
558
- --td-control-icon: var(--td-icon-arrow-left);
559
- inline-size: 1.25rem;
560
- block-size: 1.25rem;
561
- }
562
-
563
- .pagination-links a[rel="next"]::before {
564
- --td-control-icon: var(--td-icon-arrow-right);
565
- }
566
-
567
- [dir="rtl"] .pagination-links a[rel="prev"]::before {
568
- --td-control-icon: var(--td-icon-arrow-right);
569
- }
570
-
571
- [dir="rtl"] .pagination-links a[rel="next"]::before {
572
- --td-control-icon: var(--td-icon-arrow-left);
573
- }
574
-
575
- starlight-theme-select label::before,
576
- starlight-theme-select label::after {
577
- position: static;
578
- translate: none;
579
- pointer-events: none;
580
- }
581
-
582
- starlight-theme-select label::after {
583
- display: none;
584
- }
585
-
586
- starlight-theme-select label::before {
587
- --td-control-icon: var(--td-icon-device);
588
- }
589
-
590
- starlight-theme-select label:has(option[value="light"]:checked)::before {
591
- --td-control-icon: var(--td-icon-sun);
592
- }
593
-
594
- starlight-theme-select label:has(option[value="dark"]:checked)::before {
595
- --td-control-icon: var(--td-icon-moon);
596
- }
597
-
598
- starlight-theme-select label::after {
599
- --td-control-icon: var(--td-icon-chevron-down);
600
- }
601
-
602
- starlight-menu-button button::before {
603
- --td-control-icon: var(--td-icon-menu);
604
- inline-size: 1.125rem;
605
- block-size: 1.125rem;
606
- }
607
-
608
- starlight-menu-button[aria-expanded="true"] button::before {
609
- --td-control-icon: var(--td-icon-close);
610
- }
611
-
612
- mobile-starlight-toc .toggle::after,
613
- #starlight__sidebar summary::after {
614
- --td-control-icon: var(--td-icon-chevron-right);
615
- transition: rotate 120ms ease;
616
- }
617
-
618
- mobile-starlight-toc details[open] .toggle::after,
619
- #starlight__sidebar details[open] > summary::after {
620
- rotate: 90deg;
621
- }
622
-
623
- site-search dialog {
624
- background: var(--td-surface);
625
- }
626
-
627
- site-search button[data-close-modal] {
628
- gap: 0.375rem;
629
- padding-inline: 0.625rem;
630
- color: var(--td-text);
631
- border: var(--border-width) solid var(--td-border);
632
- border-radius: var(--radius);
633
- }
634
-
635
- #starlight__search {
636
- --pagefind-ui-background: var(--td-surface);
637
- --pagefind-ui-border: var(--td-border);
638
- }
639
-
640
- #starlight__search .pagefind-ui__search-input {
641
- border-color: var(--td-border);
642
- background: var(--td-surface);
643
- box-shadow: none;
644
- }
645
-
646
- #starlight__search .pagefind-ui__form::before {
647
- inline-size: 1rem;
648
- block-size: 1rem;
649
- mask: var(--td-icon-search) center / contain no-repeat;
650
- }
651
-
652
- #starlight__search .pagefind-ui__search-clear::before {
653
- mask: var(--td-icon-close) center / 1rem no-repeat;
654
- }
655
-
656
- starlight-menu-button button,
657
- mobile-starlight-toc .toggle {
658
- color: var(--td-text);
659
- border: var(--border-width) solid var(--td-border);
660
- border-radius: var(--radius);
661
- background: var(--td-surface-3);
662
- transition:
663
- color 120ms ease,
664
- background-color 120ms ease;
665
- }
666
-
667
- starlight-menu-button button {
668
- align-items: center;
669
- justify-content: center;
670
- inline-size: var(--sl-menu-button-size);
671
- block-size: var(--sl-menu-button-size);
672
- min-block-size: 0;
673
- padding: 0;
674
- color: var(--td-text-soft);
675
- box-shadow: none;
676
- }
677
-
678
- starlight-menu-button button:hover,
679
- mobile-starlight-toc .toggle:hover,
680
- mobile-starlight-toc details[open] .toggle {
681
- color: var(--td-text);
682
- border-color: var(--td-border);
683
- background: var(--td-surface-3-hover);
684
- }
685
-
686
- starlight-menu-button[aria-expanded="true"] button,
687
- starlight-menu-button[aria-expanded="true"] button:hover,
688
- starlight-menu-button button:active,
689
- mobile-starlight-toc .toggle:active {
690
- color: var(--td-text);
691
- border-color: var(--td-border);
692
- background: var(--td-surface-3-pressed);
693
- box-shadow: none;
694
- }
695
-
696
- mobile-starlight-toc summary {
697
- padding-inline: var(--sl-content-pad-x);
698
- }
699
-
700
- mobile-starlight-toc .toggle,
701
- mobile-starlight-toc .toggle:hover,
702
- mobile-starlight-toc details[open] .toggle,
703
- mobile-starlight-toc .toggle:active {
704
- gap: var(--gap);
705
- padding: 0;
706
- color: var(--td-text-soft);
707
- font-size: var(--small-font-size);
708
- font-weight: var(--body-bold-font-weight);
709
- line-height: var(--small-line-height);
710
- border: 0;
711
- border-radius: 0;
712
- background: transparent;
713
- box-shadow: none;
714
- }
715
-
716
- mobile-starlight-toc .toggle:hover,
717
- mobile-starlight-toc details[open] .toggle,
718
- mobile-starlight-toc .toggle:active {
719
- color: var(--td-text);
720
- }
721
-
722
- .sl-markdown-content :where(code):not(:where(.not-content *)) {
723
- border-radius: calc(var(--radius) * 0.65);
724
- }
725
-
726
- .sl-markdown-content :where(table, blockquote, details) {
727
- border-color: var(--td-border);
728
- }
729
-
730
- .sl-markdown-content table {
731
- inline-size: 100%;
732
- border-collapse: separate;
733
- border-spacing: 0;
734
- overflow: auto;
735
- color: var(--td-text-soft);
736
- font-size: var(--small-font-size);
737
- line-height: var(--small-line-height);
738
- border: var(--border-width) solid var(--td-border);
739
- border-radius: var(--card-radius);
740
- scrollbar-width: thin;
741
- }
742
-
743
- .sl-markdown-content :where(th, td) {
744
- padding: calc(var(--gap) * 1.5) calc(var(--gap) * 2);
745
- vertical-align: top;
746
- border-color: var(--td-border);
747
- }
748
-
749
- .sl-markdown-content :where(th, td):first-child {
750
- padding-inline-start: calc(var(--gap) * 2);
751
- }
752
-
753
- .sl-markdown-content :where(th, td):last-child {
754
- padding-inline-end: calc(var(--gap) * 2);
755
- }
756
-
757
- .sl-markdown-content tbody tr:last-child td {
758
- border-block-end: 0;
759
- }
760
-
761
- .sl-markdown-content th {
762
- color: var(--td-text);
763
- background: var(--td-surface-2);
764
- }
765
-
766
- .td-card {
767
- display: grid;
768
- gap: calc(var(--gap) * 1.5);
769
- padding: calc(var(--gap) * 2.5);
770
- color: var(--td-text);
771
- text-decoration: none;
772
- border: var(--border-width) solid var(--td-border);
773
- border-radius: var(--card-radius);
774
- background: var(--td-surface-2);
775
- box-shadow: 0 1px 2px var(--td-shadow);
776
- transition:
777
- background-color 120ms ease,
778
- box-shadow 120ms ease,
779
- translate 120ms ease;
780
- }
781
-
782
- a.td-card:hover {
783
- border-color: var(--td-border);
784
- background: var(--td-surface-2-hover);
785
- box-shadow: 0 calc(var(--gap) * 0.75) calc(var(--gap) * 2) var(--td-shadow);
786
- translate: 0 -1px;
787
- }
788
-
789
- a.td-card:active {
790
- background: var(--td-surface-2-pressed);
791
- translate: 0;
792
- }
793
-
794
- .td-card :where(h2, h3, p) {
795
- margin: 0;
796
- }
797
-
798
- .td-preview {
799
- margin-inline: 0;
800
- overflow: clip;
801
- color: var(--td-text);
802
- border: var(--border-width) solid var(--td-border);
803
- border-radius: var(--card-radius);
804
- background: var(--td-surface);
805
- box-shadow: 0 1px 2px var(--td-shadow);
806
- }
807
-
808
- .td-preview > figcaption,
809
- .td-preview__code > summary {
810
- padding: calc(var(--gap) * 1.5) calc(var(--gap) * 2);
811
- font-size: var(--small-font-size);
812
- line-height: var(--small-line-height);
813
- background: var(--td-surface-2);
814
- }
815
-
816
- .td-preview__stage {
817
- padding: calc(var(--gap) * 3);
818
- background: var(--td-surface);
819
- }
820
-
821
- .td-preview iframe {
822
- display: block;
823
- width: 100%;
824
- min-height: 18rem;
825
- border: 0;
826
- background: var(--td-surface);
827
- }
828
-
829
- .td-preview__code {
830
- border-top: var(--border-width) solid var(--td-border);
831
- }
832
-
833
- .td-preview__code > summary {
834
- cursor: pointer;
835
- }
836
-
837
- .td-preview__code pre {
838
- margin: 0;
839
- border-radius: 0;
840
- }
841
-
842
- .td-steps {
843
- display: grid;
844
- gap: calc(var(--gap) * 2);
845
- padding-inline-start: calc(var(--gap) * 4);
846
- border-inline-start: var(--border-width) solid var(--td-border);
847
- }
848
-
849
- .td-steps > li {
850
- padding-inline-start: var(--gap);
851
- }
852
-
853
- .td-steps > li::marker {
854
- color: var(--td-accent-text);
855
- font-weight: var(--body-bold-font-weight);
856
- }
857
-
858
- .td-tabs {
859
- display: flex;
860
- flex-wrap: wrap;
861
- gap: var(--gap);
862
- padding: var(--gap);
863
- border: var(--border-width) solid var(--td-border);
864
- border-radius: var(--card-radius);
865
- background: var(--td-surface-2);
866
- }
867
-
868
- .td-shell {
869
- min-height: 100vh;
870
- }
871
-
872
- .td-shell__header {
873
- position: sticky;
874
- top: 0;
875
- z-index: 2;
876
- display: flex;
877
- flex-direction: column;
878
- padding-inline: clamp(1.25rem, 3vw, 2rem);
879
- background: color-mix(in oklab, var(--td-surface) 96%, transparent);
880
- backdrop-filter: blur(12px);
881
- }
882
-
883
- .td-shell__header-primary {
884
- display: flex;
885
- align-items: center;
886
- justify-content: space-between;
887
- gap: calc(var(--gap) * 3);
888
- inline-size: 100%;
889
- max-inline-size: calc(var(--layout-width) - (var(--gap) * 6));
890
- min-block-size: 4.5rem;
891
- margin-inline: auto;
892
- }
893
-
894
- .td-shell__header > .td-top-tabs {
895
- max-inline-size: calc(var(--layout-width) - (var(--gap) * 6));
896
- margin-inline: auto;
897
- }
898
-
899
- .td-shell__header-primary > a {
900
- color: var(--td-text);
901
- font-family: var(--heading-font-family);
902
- font-weight: var(--heading-font-weight);
903
- text-decoration: none;
904
- }
905
-
906
- .td-shell__actions {
907
- display: flex;
908
- align-items: center;
909
- gap: var(--gap);
910
- }
911
-
912
- .td-shell__actions :where(select, button),
913
- [data-docs-search] :where(input, button) {
914
- padding-inline: calc(var(--gap) * 1.5);
915
- color: var(--td-text);
916
- border: var(--border-width) solid var(--td-border);
917
- }
918
-
919
- .td-shell__actions select,
920
- [data-docs-search] input {
921
- background: var(--td-surface);
922
- }
923
-
924
- .td-shell__actions button,
925
- [data-docs-search] button,
926
- site-search button[data-close-modal] {
927
- background: var(--td-surface-2);
928
- transition: background-color 120ms ease;
929
- }
930
-
931
- .td-shell__actions button:hover,
932
- [data-docs-search] button:hover,
933
- site-search button[data-close-modal]:hover {
934
- border-color: var(--td-border);
935
- background: var(--td-surface-2-hover);
936
- }
937
-
938
- .td-shell__actions button:active,
939
- [data-docs-search] button:active,
940
- site-search button[data-close-modal]:active {
941
- background: var(--td-surface-2-pressed);
942
- }
943
-
944
- .td-shell__actions label:has(select) {
945
- position: relative;
946
- }
947
-
948
- .td-appearance-control {
949
- display: grid;
950
- place-items: center;
951
- inline-size: var(--control-height);
952
- block-size: var(--control-height);
953
- border-radius: var(--radius);
954
- }
955
-
956
- .td-appearance-control:hover {
957
- background: var(--td-surface-2-hover);
958
- }
959
-
960
- .td-appearance-control select {
961
- position: absolute;
962
- inset: 0;
963
- inline-size: 100%;
964
- block-size: 100%;
965
- padding: 0;
966
- border: 0;
967
- opacity: 0;
968
- cursor: pointer;
969
- }
970
-
971
- .td-shell__actions label:has([data-docs-theme])::before {
972
- --td-control-icon: var(--td-icon-device);
973
- position: absolute;
974
- z-index: 1;
975
- inset-block-start: 50%;
976
- inset-inline-start: 50%;
977
- translate: -50% -50%;
978
- pointer-events: none;
979
- }
980
-
981
- .td-shell__actions
982
- label:has([data-docs-theme] option[value="light"]:checked)::before {
983
- --td-control-icon: var(--td-icon-sun);
984
- }
985
-
986
- .td-shell__actions
987
- label:has([data-docs-theme] option[value="dark"]:checked)::before {
988
- --td-control-icon: var(--td-icon-moon);
989
- }
990
-
991
- .td-shell__actions label:has(select)::after {
992
- --td-control-icon: var(--td-icon-chevron-down);
993
- content: "";
994
- position: absolute;
995
- z-index: 1;
996
- inset-block-start: 50%;
997
- inset-inline-end: 0.75rem;
998
- inline-size: 1rem;
999
- block-size: 1rem;
1000
- translate: 0 -50%;
1001
- background: var(--td-text);
1002
- mask: var(--td-control-icon) center / contain no-repeat;
1003
- pointer-events: none;
1004
- }
1005
-
1006
- .td-appearance-control::after {
1007
- display: none;
1008
- }
1009
-
1010
- .td-appearance-control--contrast::before {
1011
- --td-control-icon: var(--td-icon-contrast);
1012
- content: "";
1013
- display: block;
1014
- inline-size: 1rem;
1015
- block-size: 1rem;
1016
- background: var(--td-text-soft);
1017
- mask: var(--td-control-icon) center / contain no-repeat;
1018
- pointer-events: none;
1019
- }
1020
-
1021
- .td-shell__actions select {
1022
- padding-inline-end: calc(var(--gap) * 4);
1023
- appearance: none;
1024
- }
1025
-
1026
- .td-shell__actions [data-docs-theme] {
1027
- padding-inline-start: calc(var(--gap) * 4);
1028
- }
1029
-
1030
- [data-docs-search-open] {
1031
- display: inline-flex;
1032
- align-items: center;
1033
- gap: var(--gap);
1034
- }
1035
-
1036
- [data-docs-search-open] > kbd {
1037
- display: flex;
1038
- gap: 0.125rem;
1039
- margin-inline-start: calc(var(--gap) * 1.5);
1040
- color: var(--td-text-soft);
1041
- font-size: 0.75rem;
1042
- font-weight: 500;
1043
- }
1044
-
1045
- [data-docs-search-open] kbd {
1046
- font-family: var(--body-font-family);
1047
- }
1048
-
1049
- [data-docs-search] button[aria-label="Close search"] {
1050
- display: grid;
1051
- place-items: center;
1052
- inline-size: var(--control-height);
1053
- padding: 0;
1054
- overflow: hidden;
1055
- color: transparent;
1056
- }
1057
-
1058
- [data-docs-search] button[aria-label="Close search"]::before {
1059
- color: var(--td-text);
1060
- }
1061
-
1062
- .td-visually-hidden {
1063
- position: absolute;
1064
- width: 1px;
1065
- height: 1px;
1066
- padding: 0;
1067
- margin: -1px;
1068
- overflow: hidden;
1069
- clip: rect(0, 0, 0, 0);
1070
- white-space: nowrap;
1071
- border: 0;
1072
- }
1073
-
1074
- .td-shell__layout {
1075
- display: grid;
1076
- grid-template-columns: minmax(13rem, var(--sidebar-width)) minmax(0, 1fr);
1077
- inline-size: min(100%, var(--layout-width));
1078
- margin-inline: auto;
1079
- }
1080
-
1081
- .td-shell__nav {
1082
- padding: calc(var(--gap) * 5) calc(var(--gap) * 3);
1083
- }
1084
-
1085
- .td-shell__nav ul {
1086
- margin: 0;
1087
- padding: 0;
1088
- list-style: none;
1089
- }
1090
-
1091
- .td-shell__nav ul ul {
1092
- padding-inline-start: calc(var(--gap) * 1.5);
1093
- }
1094
-
1095
- .td-shell__nav details > summary {
1096
- display: flex;
1097
- align-items: center;
1098
- justify-content: space-between;
1099
- padding: calc(var(--gap) * 0.9) calc(var(--gap) * 1.25);
1100
- color: var(--td-text);
1101
- font-weight: var(--body-bold-font-weight);
1102
- cursor: pointer;
1103
- list-style: none;
1104
- }
1105
-
1106
- .td-shell__nav details > summary::-webkit-details-marker {
1107
- display: none;
1108
- }
1109
-
1110
- .td-shell__nav details > summary::after {
1111
- content: "";
1112
- inline-size: 1rem;
1113
- block-size: 1rem;
1114
- background: var(--td-text-soft);
1115
- mask: var(--td-icon-chevron-down) center / contain no-repeat;
1116
- }
1117
-
1118
- .td-shell__nav details:not([open]) > summary::after {
1119
- rotate: -90deg;
1120
- }
1121
-
1122
- .td-shell__nav a {
1123
- display: block;
1124
- padding: calc(var(--gap) * 0.9) calc(var(--gap) * 1.25);
1125
- color: var(--td-text-soft);
1126
- border-radius: var(--radius);
1127
- text-decoration: none;
1128
- }
1129
-
1130
- .td-shell__nav a:hover {
1131
- color: var(--td-text);
1132
- background: var(--td-surface-2);
1133
- }
1134
-
1135
- .td-shell__nav a[aria-current="page"] {
1136
- color: var(--td-accent-text);
1137
- font-weight: var(--body-bold-font-weight);
1138
- background: color-mix(
1139
- in oklab,
1140
- var(--td-accent-surface) 12%,
1141
- var(--td-surface)
1142
- );
1143
- }
1144
-
1145
- .td-shell__main {
1146
- width: min(100%, var(--content-width));
1147
- padding: calc(var(--gap) * 3) clamp(1.5rem, 5vw, 4rem) calc(var(--gap) * 10);
1148
- }
1149
-
1150
- .td-shell__main img {
1151
- max-width: 100%;
1152
- height: auto;
1153
- border-radius: var(--radius);
1154
- }
1155
-
1156
- .td-shell__main :where(pre, table) {
1157
- max-width: 100%;
1158
- overflow: auto;
1159
- }
1160
-
1161
- .td-shell__main a {
1162
- color: var(--td-accent-text);
1163
- }
1164
-
1165
- [data-docs-search] {
1166
- width: min(42rem, calc(100% - 2rem));
1167
- padding: calc(var(--gap) * 2.5);
1168
- color: var(--td-text);
1169
- background: var(--td-surface);
1170
- border: var(--border-width) solid var(--td-border-strong);
1171
- border-radius: var(--card-radius);
1172
- box-shadow: var(--sl-shadow-lg);
1173
- }
1174
-
1175
- [data-docs-search]::backdrop {
1176
- background: var(--td-overlay);
1177
- }
1178
-
1179
- [data-docs-search] form {
1180
- float: inline-end;
1181
- }
1182
-
1183
- [data-docs-search] label,
1184
- [data-docs-search] input {
1185
- display: block;
1186
- width: 100%;
1187
- }
1188
-
1189
- [data-docs-search] input {
1190
- margin-block: var(--gap) calc(var(--gap) * 2);
1191
- }
1192
-
1193
- .td-skip {
1194
- position: fixed;
1195
- inset: var(--gap) auto auto var(--gap);
1196
- z-index: 4;
1197
- translate: 0 -150%;
1198
- padding: var(--gap) calc(var(--gap) * 1.5);
1199
- color: var(--td-accent-surface-text);
1200
- border-radius: var(--radius);
1201
- background: var(--td-accent-surface);
1202
- }
1203
-
1204
- .td-skip:focus {
1205
- translate: 0;
1206
- }
1207
-
1208
- @media (max-width: 48rem) {
1209
- .td-shell__header,
1210
- .td-shell__actions {
1211
- align-items: stretch;
1212
- }
1213
-
1214
- .td-shell__header {
1215
- padding-inline: 1rem;
1216
- }
1217
-
1218
- .td-shell__actions {
1219
- flex-wrap: wrap;
1220
- }
1221
-
1222
- .td-shell__layout {
1223
- grid-template-columns: 1fr;
1224
- }
1225
-
1226
- .td-shell__nav {
1227
- padding-block: calc(var(--gap) * 2);
1228
- }
1229
- }
1230
-
1231
- @media (max-width: 49.99rem) {
1232
- :root,
1233
- :root:has(.td-top-tabs) {
1234
- --sl-nav-height: 3.5rem;
1235
- --sl-nav-pad-x: 1rem;
1236
- --sl-nav-gap: 0.5rem;
1237
- --sl-menu-button-size: 2.25rem;
1238
- }
1239
-
1240
- .td-header__primary {
1241
- display: flex;
1242
- justify-content: space-between;
1243
- gap: var(--gap);
1244
- }
1245
-
1246
- .td-header__search {
1247
- margin-inline-start: auto;
1248
- }
1249
-
1250
- .site-title {
1251
- font-size: 1.125rem;
1252
- line-height: 1.5rem;
1253
- }
1254
-
1255
- site-search button[data-open-modal] {
1256
- justify-content: center;
1257
- inline-size: var(--sl-menu-button-size);
1258
- block-size: var(--sl-menu-button-size);
1259
- min-block-size: 0;
1260
- padding: 0;
1261
- color: var(--td-text-soft);
1262
- background: var(--td-surface-3);
1263
- }
1264
-
1265
- site-search button[data-open-modal]:hover {
1266
- color: var(--td-text);
1267
- background: var(--td-surface-3-hover);
1268
- }
1269
-
1270
- site-search button[data-open-modal]:active {
1271
- color: var(--td-text);
1272
- background: var(--td-surface-3-pressed);
1273
- }
1274
-
1275
- site-search button[data-open-modal]::before {
1276
- inline-size: 1.125rem;
1277
- block-size: 1.125rem;
1278
- }
1279
-
1280
- .td-top-tabs {
1281
- display: none;
1282
- }
1283
- }
1284
-
1285
- @media (max-width: 71.99rem) {
1286
- :root[data-has-toc] {
1287
- --sl-mobile-toc-height: 2.5rem;
1288
- }
1289
-
1290
- mobile-starlight-toc nav {
1291
- border-block-end: var(--border-width) solid var(--td-border);
1292
- }
1293
-
1294
- mobile-starlight-toc summary {
1295
- block-size: 2.5rem;
1296
- }
1297
-
1298
- :root[data-has-toc] main > .content-panel:first-of-type {
1299
- padding-block-start: 0;
1300
- }
1301
- }
1302
-
1303
- @media (min-width: 50rem) and (max-width: 71.99rem) {
1304
- :root[data-has-toc] {
1305
- --sl-mobile-toc-height: calc(2.5rem + (var(--gap) * 3));
1306
- }
1307
-
1308
- mobile-starlight-toc nav {
1309
- padding-block-start: calc(var(--gap) * 3);
1310
- border-block-end: 0;
1311
- }
1312
- }
1313
-
1314
- @media (min-width: 50rem) {
1315
- .td-mobile-tabs {
1316
- display: none;
1317
- }
1318
-
1319
- :root:has(.td-top-tabs) body > .page > .header {
1320
- padding-block: 0;
1321
- }
1322
-
1323
- :root:has(.td-top-tabs) body > .page > .header,
1324
- .td-shell__header:has(.td-top-tabs) {
1325
- border-bottom: var(--border-width) solid var(--td-border);
1326
- }
1327
-
1328
- .main-frame {
1329
- inline-size: min(100%, var(--layout-width));
1330
- margin-inline: auto;
1331
- }
1332
-
1333
- .sidebar-pane {
1334
- inset-inline-start: max(0px, calc((100% - var(--layout-width)) / 2));
1335
- }
1336
- }
1337
-
1338
- @media (prefers-reduced-motion: reduce) {
1339
- *,
1340
- *::before,
1341
- *::after {
1342
- scroll-behavior: auto !important;
1343
- transition-duration: 0.01ms !important;
1344
- }
1345
- }
1346
- }