@ts-for-gir/typedoc-theme 4.0.0-beta.41

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.
@@ -0,0 +1,995 @@
1
+ /*
2
+ * gi-docgen inspired theme for TypeDoc
3
+ * Provides a 3-column layout: dark sidebar | content | table of contents
4
+ *
5
+ * CSS is ordered by ascending specificity:
6
+ * 1. Custom properties (:root)
7
+ * 2. Element/class selectors (low specificity)
8
+ * 3. Content area (.gi-docgen-content — specificity 0,1,x)
9
+ * 4. ID-scoped selectors (#gi-docgen-sidebar, #gi-docgen-toc — specificity 1,x,x)
10
+ */
11
+
12
+ /* ============================
13
+ * CSS Custom Properties
14
+ * ============================ */
15
+ :root {
16
+ /* Theme colors */
17
+ --text-color: rgb(51, 51, 51);
18
+ --text-color-muted: rgba(51, 51, 51, 0.65);
19
+ --primary: rgb(28, 118, 228);
20
+ --body-bg: #fff;
21
+ --link-color: var(--primary);
22
+
23
+ /* Override TypeDoc's built-in variables for light mode */
24
+ --light-color-background: #fff;
25
+ --light-color-background-secondary: #f7f7f7;
26
+ --light-color-background-active: #e0e0e0;
27
+ --light-color-text: rgb(51, 51, 51);
28
+ --light-color-text-aside: rgba(51, 51, 51, 0.65);
29
+ --light-color-link: rgb(28, 118, 228);
30
+
31
+ /* Override TypeDoc's dark mode variables */
32
+ --dark-color-background: #121212;
33
+ --dark-color-background-secondary: #2a2a2a;
34
+ --dark-color-background-active: #444;
35
+ --dark-color-text: #f6f6f6;
36
+ --dark-color-text-aside: rgba(246, 246, 246, 0.65);
37
+ --dark-color-link: rgb(144, 194, 255);
38
+
39
+ /* Sidebar */
40
+ --sidebar-bg: #151515;
41
+ --sidebar-text-color: #fafafa;
42
+ --sidebar-primary: rgb(144, 194, 255);
43
+ --sidebar-selected-bg: var(--primary);
44
+ --sidebar-hover-bg: rgba(127, 127, 127, 0.2);
45
+ --sidebar-search-bg: rgba(127, 127, 127, 0.25);
46
+ --sidebar-search-focus-bg: rgba(127, 127, 127, 0.3);
47
+ --sidebar-border-color: rgba(255, 255, 255, 0.1);
48
+ --sidebar-padding: 1.5em;
49
+ --sidebar-section-spacing: 0.75em;
50
+ --sidebar-min-width: 30ch;
51
+ --sidebar-max-width: 43ch;
52
+ --sidebar-font-size-sm: 0.75rem;
53
+ --sidebar-font-size: 0.85rem;
54
+ --sidebar-font-size-lg: 0.9rem;
55
+
56
+ /* Boxes / Code Blocks */
57
+ --box-bg: rgba(135, 135, 135, 0.085);
58
+ --box-radius: 0.35rem;
59
+ --box-padding: 0.75rem;
60
+ --box-text-color: #111;
61
+
62
+ /* Typography */
63
+ --body-font-family:
64
+ -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif,
65
+ "Apple Color Emoji", "Segoe UI Emoji";
66
+ --body-font-size: clamp(16px, 1vw, 18px);
67
+ --monospace-font-family: "Source Code Pro", monospace;
68
+ --monospace-font-size: 86%;
69
+ --heading-weight: 700;
70
+
71
+ /* Layout */
72
+ --preferred-content-width: 111ch;
73
+ --content-padding: 2em 4em;
74
+ --toc-width: 25ch;
75
+
76
+ /* Transitions */
77
+ --transition-speed: 150ms;
78
+
79
+ /* Badge colors (light mode) */
80
+ --badge-signal: #c04040;
81
+ --badge-signal-bg: rgba(220, 80, 80, 0.12);
82
+ --badge-signal-light-bg: rgba(220, 80, 80, 0.08);
83
+ --badge-virtual: #1c76e4;
84
+ --badge-virtual-bg: rgba(28, 118, 228, 0.12);
85
+ --badge-orange: #b35c1e;
86
+ --badge-orange-bg: rgba(230, 126, 34, 0.12);
87
+ --badge-purple: #8e44ad;
88
+ --badge-purple-bg: rgba(142, 68, 173, 0.12);
89
+ --badge-deprecated: #c01c24;
90
+ --badge-deprecated-bg: rgba(224, 27, 36, 0.12);
91
+ --badge-since: #1a7f37;
92
+ --badge-since-bg: rgba(38, 162, 105, 0.12);
93
+
94
+ /* Warning/Error */
95
+ --warning-bg: rgba(229, 165, 10, 0.15);
96
+ --error-bg: rgba(224, 27, 36, 0.15);
97
+ }
98
+
99
+ /* ============================
100
+ * Dark Mode
101
+ * Duplicated for data-theme="dark" (explicit) and data-theme="os" (system preference).
102
+ * CSS requires separate rules — no way to merge these.
103
+ * ============================ */
104
+ @media (prefers-color-scheme: dark) {
105
+ :root[data-theme="os"] {
106
+ --text-color: #f6f6f6;
107
+ --text-color-muted: rgba(246, 246, 246, 0.65);
108
+ --primary: rgb(144, 194, 255);
109
+ --body-bg: #121212;
110
+ --sidebar-bg: #1e1e1e;
111
+ --sidebar-selected-bg: rgb(17, 112, 228);
112
+ --box-bg: rgba(135, 135, 135, 0.15);
113
+ --box-text-color: #eee;
114
+ --link-color: var(--primary);
115
+ --badge-signal: #f07070;
116
+ --badge-virtual: #5aaeff;
117
+ --badge-orange: #e0944d;
118
+ --badge-purple: #b87fd8;
119
+ --badge-deprecated: #f06070;
120
+ --badge-since: #56d364;
121
+ }
122
+ }
123
+
124
+ :root[data-theme="dark"] {
125
+ --text-color: #f6f6f6;
126
+ --text-color-muted: rgba(246, 246, 246, 0.65);
127
+ --primary: rgb(144, 194, 255);
128
+ --body-bg: #121212;
129
+ --sidebar-bg: #1e1e1e;
130
+ --sidebar-selected-bg: rgb(17, 112, 228);
131
+ --box-bg: rgba(135, 135, 135, 0.15);
132
+ --box-text-color: #eee;
133
+ --link-color: var(--primary);
134
+ --badge-signal: #f07070;
135
+ --badge-virtual: #5aaeff;
136
+ --badge-orange: #e0944d;
137
+ --badge-purple: #b87fd8;
138
+ --badge-deprecated: #f06070;
139
+ --badge-since: #56d364;
140
+ }
141
+
142
+ /* ============================
143
+ * Base Styles (element/low specificity)
144
+ * ============================ */
145
+ *,
146
+ *::before,
147
+ *::after {
148
+ box-sizing: border-box;
149
+ }
150
+
151
+ html {
152
+ font-size: var(--body-font-size);
153
+ font-family: var(--body-font-family);
154
+ }
155
+
156
+ body {
157
+ margin: 0;
158
+ padding: 0;
159
+ background: var(--body-bg);
160
+ color: var(--text-color);
161
+ line-height: 1.6;
162
+ }
163
+
164
+ a {
165
+ color: var(--link-color);
166
+ text-decoration: none;
167
+ }
168
+
169
+ a:hover {
170
+ text-decoration: underline;
171
+ }
172
+
173
+ code,
174
+ pre {
175
+ font-family: var(--monospace-font-family);
176
+ font-size: var(--monospace-font-size);
177
+ }
178
+
179
+ pre {
180
+ background: var(--box-bg);
181
+ border: none;
182
+ border-radius: var(--box-radius);
183
+ padding: var(--box-padding);
184
+ overflow-x: auto;
185
+ color: var(--box-text-color);
186
+ }
187
+
188
+ pre code {
189
+ background: transparent;
190
+ padding: 0;
191
+ border: none;
192
+ }
193
+
194
+ h1,
195
+ h2,
196
+ h3,
197
+ h4,
198
+ h5,
199
+ h6 {
200
+ font-weight: var(--heading-weight);
201
+ margin-top: 1.5em;
202
+ margin-bottom: 0.5em;
203
+ }
204
+
205
+ h1 {
206
+ font-size: 1.8rem;
207
+ }
208
+ h2 {
209
+ font-size: 1.4rem;
210
+ }
211
+ h3 {
212
+ font-size: 1.2rem;
213
+ }
214
+
215
+ /* ============================
216
+ * Content Styles (class selectors — low specificity)
217
+ * ============================ */
218
+
219
+ /* Kind icons — hidden in gi-docgen theme */
220
+ .tsd-kind-icon {
221
+ display: none;
222
+ }
223
+
224
+ /* Type parameters */
225
+ .tsd-type-parameters {
226
+ list-style: none;
227
+ padding: 0;
228
+ }
229
+
230
+ .tsd-type-parameters > li {
231
+ margin-bottom: 0.5em;
232
+ }
233
+
234
+ /* Flags (abstract, protected, etc.) */
235
+ .tsd-tag {
236
+ display: inline-block;
237
+ padding: 0.1em 0.5em;
238
+ border-radius: 3px;
239
+ font-size: var(--sidebar-font-size-sm);
240
+ font-weight: 600;
241
+ text-transform: uppercase;
242
+ background: var(--box-bg);
243
+ color: var(--text-color-muted);
244
+ margin-right: 0.3em;
245
+ }
246
+
247
+ /* Source links */
248
+ .tsd-sources,
249
+ .tsd-sources a {
250
+ font-size: var(--sidebar-font-size);
251
+ color: var(--text-color-muted);
252
+ }
253
+
254
+ .tsd-sources a:hover {
255
+ color: var(--primary);
256
+ }
257
+
258
+ /* Hierarchy */
259
+ .tsd-hierarchy {
260
+ list-style: none;
261
+ padding-left: 1.5em;
262
+ }
263
+
264
+ /* Index / member list */
265
+ .tsd-index-list {
266
+ list-style: none;
267
+ padding: 0;
268
+ column-count: 2;
269
+ column-gap: 2em;
270
+ }
271
+
272
+ .tsd-index-list li {
273
+ break-inside: avoid;
274
+ margin-bottom: 0.3em;
275
+ }
276
+
277
+ /* Comments */
278
+ .tsd-comment {
279
+ margin: 1em 0;
280
+ }
281
+
282
+ /* Deprecation notice */
283
+ .tsd-is-deprecated {
284
+ opacity: 0.7;
285
+ }
286
+
287
+ /* Checkbox icon styling for filter panel */
288
+ .tsd-filter-input svg {
289
+ width: 16px;
290
+ height: 16px;
291
+ }
292
+
293
+ /* Page title (gi-docgen style) */
294
+ .gi-docgen-page-title {
295
+ margin-bottom: 1.5em;
296
+ margin-top: 1.75em;
297
+ }
298
+
299
+ .gi-docgen-object-type {
300
+ display: block;
301
+ font-size: var(--sidebar-font-size-sm);
302
+ text-transform: uppercase;
303
+ letter-spacing: 0.07em;
304
+ color: var(--text-color-muted);
305
+ margin-bottom: 0.35em;
306
+ }
307
+
308
+ .gi-docgen-page-title h1 {
309
+ font-size: 2rem;
310
+ margin: 0;
311
+ line-height: 1.2;
312
+ display: flex;
313
+ align-items: center;
314
+ flex-wrap: wrap;
315
+ gap: 0.1em;
316
+ }
317
+
318
+ .gi-docgen-page-title h1 a {
319
+ color: var(--primary);
320
+ }
321
+
322
+ .gi-docgen-page-title h1 a:hover {
323
+ text-decoration: underline;
324
+ }
325
+
326
+ .gi-docgen-breadcrumb-sep {
327
+ font-size: 0.6em;
328
+ color: var(--text-color-muted);
329
+ font-weight: normal;
330
+ }
331
+
332
+ /* Module metadata info block (gi-docgen style) */
333
+ .gi-docgen-module-metadata {
334
+ margin-top: 1em;
335
+ }
336
+
337
+ .gi-docgen-meta-description {
338
+ font-size: 1rem;
339
+ margin: 0 0 0.75em 0;
340
+ color: var(--color-text);
341
+ }
342
+
343
+ .gi-docgen-module-metadata table {
344
+ border-collapse: collapse;
345
+ font-size: var(--sidebar-font-size-lg);
346
+ }
347
+
348
+ .gi-docgen-module-metadata td {
349
+ padding: 0.2em 0;
350
+ }
351
+
352
+ .gi-docgen-module-metadata td:first-child {
353
+ padding-right: 1.5em;
354
+ white-space: nowrap;
355
+ color: var(--text-color-muted);
356
+ }
357
+
358
+ .gi-docgen-module-metadata a {
359
+ color: var(--color-link);
360
+ }
361
+
362
+ /* Anchor links (gi-docgen style: "#" instead of SVG) */
363
+ .tsd-anchor-icon {
364
+ position: relative;
365
+ z-index: 1;
366
+ text-decoration: none;
367
+ padding: 0 0.4em;
368
+ color: var(--text-color-muted);
369
+ }
370
+
371
+ .tsd-anchor-icon:hover {
372
+ color: var(--primary);
373
+ }
374
+
375
+ .tsd-anchor-icon svg {
376
+ display: none;
377
+ }
378
+
379
+ .tsd-anchor-icon::before {
380
+ content: "#";
381
+ font-size: var(--sidebar-font-size);
382
+ }
383
+
384
+ /* Member items */
385
+ .tsd-panel {
386
+ margin-bottom: 1.5em;
387
+ }
388
+
389
+ /* Signatures */
390
+ .tsd-signature {
391
+ background: var(--box-bg);
392
+ border: none;
393
+ padding: var(--box-padding);
394
+ border-radius: var(--box-radius);
395
+ font-family: var(--monospace-font-family);
396
+ font-size: var(--monospace-font-size);
397
+ overflow-x: auto;
398
+ }
399
+
400
+ /* Breadcrumbs */
401
+ .tsd-breadcrumb {
402
+ list-style: none;
403
+ padding: 0;
404
+ margin: 0;
405
+ display: flex;
406
+ flex-wrap: wrap;
407
+ gap: 0.2em;
408
+ }
409
+
410
+ .tsd-breadcrumb li::after {
411
+ content: " › ";
412
+ }
413
+
414
+ .tsd-breadcrumb li:last-child::after {
415
+ content: "";
416
+ }
417
+
418
+ /* Overlay (mobile menu) */
419
+ .overlay {
420
+ display: none;
421
+ }
422
+
423
+ body.menu-visible .overlay {
424
+ display: block;
425
+ position: fixed;
426
+ inset: 0;
427
+ background: rgba(0, 0, 0, 0.5);
428
+ z-index: 5;
429
+ }
430
+
431
+ /* Module member summaries (categorized homepage + module pages) */
432
+ .gi-docgen-content .tsd-member-summaries {
433
+ margin: 0;
434
+ padding: 0;
435
+ }
436
+
437
+ .gi-docgen-content .tsd-member-summary {
438
+ margin: 0;
439
+ padding: 0;
440
+ }
441
+
442
+ .gi-docgen-content .tsd-member-summary p {
443
+ margin: 0 0 1em 0;
444
+ padding: 0;
445
+ }
446
+
447
+ .gi-docgen-content .tsd-member-summary-name {
448
+ padding: 0;
449
+ }
450
+
451
+ /* Readme section: downscale heading levels so h1→h3 size, h2→h4 size, etc.
452
+ * The Readme accordion title is an h2, so inner headings must be visually smaller. */
453
+ .gi-docgen-content .tsd-accordion .tsd-panel.tsd-typography h1 {
454
+ font-size: 1.2em;
455
+ }
456
+
457
+ .gi-docgen-content .tsd-accordion .tsd-panel.tsd-typography h2 {
458
+ font-size: 1.1em;
459
+ }
460
+
461
+ .gi-docgen-content .tsd-accordion .tsd-panel.tsd-typography h3 {
462
+ font-size: 1em;
463
+ }
464
+
465
+ .gi-docgen-content .tsd-accordion .tsd-panel.tsd-typography :is(h4, h5, h6) {
466
+ font-size: 0.95em;
467
+ }
468
+
469
+ /* ============================
470
+ * Accordion chevrons (shared between content area, TOC, and sidebar)
471
+ * ============================ */
472
+ :is(.gi-docgen-content, #gi-docgen-toc, #gi-docgen-sidebar) .tsd-accordion summary {
473
+ display: flex;
474
+ align-items: center;
475
+ gap: 0.3em;
476
+ list-style: none;
477
+ cursor: pointer;
478
+ }
479
+
480
+ :is(.gi-docgen-content, #gi-docgen-toc, #gi-docgen-sidebar) .tsd-accordion summary::-webkit-details-marker {
481
+ display: none;
482
+ }
483
+
484
+ :is(.gi-docgen-content, #gi-docgen-toc, #gi-docgen-sidebar) .tsd-accordion summary::marker {
485
+ display: none;
486
+ content: "";
487
+ }
488
+
489
+ :is(.gi-docgen-content, #gi-docgen-toc, #gi-docgen-sidebar) .tsd-accordion summary :is(h1, h2, h3, h4, h5, h6) {
490
+ margin: 0;
491
+ }
492
+
493
+ :is(.gi-docgen-content, #gi-docgen-toc, #gi-docgen-sidebar) .tsd-accordion summary > svg:first-child {
494
+ display: none;
495
+ }
496
+
497
+ :is(.gi-docgen-content, #gi-docgen-toc, #gi-docgen-sidebar) .tsd-accordion summary::before {
498
+ content: "+";
499
+ display: inline-flex;
500
+ justify-content: center;
501
+ align-items: center;
502
+ width: 1rem;
503
+ height: 1rem;
504
+ border-radius: calc(0.75 * var(--box-radius));
505
+ flex-shrink: 0;
506
+ font-family: monospace;
507
+ font-size: 0.7rem;
508
+ font-weight: bold;
509
+ color: var(--box-text-color);
510
+ background: var(--box-bg);
511
+ }
512
+
513
+ :is(.gi-docgen-content, #gi-docgen-toc, #gi-docgen-sidebar) .tsd-accordion[open] > summary::before {
514
+ content: "-";
515
+ }
516
+
517
+ /* ============================
518
+ * Sidebar search (gi-docgen style)
519
+ * ============================ */
520
+ .gi-docgen-search {
521
+ margin-bottom: 1em;
522
+ }
523
+
524
+ .gi-docgen-search-button {
525
+ display: flex;
526
+ align-items: center;
527
+ gap: 0.5em;
528
+ width: 100%;
529
+ border: none;
530
+ border-radius: 50px;
531
+ padding: 0.5em 1em;
532
+ font-size: var(--sidebar-font-size-lg);
533
+ font-family: var(--body-font-family);
534
+ background: var(--sidebar-search-bg);
535
+ color: var(--sidebar-text-color);
536
+ cursor: pointer;
537
+ transition: background-color var(--transition-speed) ease;
538
+ }
539
+
540
+ .gi-docgen-search-button:hover,
541
+ .gi-docgen-search-button:focus {
542
+ background: var(--sidebar-search-focus-bg);
543
+ }
544
+
545
+ .gi-docgen-search-button svg {
546
+ width: 16px;
547
+ height: 16px;
548
+ flex-shrink: 0;
549
+ opacity: 0.7;
550
+ }
551
+
552
+ .gi-docgen-search-button span {
553
+ opacity: 0.6;
554
+ }
555
+
556
+ /* ============================
557
+ * GIR member badges (extend .tsd-tag base style)
558
+ * ============================ */
559
+ .tsd-tag-gir-signal {
560
+ background: var(--badge-signal-bg);
561
+ color: var(--badge-signal);
562
+ }
563
+
564
+ .tsd-tag-gir-virtual-method,
565
+ .tsd-tag-gir-read-only {
566
+ background: var(--badge-virtual-bg);
567
+ color: var(--badge-virtual);
568
+ }
569
+
570
+ .tsd-tag-gir-signal-detailed,
571
+ .tsd-tag-gir-signal-when {
572
+ background: var(--badge-signal-light-bg);
573
+ color: var(--badge-signal);
574
+ }
575
+
576
+ .tsd-tag-gir-signal-action,
577
+ .tsd-tag-gir-write-only {
578
+ background: var(--badge-orange-bg);
579
+ color: var(--badge-orange);
580
+ }
581
+
582
+ .tsd-tag-gir-construct-only {
583
+ background: var(--badge-purple-bg);
584
+ color: var(--badge-purple);
585
+ }
586
+
587
+ .tsd-tag-gir-deprecated {
588
+ background: var(--badge-deprecated-bg);
589
+ color: var(--badge-deprecated);
590
+ }
591
+
592
+ .tsd-tag-gir-since {
593
+ background: var(--badge-since-bg);
594
+ color: var(--badge-since);
595
+ }
596
+
597
+ /* ============================
598
+ * Sidebar (Left)
599
+ * ============================ */
600
+ #gi-docgen-sidebar {
601
+ position: sticky;
602
+ top: 0;
603
+ height: 100vh;
604
+ overflow-y: auto;
605
+ min-width: var(--sidebar-min-width);
606
+ max-width: var(--sidebar-max-width);
607
+ width: var(--sidebar-max-width);
608
+ background: var(--sidebar-bg);
609
+ color: var(--sidebar-text-color);
610
+ color-scheme: dark;
611
+ padding: var(--sidebar-padding);
612
+ flex-shrink: 0;
613
+ z-index: 10;
614
+ display: flex;
615
+ flex-direction: column;
616
+ /* Override TypeDoc's theme-dependent variables so sidebar always looks dark */
617
+ --color-background: var(--sidebar-bg);
618
+ --color-text: var(--sidebar-text-color);
619
+ --color-text-aside: rgba(250, 250, 250, 0.65);
620
+ --color-link: var(--sidebar-primary);
621
+ }
622
+
623
+ #gi-docgen-sidebar a {
624
+ color: var(--sidebar-text-color);
625
+ }
626
+
627
+ #gi-docgen-sidebar a:hover {
628
+ color: var(--sidebar-primary);
629
+ text-decoration: none;
630
+ }
631
+
632
+ #gi-docgen-sidebar a.current {
633
+ color: var(--sidebar-primary);
634
+ font-weight: 600;
635
+ }
636
+
637
+ /* Sidebar header: back button + subtitle row */
638
+ #gi-docgen-sidebar .gi-docgen-sidebar-header {
639
+ display: flex;
640
+ align-items: center;
641
+ gap: 0.4em;
642
+ margin-bottom: var(--sidebar-section-spacing);
643
+ min-height: 32px;
644
+ padding: 0 0.25rem;
645
+ }
646
+
647
+ #gi-docgen-sidebar .gi-docgen-back-button {
648
+ display: flex;
649
+ align-items: center;
650
+ justify-content: center;
651
+ flex-shrink: 0;
652
+ width: 28px;
653
+ height: 28px;
654
+ border-radius: 6px;
655
+ color: var(--sidebar-text-color);
656
+ opacity: 0.7;
657
+ transition:
658
+ opacity var(--transition-speed) ease,
659
+ background-color var(--transition-speed) ease;
660
+ }
661
+
662
+ #gi-docgen-sidebar .gi-docgen-back-button:hover {
663
+ opacity: 1;
664
+ background: var(--sidebar-hover-bg);
665
+ color: var(--sidebar-text-color);
666
+ text-decoration: none;
667
+ }
668
+
669
+ #gi-docgen-sidebar .gi-docgen-logo-subtitle {
670
+ font-size: var(--sidebar-font-size-sm);
671
+ color: var(--sidebar-text-color);
672
+ opacity: 0.6;
673
+ margin: 0;
674
+ line-height: 1.3;
675
+ text-align: center;
676
+ flex: 1;
677
+ }
678
+
679
+ /* Module logo */
680
+ #gi-docgen-sidebar .gi-docgen-module-logo {
681
+ text-align: center;
682
+ margin-bottom: 0.5em;
683
+ }
684
+
685
+ #gi-docgen-sidebar .gi-docgen-module-logo .logo {
686
+ display: block;
687
+ margin: 0 auto;
688
+ height: 72px;
689
+ width: auto;
690
+ }
691
+
692
+ /* Module info section (module pages: name, versions, children, deps) */
693
+ #gi-docgen-sidebar .gi-docgen-module-info {
694
+ margin: var(--sidebar-section-spacing);
695
+ }
696
+
697
+ #gi-docgen-sidebar .gi-docgen-module-info h3 {
698
+ font-size: 1.5em;
699
+ text-transform: uppercase;
700
+ font-weight: 900;
701
+ margin: 0.75rem;
702
+ line-height: 1.2;
703
+ }
704
+
705
+ #gi-docgen-sidebar .gi-docgen-module-info h3 a {
706
+ color: var(--sidebar-text-color);
707
+ }
708
+
709
+ #gi-docgen-sidebar .gi-docgen-module-info h3 a:hover {
710
+ color: var(--sidebar-primary);
711
+ }
712
+
713
+ #gi-docgen-sidebar .gi-docgen-module-info p {
714
+ font-size: var(--sidebar-font-size-lg);
715
+ opacity: 0.8;
716
+ margin: 0;
717
+ }
718
+
719
+ #gi-docgen-sidebar .gi-docgen-module-versions {
720
+ margin: var(--sidebar-section-spacing);
721
+ }
722
+
723
+ /* Sidebar section headings */
724
+ #gi-docgen-sidebar .gi-docgen-section-heading {
725
+ font-size: var(--sidebar-font-size);
726
+ text-transform: uppercase;
727
+ letter-spacing: 0.05em;
728
+ color: var(--sidebar-text-color);
729
+ opacity: 0.7;
730
+ margin: 0 0 0.3em 0;
731
+ }
732
+
733
+ /* Sidebar sub-sections (namespaces, dependencies, etc.) */
734
+ #gi-docgen-sidebar .gi-docgen-sidebar-section {
735
+ margin-top: var(--sidebar-section-spacing);
736
+ margin-bottom: var(--sidebar-section-spacing);
737
+ }
738
+
739
+ #gi-docgen-sidebar .gi-docgen-sidebar-section > .gi-docgen-section-heading {
740
+ padding-left: var(--sidebar-section-spacing);
741
+ padding-right: var(--sidebar-section-spacing);
742
+ }
743
+
744
+ #gi-docgen-sidebar .gi-docgen-sidebar-section .gi-docgen-dep-external {
745
+ display: block;
746
+ font-size: var(--sidebar-font-size-lg);
747
+ opacity: 0.6;
748
+ padding: 0.2rem 0.5rem;
749
+ }
750
+
751
+ /* Module list in sidebar — flat links, gi-docgen style */
752
+ #gi-docgen-sidebar .gi-docgen-module-list {
753
+ list-style: none;
754
+ padding: 0;
755
+ margin: 0;
756
+ }
757
+
758
+ #gi-docgen-sidebar .gi-docgen-module-list li {
759
+ margin: 0;
760
+ }
761
+
762
+ #gi-docgen-sidebar .gi-docgen-module-list a {
763
+ display: block;
764
+ text-overflow: ellipsis;
765
+ overflow: hidden;
766
+ white-space: nowrap;
767
+ padding: 0.2rem;
768
+ margin-bottom: 0.15rem;
769
+ border-radius: var(--box-radius);
770
+ font-size: var(--sidebar-font-size-lg);
771
+ color: var(--sidebar-primary);
772
+ transition: background-color var(--transition-speed) ease;
773
+ }
774
+
775
+ #gi-docgen-sidebar .gi-docgen-sidebar-section > .gi-docgen-module-list a {
776
+ padding-left: var(--sidebar-section-spacing);
777
+ padding-right: var(--sidebar-section-spacing);
778
+ }
779
+
780
+ #gi-docgen-sidebar .gi-docgen-module-list a:hover {
781
+ background: var(--sidebar-hover-bg);
782
+ color: var(--sidebar-text-color);
783
+ text-decoration: none;
784
+ }
785
+
786
+ #gi-docgen-sidebar .gi-docgen-module-list a.current {
787
+ background: var(--sidebar-selected-bg);
788
+ color: #fff;
789
+ font-weight: 600;
790
+ }
791
+
792
+ /* Generator credits */
793
+ #gi-docgen-sidebar .gi-docgen-generator {
794
+ padding-top: 1em;
795
+ border-top: 1px solid var(--sidebar-border-color);
796
+ font-size: var(--sidebar-font-size-sm);
797
+ opacity: 0.6;
798
+ }
799
+
800
+ #gi-docgen-sidebar .gi-docgen-generator p {
801
+ margin: 0;
802
+ }
803
+
804
+ #gi-docgen-sidebar .gi-docgen-generator a {
805
+ color: var(--sidebar-primary);
806
+ }
807
+
808
+ /* Settings at the bottom of the left sidebar */
809
+ #gi-docgen-sidebar .tsd-navigation.settings {
810
+ margin-top: auto;
811
+ padding-top: 1em;
812
+ border-top: 1px solid var(--sidebar-border-color);
813
+ }
814
+
815
+ #gi-docgen-sidebar .tsd-navigation.settings h3 {
816
+ font-size: var(--sidebar-font-size);
817
+ margin: 0;
818
+ color: var(--sidebar-text-color);
819
+ }
820
+
821
+ #gi-docgen-sidebar .tsd-filter-visibility {
822
+ margin-top: 0.5em;
823
+ }
824
+
825
+ #gi-docgen-sidebar .settings-label {
826
+ font-size: 0.8rem;
827
+ opacity: 0.8;
828
+ }
829
+
830
+ #gi-docgen-sidebar .tsd-filter-input {
831
+ display: flex;
832
+ align-items: center;
833
+ gap: 0.3em;
834
+ font-size: var(--sidebar-font-size);
835
+ cursor: pointer;
836
+ }
837
+
838
+ #gi-docgen-sidebar .tsd-theme-toggle {
839
+ margin-top: 0.5em;
840
+ display: flex;
841
+ align-items: center;
842
+ gap: 0.5em;
843
+ }
844
+
845
+ #gi-docgen-sidebar .tsd-theme-toggle select {
846
+ background: var(--sidebar-search-bg);
847
+ color: var(--sidebar-text-color);
848
+ border: none;
849
+ border-radius: var(--box-radius);
850
+ padding: 0.2em 0.5em;
851
+ font-size: var(--sidebar-font-size);
852
+ }
853
+
854
+ /* ============================
855
+ * 3-Column Layout
856
+ * ============================ */
857
+ #gi-docgen-body-wrapper {
858
+ display: flex;
859
+ height: 100vh;
860
+ overflow: hidden;
861
+ }
862
+
863
+ /* Main Content (Center) */
864
+ #gi-docgen-main {
865
+ flex: 999 1 0%;
866
+ min-width: 0;
867
+ min-height: 0;
868
+ max-width: calc(var(--preferred-content-width) + 8em);
869
+ padding: var(--content-padding);
870
+ overflow-y: auto;
871
+ }
872
+
873
+ /* Search dialog */
874
+ #tsd-search {
875
+ border: 1px solid rgba(0, 0, 0, 0.15);
876
+ border-radius: var(--box-radius);
877
+ padding: 0;
878
+ max-width: 600px;
879
+ width: 90vw;
880
+ }
881
+
882
+ #tsd-search-input {
883
+ width: 100%;
884
+ padding: 0.5em 1em;
885
+ border: none;
886
+ border-bottom: 1px solid rgba(0, 0, 0, 0.08);
887
+ font-size: 1rem;
888
+ font-family: var(--body-font-family);
889
+ background: var(--body-bg);
890
+ color: var(--text-color);
891
+ }
892
+
893
+ #tsd-search-results {
894
+ list-style: none;
895
+ padding: 0;
896
+ margin: 0;
897
+ max-height: 60vh;
898
+ overflow-y: auto;
899
+ }
900
+
901
+ /* Sidebar links */
902
+ #tsd-sidebar-links {
903
+ margin-bottom: 1em;
904
+ }
905
+
906
+ #tsd-sidebar-links a {
907
+ display: block;
908
+ padding: 0.2em 0;
909
+ font-size: var(--sidebar-font-size-lg);
910
+ }
911
+
912
+ /* Table of Contents (Right) */
913
+ #gi-docgen-toc {
914
+ position: sticky;
915
+ top: 0;
916
+ height: 100vh;
917
+ overflow-y: auto;
918
+ min-width: var(--toc-width);
919
+ padding: 2em 1em;
920
+ flex: 1;
921
+ }
922
+
923
+ #gi-docgen-toc .tsd-page-navigation h3 {
924
+ font-size: var(--sidebar-font-size);
925
+ text-transform: uppercase;
926
+ letter-spacing: 0.05em;
927
+ color: var(--text-color-muted);
928
+ margin-top: 0;
929
+ }
930
+
931
+ #gi-docgen-toc a {
932
+ display: block;
933
+ padding: 0.15em 0;
934
+ font-size: var(--sidebar-font-size);
935
+ color: var(--text-color-muted);
936
+ }
937
+
938
+ #gi-docgen-toc a:hover {
939
+ color: var(--primary);
940
+ text-decoration: none;
941
+ }
942
+
943
+ #gi-docgen-toc ul {
944
+ list-style: none;
945
+ padding-left: 0.8em;
946
+ margin: 0;
947
+ }
948
+
949
+ /* Hide TypeDoc default layout elements (replaced by our 3-column layout) */
950
+ .container.container-main,
951
+ .col-sidebar,
952
+ .col-content {
953
+ display: contents;
954
+ }
955
+
956
+ .tsd-widget.menu {
957
+ display: none;
958
+ }
959
+
960
+ /* ============================
961
+ * Responsive
962
+ * ============================ */
963
+ @media (max-width: 1200px) {
964
+ #gi-docgen-toc {
965
+ display: none;
966
+ }
967
+ }
968
+
969
+ @media (max-width: 768px) {
970
+ #gi-docgen-body-wrapper {
971
+ flex-direction: column;
972
+ height: auto;
973
+ overflow: visible;
974
+ }
975
+
976
+ #gi-docgen-sidebar {
977
+ position: relative;
978
+ height: auto;
979
+ min-width: 100%;
980
+ max-width: 100%;
981
+ padding: 1em;
982
+ }
983
+
984
+ #gi-docgen-main {
985
+ padding: 1em;
986
+ }
987
+
988
+ .tsd-widget.menu {
989
+ display: inline-flex;
990
+ }
991
+
992
+ .tsd-index-list {
993
+ column-count: 1;
994
+ }
995
+ }