rdoc 6.16.1 → 7.1.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.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +196 -0
- data/LEGAL.rdoc +6 -0
- data/README.md +90 -7
- data/doc/markup_reference/markdown.md +558 -0
- data/doc/markup_reference/rdoc.rdoc +1169 -0
- data/lib/rdoc/code_object/any_method.rb +15 -7
- data/lib/rdoc/code_object/class_module.rb +62 -11
- data/lib/rdoc/code_object/constant.rb +9 -0
- data/lib/rdoc/code_object/context/section.rb +20 -1
- data/lib/rdoc/code_object/method_attr.rb +13 -1
- data/lib/rdoc/code_object/top_level.rb +13 -1
- data/lib/rdoc/cross_reference.rb +30 -21
- data/lib/rdoc/generator/aliki.rb +141 -0
- data/lib/rdoc/generator/darkfish.rb +8 -2
- data/lib/rdoc/generator/template/aliki/_footer.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/_head.rhtml +4 -4
- data/lib/rdoc/generator/template/aliki/_header.rhtml +4 -4
- data/lib/rdoc/generator/template/aliki/_icons.rhtml +208 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_ancestors.rhtml +12 -2
- data/lib/rdoc/generator/template/aliki/_sidebar_classes.rhtml +12 -2
- data/lib/rdoc/generator/template/aliki/_sidebar_extends.rhtml +20 -10
- data/lib/rdoc/generator/template/aliki/_sidebar_includes.rhtml +20 -10
- data/lib/rdoc/generator/template/aliki/_sidebar_methods.rhtml +32 -12
- data/lib/rdoc/generator/template/aliki/_sidebar_pages.rhtml +58 -28
- data/lib/rdoc/generator/template/aliki/_sidebar_search.rhtml +3 -3
- data/lib/rdoc/generator/template/aliki/_sidebar_sections.rhtml +16 -6
- data/lib/rdoc/generator/template/aliki/class.rhtml +13 -12
- data/lib/rdoc/generator/template/aliki/css/rdoc.css +401 -50
- data/lib/rdoc/generator/template/aliki/index.rhtml +2 -1
- data/lib/rdoc/generator/template/aliki/js/aliki.js +43 -21
- data/lib/rdoc/generator/template/aliki/js/c_highlighter.js +1 -1
- data/lib/rdoc/generator/template/aliki/js/{search.js → search_controller.js} +15 -6
- data/lib/rdoc/generator/template/aliki/js/search_navigation.js +105 -0
- data/lib/rdoc/generator/template/aliki/js/search_ranker.js +239 -0
- data/lib/rdoc/generator/template/aliki/page.rhtml +2 -1
- data/lib/rdoc/generator/template/aliki/servlet_not_found.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/servlet_root.rhtml +1 -1
- data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +1 -1
- data/lib/rdoc/generator/template/darkfish/class.rhtml +11 -11
- data/lib/rdoc/generator/template/darkfish/css/rdoc.css +19 -0
- data/lib/rdoc/markdown.kpeg +1 -5
- data/lib/rdoc/markdown.rb +1 -5
- data/lib/rdoc/markup/attribute_manager.rb +28 -1
- data/lib/rdoc/markup/blank_line.rb +25 -23
- data/lib/rdoc/markup/element.rb +21 -0
- data/lib/rdoc/markup/hard_break.rb +30 -27
- data/lib/rdoc/markup/heading.rb +166 -77
- data/lib/rdoc/markup/raw.rb +52 -55
- data/lib/rdoc/markup/table.rb +48 -40
- data/lib/rdoc/markup/to_ansi.rb +4 -0
- data/lib/rdoc/markup/to_bs.rb +4 -0
- data/lib/rdoc/markup/to_html.rb +31 -11
- data/lib/rdoc/markup/to_html_crossref.rb +24 -5
- data/lib/rdoc/markup/to_label.rb +11 -1
- data/lib/rdoc/markup/to_rdoc.rb +11 -3
- data/lib/rdoc/markup/verbatim.rb +1 -1
- data/lib/rdoc/markup.rb +3 -2
- data/lib/rdoc/options.rb +1 -1
- data/lib/rdoc/parser/changelog.rb +8 -0
- data/lib/rdoc/rubygems_hook.rb +3 -3
- data/lib/rdoc/text.rb +15 -0
- data/lib/rdoc/token_stream.rb +4 -8
- data/lib/rdoc/version.rb +1 -1
- data/rdoc.gemspec +3 -3
- metadata +12 -10
- data/CONTRIBUTING.rdoc +0 -219
- data/ExampleMarkdown.md +0 -39
- data/ExampleRDoc.rdoc +0 -210
|
@@ -85,6 +85,16 @@
|
|
|
85
85
|
--color-th-background: var(--color-neutral-100);
|
|
86
86
|
--color-td-background: var(--color-neutral-50);
|
|
87
87
|
|
|
88
|
+
/* Search Type Badge Colors */
|
|
89
|
+
--color-search-type-class-bg: #e6f0ff;
|
|
90
|
+
--color-search-type-class-text: #0050a0;
|
|
91
|
+
--color-search-type-module-bg: #e6ffe6;
|
|
92
|
+
--color-search-type-module-text: #060;
|
|
93
|
+
--color-search-type-constant-bg: #fff0e6;
|
|
94
|
+
--color-search-type-constant-text: #995200;
|
|
95
|
+
--color-search-type-method-bg: #f0e6ff;
|
|
96
|
+
--color-search-type-method-text: #5200a0;
|
|
97
|
+
|
|
88
98
|
/* RGBA Colors (theme-agnostic) */
|
|
89
99
|
--color-overlay: rgb(0 0 0 / 50%);
|
|
90
100
|
--color-emphasis-bg: rgb(255 111 97 / 10%);
|
|
@@ -142,12 +152,13 @@
|
|
|
142
152
|
|
|
143
153
|
/* Shadows */
|
|
144
154
|
--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 10%), 0 1px 2px -1px rgb(0 0 0 / 10%);
|
|
155
|
+
--shadow-md: 0 2px 8px rgb(0 0 0 / 10%);
|
|
145
156
|
--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 10%), 0 4px 6px -4px rgb(0 0 0 / 10%);
|
|
146
157
|
--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 10%), 0 8px 10px -6px rgb(0 0 0 / 10%);
|
|
147
158
|
|
|
148
159
|
/* Layout Dimensions */
|
|
149
|
-
--layout-sidebar-width:
|
|
150
|
-
--layout-sidebar-width-min:
|
|
160
|
+
--layout-sidebar-width: 300px;
|
|
161
|
+
--layout-sidebar-width-min: 300px;
|
|
151
162
|
--layout-sidebar-width-max: 15%;
|
|
152
163
|
--layout-toc-width-min: 240px;
|
|
153
164
|
--layout-toc-width-max: 18%;
|
|
@@ -158,6 +169,13 @@
|
|
|
158
169
|
/* Transitions */
|
|
159
170
|
--transition-fast: 150ms ease-in-out;
|
|
160
171
|
--transition-base: 200ms ease-in-out;
|
|
172
|
+
--transition-slow: 350ms ease-in-out;
|
|
173
|
+
--ease-out-smooth: cubic-bezier(0.4, 0, 0.2, 1);
|
|
174
|
+
|
|
175
|
+
/* Animation Durations */
|
|
176
|
+
--duration-fast: 250ms;
|
|
177
|
+
--duration-base: 300ms;
|
|
178
|
+
--duration-medium: 350ms;
|
|
161
179
|
|
|
162
180
|
/* Z-Index Scale */
|
|
163
181
|
--z-fixed: 300;
|
|
@@ -202,6 +220,7 @@
|
|
|
202
220
|
--color-accent-primary: var(--color-primary-500);
|
|
203
221
|
--color-accent-hover: var(--color-primary-400);
|
|
204
222
|
--color-accent-subtle: rgb(235 84 79 / 10%);
|
|
223
|
+
--color-accent-subtle-hover: rgb(235 84 79 / 20%);
|
|
205
224
|
--color-code-bg: var(--color-neutral-800);
|
|
206
225
|
--color-code-border: var(--color-neutral-700);
|
|
207
226
|
--color-nav-bg: var(--color-neutral-900);
|
|
@@ -209,8 +228,19 @@
|
|
|
209
228
|
--color-th-background: var(--color-background-tertiary);
|
|
210
229
|
--color-td-background: var(--color-background-secondary);
|
|
211
230
|
|
|
231
|
+
/* Search Type Badge Colors - Dark Theme */
|
|
232
|
+
--color-search-type-class-bg: #1e3a5f;
|
|
233
|
+
--color-search-type-class-text: #93c5fd;
|
|
234
|
+
--color-search-type-module-bg: #14532d;
|
|
235
|
+
--color-search-type-module-text: #86efac;
|
|
236
|
+
--color-search-type-constant-bg: #451a03;
|
|
237
|
+
--color-search-type-constant-text: #fcd34d;
|
|
238
|
+
--color-search-type-method-bg: #3b0764;
|
|
239
|
+
--color-search-type-method-text: #d8b4fe;
|
|
240
|
+
|
|
212
241
|
/* Dark theme shadows (slightly more subtle) */
|
|
213
242
|
--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 40%), 0 1px 2px -1px rgb(0 0 0 / 40%);
|
|
243
|
+
--shadow-md: 0 2px 8px rgb(0 0 0 / 40%);
|
|
214
244
|
--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 40%), 0 4px 6px -4px rgb(0 0 0 / 40%);
|
|
215
245
|
--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 40%), 0 8px 10px -6px rgb(0 0 0 / 40%);
|
|
216
246
|
|
|
@@ -228,13 +258,13 @@ body {
|
|
|
228
258
|
|
|
229
259
|
/* Grid layout with header, sidebar, main, and footer */
|
|
230
260
|
display: grid;
|
|
231
|
-
grid-template: "header header" var(--layout-header-height) "nav main" 1fr "nav footer" auto /
|
|
261
|
+
grid-template: "header header" var(--layout-header-height) "nav main" 1fr "nav footer" auto / var(--layout-sidebar-width) 1fr;
|
|
232
262
|
min-height: 100vh;
|
|
233
263
|
}
|
|
234
264
|
|
|
235
265
|
/* Three-column layout when TOC is present */
|
|
236
266
|
body.has-toc {
|
|
237
|
-
grid-template: "header header header" var(--layout-header-height) "nav main toc" 1fr "nav footer toc" auto /
|
|
267
|
+
grid-template: "header header header" var(--layout-header-height) "nav main toc" 1fr "nav footer toc" auto / var(--layout-sidebar-width) 1fr minmax(var(--layout-toc-width-min), var(--layout-toc-width-max));
|
|
238
268
|
min-height: 100vh;
|
|
239
269
|
}
|
|
240
270
|
|
|
@@ -291,7 +321,12 @@ pre {
|
|
|
291
321
|
border-radius: var(--radius-sm);
|
|
292
322
|
cursor: pointer;
|
|
293
323
|
opacity: 0.6;
|
|
294
|
-
transition:
|
|
324
|
+
transition:
|
|
325
|
+
opacity var(--transition-fast),
|
|
326
|
+
background var(--transition-fast),
|
|
327
|
+
border-color var(--transition-fast),
|
|
328
|
+
transform var(--transition-fast),
|
|
329
|
+
box-shadow var(--transition-fast);
|
|
295
330
|
display: flex;
|
|
296
331
|
align-items: center;
|
|
297
332
|
justify-content: center;
|
|
@@ -305,10 +340,18 @@ pre {
|
|
|
305
340
|
opacity: 1;
|
|
306
341
|
background: var(--color-background-tertiary);
|
|
307
342
|
border-color: var(--color-border-emphasis);
|
|
343
|
+
transform: translateY(-1px);
|
|
344
|
+
box-shadow: var(--shadow-md);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
.copy-code-button:focus {
|
|
348
|
+
outline: none;
|
|
349
|
+
box-shadow: 0 0 0 3px var(--color-accent-subtle);
|
|
308
350
|
}
|
|
309
351
|
|
|
310
352
|
.copy-code-button:active {
|
|
311
|
-
transform: scale(0.
|
|
353
|
+
transform: scale(0.92);
|
|
354
|
+
box-shadow: none;
|
|
312
355
|
}
|
|
313
356
|
|
|
314
357
|
.copy-code-button svg {
|
|
@@ -320,7 +363,7 @@ pre {
|
|
|
320
363
|
stroke-linecap: round;
|
|
321
364
|
stroke-linejoin: round;
|
|
322
365
|
color: var(--color-text-secondary);
|
|
323
|
-
transition: color var(--transition-fast);
|
|
366
|
+
transition: color var(--transition-fast), transform var(--transition-base);
|
|
324
367
|
}
|
|
325
368
|
|
|
326
369
|
.copy-code-button:hover svg {
|
|
@@ -457,7 +500,11 @@ header.top-navbar .navbar-search form {
|
|
|
457
500
|
border-radius: var(--radius-md);
|
|
458
501
|
color: var(--color-text-primary);
|
|
459
502
|
cursor: pointer;
|
|
460
|
-
transition:
|
|
503
|
+
transition:
|
|
504
|
+
background var(--transition-fast),
|
|
505
|
+
border-color var(--transition-fast),
|
|
506
|
+
color var(--transition-fast),
|
|
507
|
+
transform var(--transition-fast);
|
|
461
508
|
font-size: var(--font-size-lg);
|
|
462
509
|
line-height: 1;
|
|
463
510
|
width: 2.5rem;
|
|
@@ -468,6 +515,7 @@ header.top-navbar .navbar-search form {
|
|
|
468
515
|
background: var(--color-background-secondary);
|
|
469
516
|
border-color: var(--color-accent-primary);
|
|
470
517
|
color: var(--color-accent-primary);
|
|
518
|
+
transform: scale(1.05);
|
|
471
519
|
}
|
|
472
520
|
|
|
473
521
|
.theme-toggle:focus {
|
|
@@ -476,13 +524,17 @@ header.top-navbar .navbar-search form {
|
|
|
476
524
|
box-shadow: 0 0 0 3px var(--color-accent-subtle);
|
|
477
525
|
}
|
|
478
526
|
|
|
527
|
+
.theme-toggle:active {
|
|
528
|
+
transform: scale(0.95);
|
|
529
|
+
}
|
|
530
|
+
|
|
479
531
|
.theme-toggle-icon {
|
|
480
532
|
display: inline-block;
|
|
481
|
-
transition: transform var(--
|
|
533
|
+
transition: transform var(--duration-base) var(--ease-out-smooth);
|
|
482
534
|
}
|
|
483
535
|
|
|
484
536
|
.theme-toggle:hover .theme-toggle-icon {
|
|
485
|
-
transform: rotate(
|
|
537
|
+
transform: rotate(15deg) scale(1.1);
|
|
486
538
|
}
|
|
487
539
|
|
|
488
540
|
/* Mobile navbar */
|
|
@@ -537,12 +589,33 @@ nav {
|
|
|
537
589
|
background: var(--color-nav-bg);
|
|
538
590
|
color: var(--color-nav-text);
|
|
539
591
|
overflow: hidden auto;
|
|
592
|
+
overscroll-behavior: contain;
|
|
540
593
|
display: flex;
|
|
541
594
|
flex-direction: column;
|
|
542
595
|
position: sticky;
|
|
543
596
|
top: var(--layout-header-height);
|
|
544
597
|
height: calc(100vh - var(--layout-header-height));
|
|
545
|
-
|
|
598
|
+
scrollbar-width: thin;
|
|
599
|
+
scrollbar-color: var(--color-border-default) transparent;
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
/* Custom scrollbar for WebKit browsers */
|
|
603
|
+
nav::-webkit-scrollbar {
|
|
604
|
+
width: 6px;
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
nav::-webkit-scrollbar-track {
|
|
608
|
+
background: transparent;
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
nav::-webkit-scrollbar-thumb {
|
|
612
|
+
background: var(--color-border-default);
|
|
613
|
+
border-radius: var(--radius-sm);
|
|
614
|
+
transition: background var(--transition-fast);
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
nav::-webkit-scrollbar-thumb:hover {
|
|
618
|
+
background: var(--color-border-emphasis);
|
|
546
619
|
}
|
|
547
620
|
|
|
548
621
|
/* Mobile navigation */
|
|
@@ -616,6 +689,17 @@ nav ul li {
|
|
|
616
689
|
line-height: var(--line-height-relaxed);
|
|
617
690
|
}
|
|
618
691
|
|
|
692
|
+
nav ul li a {
|
|
693
|
+
transition:
|
|
694
|
+
color var(--transition-fast),
|
|
695
|
+
transform var(--transition-fast),
|
|
696
|
+
padding var(--transition-fast);
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
nav ul li a:hover {
|
|
700
|
+
padding-left: var(--space-1);
|
|
701
|
+
}
|
|
702
|
+
|
|
619
703
|
nav ul ul {
|
|
620
704
|
padding-left: var(--space-5);
|
|
621
705
|
margin-top: var(--space-2);
|
|
@@ -633,6 +717,17 @@ nav a {
|
|
|
633
717
|
text-decoration: none;
|
|
634
718
|
}
|
|
635
719
|
|
|
720
|
+
/* Truncation for direct nav links (not links inside code tags) */
|
|
721
|
+
nav .nav-list > li > a,
|
|
722
|
+
nav .nav-section > ul > li > a,
|
|
723
|
+
nav .nav-section > dl > dd > a {
|
|
724
|
+
display: block;
|
|
725
|
+
max-width: 100%;
|
|
726
|
+
overflow: hidden;
|
|
727
|
+
text-overflow: ellipsis;
|
|
728
|
+
white-space: nowrap;
|
|
729
|
+
}
|
|
730
|
+
|
|
636
731
|
nav footer {
|
|
637
732
|
padding: var(--space-4);
|
|
638
733
|
border-top: 1px solid var(--color-border-default);
|
|
@@ -664,6 +759,8 @@ nav footer a {
|
|
|
664
759
|
cursor: pointer;
|
|
665
760
|
transition: color var(--transition-fast);
|
|
666
761
|
line-height: 1;
|
|
762
|
+
user-select: none;
|
|
763
|
+
-webkit-user-select: none;
|
|
667
764
|
}
|
|
668
765
|
|
|
669
766
|
#navigation-toggle:hover {
|
|
@@ -671,31 +768,153 @@ nav footer a {
|
|
|
671
768
|
}
|
|
672
769
|
}
|
|
673
770
|
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
771
|
+
/*
|
|
772
|
+
* Shared Collapsible Animation using ::details-content pseudo-element.
|
|
773
|
+
* This is the modern CSS approach for animating <details> elements.
|
|
774
|
+
* Uses block-size animation with interpolate-size for smooth height transitions.
|
|
775
|
+
* Both nav-section-collapsible and nested link-list details share this pattern.
|
|
776
|
+
*/
|
|
777
|
+
nav details {
|
|
778
|
+
interpolate-size: allow-keywords;
|
|
677
779
|
}
|
|
678
780
|
|
|
679
|
-
nav
|
|
680
|
-
|
|
781
|
+
nav details::details-content {
|
|
782
|
+
overflow: hidden;
|
|
783
|
+
block-size: 0;
|
|
784
|
+
transition: block-size 200ms ease, content-visibility 200ms ease allow-discrete;
|
|
681
785
|
}
|
|
682
786
|
|
|
683
|
-
nav
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
787
|
+
nav details[open]::details-content {
|
|
788
|
+
block-size: auto;
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
/* Collapsible Navigation Section Headers */
|
|
792
|
+
|
|
793
|
+
nav .nav-section-header {
|
|
794
|
+
display: flex;
|
|
795
|
+
align-items: center;
|
|
796
|
+
gap: var(--space-3);
|
|
797
|
+
padding: var(--space-3) 0;
|
|
798
|
+
cursor: pointer;
|
|
799
|
+
list-style: none;
|
|
800
|
+
user-select: none;
|
|
801
|
+
-webkit-user-select: none;
|
|
802
|
+
border-bottom: 1px solid var(--color-border-default);
|
|
803
|
+
margin-bottom: var(--space-3);
|
|
804
|
+
transition: color var(--transition-fast);
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
nav .nav-section-header::-webkit-details-marker {
|
|
808
|
+
display: none;
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
nav .nav-section-header:hover {
|
|
812
|
+
color: var(--color-accent-primary);
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
nav .nav-section-icon {
|
|
816
|
+
display: flex;
|
|
817
|
+
align-items: center;
|
|
818
|
+
justify-content: center;
|
|
819
|
+
width: 1.25rem;
|
|
820
|
+
height: 1.25rem;
|
|
821
|
+
flex-shrink: 0;
|
|
822
|
+
color: var(--color-accent-primary);
|
|
823
|
+
}
|
|
824
|
+
|
|
825
|
+
nav .nav-section-icon svg {
|
|
826
|
+
width: 100%;
|
|
827
|
+
height: 100%;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
nav .nav-section-title {
|
|
831
|
+
font-size: var(--font-size-base);
|
|
832
|
+
font-weight: var(--font-weight-semibold);
|
|
833
|
+
color: inherit;
|
|
834
|
+
flex: 1;
|
|
835
|
+
min-width: 0;
|
|
836
|
+
overflow: hidden;
|
|
837
|
+
text-overflow: ellipsis;
|
|
838
|
+
white-space: nowrap;
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
nav .nav-section-chevron {
|
|
842
|
+
display: flex;
|
|
843
|
+
align-items: center;
|
|
844
|
+
justify-content: center;
|
|
845
|
+
width: 1rem;
|
|
846
|
+
height: 1rem;
|
|
847
|
+
flex-shrink: 0;
|
|
848
|
+
color: var(--color-text-tertiary);
|
|
689
849
|
transition: transform var(--transition-base);
|
|
690
850
|
}
|
|
691
851
|
|
|
692
|
-
nav
|
|
693
|
-
|
|
852
|
+
nav .nav-section-chevron svg {
|
|
853
|
+
width: 100%;
|
|
854
|
+
height: 100%;
|
|
694
855
|
}
|
|
695
856
|
|
|
696
|
-
/*
|
|
697
|
-
|
|
698
|
-
|
|
857
|
+
/* Rotate chevron when open */
|
|
858
|
+
nav .nav-section-collapsible[open] > .nav-section-header .nav-section-chevron {
|
|
859
|
+
transform: rotate(90deg);
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
nav .nav-section-collapsible > ul,
|
|
863
|
+
nav .nav-section-collapsible > dl,
|
|
864
|
+
nav .nav-section-collapsible > p {
|
|
865
|
+
margin-top: 0;
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
nav .nav-section-collapsible > .nav-list {
|
|
869
|
+
padding-left: var(--space-5);
|
|
870
|
+
border-left: 1px solid var(--color-border-subtle);
|
|
871
|
+
margin-left: 9px; /* Align with the section icon center */
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
nav .nav-section-collapsible .nav-list .link-list {
|
|
875
|
+
border-left: none;
|
|
876
|
+
margin-left: 0;
|
|
877
|
+
padding-left: var(--space-5);
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
/*
|
|
881
|
+
Improve chevron styling for details under link-list, using SVG chevron that matches nav-section-chevron
|
|
882
|
+
We need to avoid adding the element in class content generation so it doesn't break darkfish styles
|
|
883
|
+
*/
|
|
884
|
+
nav li details:has(.link-list) > summary {
|
|
885
|
+
display: inline-flex;
|
|
886
|
+
align-items: center;
|
|
887
|
+
gap: var(--space-2);
|
|
888
|
+
cursor: pointer;
|
|
889
|
+
}
|
|
890
|
+
|
|
891
|
+
nav li details:has(.link-list) > summary::after {
|
|
892
|
+
content: '';
|
|
893
|
+
position: static;
|
|
894
|
+
display: inline-block;
|
|
895
|
+
width: 1rem;
|
|
896
|
+
height: 1rem;
|
|
897
|
+
flex-shrink: 0;
|
|
898
|
+
margin-left: 0;
|
|
899
|
+
background-color: var(--color-text-secondary);
|
|
900
|
+
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'%3E%3C/polyline%3E%3C/svg%3E");
|
|
901
|
+
mask-size: contain;
|
|
902
|
+
mask-repeat: no-repeat;
|
|
903
|
+
mask-position: center;
|
|
904
|
+
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'%3E%3C/polyline%3E%3C/svg%3E");
|
|
905
|
+
-webkit-mask-size: contain;
|
|
906
|
+
-webkit-mask-repeat: no-repeat;
|
|
907
|
+
-webkit-mask-position: center;
|
|
908
|
+
transition: transform var(--transition-base), background-color var(--transition-fast);
|
|
909
|
+
}
|
|
910
|
+
|
|
911
|
+
nav li details:has(.link-list) > summary:hover::after {
|
|
912
|
+
background-color: var(--color-accent-primary);
|
|
913
|
+
}
|
|
914
|
+
|
|
915
|
+
nav li details:has(.link-list)[open] > summary::after {
|
|
916
|
+
transform: rotate(90deg);
|
|
917
|
+
background-color: var(--color-accent-primary);
|
|
699
918
|
}
|
|
700
919
|
|
|
701
920
|
/* 8. Main Content (Center Column) */
|
|
@@ -971,6 +1190,26 @@ main .anchor-link:target {
|
|
|
971
1190
|
scroll-margin-top: calc(var(--layout-header-height) + 2rem);
|
|
972
1191
|
}
|
|
973
1192
|
|
|
1193
|
+
/* Legacy anchor for backward compatibility with old label- prefix links */
|
|
1194
|
+
.legacy-anchor {
|
|
1195
|
+
display: block;
|
|
1196
|
+
position: relative;
|
|
1197
|
+
visibility: hidden;
|
|
1198
|
+
scroll-margin-top: calc(var(--layout-header-height) + 2rem);
|
|
1199
|
+
}
|
|
1200
|
+
|
|
1201
|
+
/* When a legacy anchor is targeted, highlight the next heading sibling */
|
|
1202
|
+
.legacy-anchor:target + h1,
|
|
1203
|
+
.legacy-anchor:target + h2,
|
|
1204
|
+
.legacy-anchor:target + h3,
|
|
1205
|
+
.legacy-anchor:target + h4,
|
|
1206
|
+
.legacy-anchor:target + h5,
|
|
1207
|
+
.legacy-anchor:target + h6 {
|
|
1208
|
+
margin-left: calc(-1 * var(--space-5));
|
|
1209
|
+
padding-left: calc(var(--space-5) / 2);
|
|
1210
|
+
border-left: calc(var(--space-5) / 2) solid var(--color-border-default);
|
|
1211
|
+
}
|
|
1212
|
+
|
|
974
1213
|
|
|
975
1214
|
/* Utility Classes */
|
|
976
1215
|
.hide { display: none !important; }
|
|
@@ -995,17 +1234,54 @@ main .anchor-link:target {
|
|
|
995
1234
|
main .method-source-code {
|
|
996
1235
|
visibility: hidden;
|
|
997
1236
|
max-height: 0;
|
|
998
|
-
overflow:
|
|
999
|
-
|
|
1237
|
+
overflow: hidden;
|
|
1238
|
+
opacity: 0;
|
|
1239
|
+
transform: translateY(-8px);
|
|
1240
|
+
transition:
|
|
1241
|
+
max-height var(--duration-medium) var(--ease-out-smooth),
|
|
1242
|
+
visibility var(--duration-medium),
|
|
1243
|
+
opacity var(--duration-fast) ease-out,
|
|
1244
|
+
transform var(--duration-fast) ease-out;
|
|
1000
1245
|
}
|
|
1001
1246
|
|
|
1002
1247
|
main .method-source-code pre {
|
|
1003
1248
|
border-color: var(--color-accent-hover);
|
|
1249
|
+
border-left: 3px solid var(--color-accent-primary);
|
|
1250
|
+
width: 100%;
|
|
1251
|
+
box-sizing: border-box;
|
|
1252
|
+
transition: border-color var(--transition-fast);
|
|
1253
|
+
scrollbar-width: thin;
|
|
1254
|
+
scrollbar-color: var(--color-border-default) transparent;
|
|
1255
|
+
}
|
|
1256
|
+
|
|
1257
|
+
main .method-source-code pre::-webkit-scrollbar {
|
|
1258
|
+
width: 6px;
|
|
1259
|
+
height: 6px;
|
|
1260
|
+
}
|
|
1261
|
+
|
|
1262
|
+
main .method-source-code pre::-webkit-scrollbar-track {
|
|
1263
|
+
background: transparent;
|
|
1264
|
+
}
|
|
1265
|
+
|
|
1266
|
+
main .method-source-code pre::-webkit-scrollbar-thumb {
|
|
1267
|
+
background: var(--color-border-default);
|
|
1268
|
+
border-radius: var(--radius-sm);
|
|
1269
|
+
}
|
|
1270
|
+
|
|
1271
|
+
main .method-source-code pre::-webkit-scrollbar-thumb:hover {
|
|
1272
|
+
background: var(--color-border-emphasis);
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
main .method-source-code pre::-webkit-scrollbar-corner {
|
|
1276
|
+
background: transparent;
|
|
1004
1277
|
}
|
|
1005
1278
|
|
|
1006
1279
|
main .method-source-code.active-menu {
|
|
1007
1280
|
visibility: visible;
|
|
1008
1281
|
max-height: 100vh;
|
|
1282
|
+
overflow: auto;
|
|
1283
|
+
opacity: 1;
|
|
1284
|
+
transform: translateY(0);
|
|
1009
1285
|
}
|
|
1010
1286
|
|
|
1011
1287
|
main .method-description .method-calls-super {
|
|
@@ -1025,6 +1301,7 @@ main .method-detail:target {
|
|
|
1025
1301
|
|
|
1026
1302
|
main .method-header {
|
|
1027
1303
|
display: inline-block;
|
|
1304
|
+
max-width: calc(100% - 6em); /* 6em is the width of the source code toggle */
|
|
1028
1305
|
}
|
|
1029
1306
|
|
|
1030
1307
|
main .method-heading {
|
|
@@ -1044,10 +1321,47 @@ main .method-heading .method-args {
|
|
|
1044
1321
|
}
|
|
1045
1322
|
|
|
1046
1323
|
main .method-controls {
|
|
1047
|
-
line-height: 20px;
|
|
1048
1324
|
float: right;
|
|
1049
|
-
|
|
1325
|
+
}
|
|
1326
|
+
|
|
1327
|
+
main .method-controls summary {
|
|
1328
|
+
display: inline-block;
|
|
1329
|
+
line-height: 20px;
|
|
1330
|
+
color: var(--color-accent-primary);
|
|
1050
1331
|
cursor: pointer;
|
|
1332
|
+
padding: var(--space-1) var(--space-3);
|
|
1333
|
+
border-radius: var(--radius-sm);
|
|
1334
|
+
font-size: var(--font-size-sm);
|
|
1335
|
+
font-weight: var(--font-weight-medium);
|
|
1336
|
+
background: var(--color-accent-subtle);
|
|
1337
|
+
border: 1px solid transparent;
|
|
1338
|
+
transition:
|
|
1339
|
+
color var(--transition-fast),
|
|
1340
|
+
background var(--transition-fast),
|
|
1341
|
+
border-color var(--transition-fast),
|
|
1342
|
+
transform var(--transition-fast);
|
|
1343
|
+
user-select: none;
|
|
1344
|
+
-webkit-user-select: none;
|
|
1345
|
+
list-style: none;
|
|
1346
|
+
}
|
|
1347
|
+
|
|
1348
|
+
main .method-controls summary::-webkit-details-marker {
|
|
1349
|
+
display: none;
|
|
1350
|
+
}
|
|
1351
|
+
|
|
1352
|
+
main .method-controls summary:hover {
|
|
1353
|
+
background: var(--color-primary-100);
|
|
1354
|
+
border-color: var(--color-primary-300);
|
|
1355
|
+
transform: translateY(-1px);
|
|
1356
|
+
}
|
|
1357
|
+
|
|
1358
|
+
main .method-controls summary:active {
|
|
1359
|
+
transform: scale(0.96);
|
|
1360
|
+
}
|
|
1361
|
+
|
|
1362
|
+
[data-theme="dark"] main .method-controls summary:hover {
|
|
1363
|
+
background: var(--color-accent-subtle-hover);
|
|
1364
|
+
border-color: var(--color-primary-500);
|
|
1051
1365
|
}
|
|
1052
1366
|
|
|
1053
1367
|
main .method-description,
|
|
@@ -1316,6 +1630,14 @@ aside.table-of-contents .toc-sticky nav {
|
|
|
1316
1630
|
height: auto;
|
|
1317
1631
|
}
|
|
1318
1632
|
|
|
1633
|
+
aside.table-of-contents .toc-list > .toc-h2 {
|
|
1634
|
+
margin-left: var(--space-4);
|
|
1635
|
+
}
|
|
1636
|
+
|
|
1637
|
+
aside.table-of-contents .toc-list > .toc-h3 {
|
|
1638
|
+
margin-left: var(--space-8);
|
|
1639
|
+
}
|
|
1640
|
+
|
|
1319
1641
|
/* Hide TOC on mobile/tablet */
|
|
1320
1642
|
@media (width <= 1279px) {
|
|
1321
1643
|
aside.table-of-contents {
|
|
@@ -1323,7 +1645,7 @@ aside.table-of-contents .toc-sticky nav {
|
|
|
1323
1645
|
}
|
|
1324
1646
|
|
|
1325
1647
|
body.has-toc {
|
|
1326
|
-
grid-template-columns:
|
|
1648
|
+
grid-template-columns: var(--layout-sidebar-width) 1fr;
|
|
1327
1649
|
grid-template-areas:
|
|
1328
1650
|
"header header"
|
|
1329
1651
|
"nav main"
|
|
@@ -1333,10 +1655,6 @@ aside.table-of-contents .toc-sticky nav {
|
|
|
1333
1655
|
|
|
1334
1656
|
/* Tablet adjustments (between mobile and desktop) */
|
|
1335
1657
|
@media (width >= 768px) and (width <= 1023px) {
|
|
1336
|
-
nav {
|
|
1337
|
-
width: 240px;
|
|
1338
|
-
}
|
|
1339
|
-
|
|
1340
1658
|
header.top-navbar {
|
|
1341
1659
|
padding: 0 var(--space-6);
|
|
1342
1660
|
}
|
|
@@ -1512,55 +1830,88 @@ footer.site-footer .footer-bottom:first-child {
|
|
|
1512
1830
|
}
|
|
1513
1831
|
|
|
1514
1832
|
/* Search Results */
|
|
1515
|
-
|
|
1833
|
+
.search-results {
|
|
1516
1834
|
font-family: var(--font-primary);
|
|
1517
1835
|
font-weight: 300;
|
|
1518
1836
|
}
|
|
1519
1837
|
|
|
1520
|
-
|
|
1838
|
+
.search-results a {
|
|
1521
1839
|
color: var(--color-text-primary);
|
|
1522
1840
|
}
|
|
1523
1841
|
|
|
1524
|
-
|
|
1842
|
+
.search-results a:hover {
|
|
1525
1843
|
color: var(--color-accent-primary);
|
|
1526
1844
|
}
|
|
1527
1845
|
|
|
1528
|
-
|
|
1846
|
+
.search-results .search-match {
|
|
1529
1847
|
font-family: var(--font-heading);
|
|
1530
1848
|
font-weight: normal;
|
|
1531
1849
|
}
|
|
1532
1850
|
|
|
1533
|
-
|
|
1851
|
+
.search-results .search-selected {
|
|
1534
1852
|
background: var(--color-code-bg);
|
|
1535
1853
|
border-bottom: 1px solid transparent;
|
|
1536
1854
|
}
|
|
1537
1855
|
|
|
1538
|
-
|
|
1856
|
+
.search-results li {
|
|
1539
1857
|
list-style: none;
|
|
1540
1858
|
border-bottom: 1px solid var(--color-border-default);
|
|
1541
1859
|
margin-bottom: 0.5em;
|
|
1542
1860
|
}
|
|
1543
1861
|
|
|
1544
|
-
|
|
1862
|
+
.search-results li:last-child {
|
|
1545
1863
|
border-bottom: none;
|
|
1546
1864
|
margin-bottom: 0;
|
|
1547
1865
|
}
|
|
1548
1866
|
|
|
1549
|
-
|
|
1867
|
+
.search-results li p {
|
|
1550
1868
|
padding: 0;
|
|
1551
1869
|
margin: 0.5em;
|
|
1552
1870
|
}
|
|
1553
1871
|
|
|
1554
|
-
|
|
1872
|
+
.search-results .search-namespace {
|
|
1555
1873
|
font-weight: bold;
|
|
1556
1874
|
}
|
|
1557
1875
|
|
|
1558
|
-
|
|
1876
|
+
.search-results .search-type {
|
|
1877
|
+
display: inline-block;
|
|
1878
|
+
margin-left: var(--space-2);
|
|
1879
|
+
padding: 0 var(--space-2);
|
|
1880
|
+
font-size: var(--font-size-xs);
|
|
1881
|
+
font-weight: 500;
|
|
1882
|
+
border-radius: var(--radius-sm);
|
|
1883
|
+
vertical-align: middle;
|
|
1884
|
+
background: var(--color-background-tertiary);
|
|
1885
|
+
color: var(--color-text-secondary);
|
|
1886
|
+
}
|
|
1887
|
+
|
|
1888
|
+
.search-results .search-type-class {
|
|
1889
|
+
background: var(--color-search-type-class-bg);
|
|
1890
|
+
color: var(--color-search-type-class-text);
|
|
1891
|
+
}
|
|
1892
|
+
|
|
1893
|
+
.search-results .search-type-module {
|
|
1894
|
+
background: var(--color-search-type-module-bg);
|
|
1895
|
+
color: var(--color-search-type-module-text);
|
|
1896
|
+
}
|
|
1897
|
+
|
|
1898
|
+
.search-results .search-type-constant {
|
|
1899
|
+
background: var(--color-search-type-constant-bg);
|
|
1900
|
+
color: var(--color-search-type-constant-text);
|
|
1901
|
+
}
|
|
1902
|
+
|
|
1903
|
+
.search-results .search-type-instance-method,
|
|
1904
|
+
.search-results .search-type-class-method {
|
|
1905
|
+
background: var(--color-search-type-method-bg);
|
|
1906
|
+
color: var(--color-search-type-method-text);
|
|
1907
|
+
}
|
|
1908
|
+
|
|
1909
|
+
.search-results li em {
|
|
1559
1910
|
background-color: var(--color-search-highlight-bg);
|
|
1560
1911
|
font-style: normal;
|
|
1561
1912
|
}
|
|
1562
1913
|
|
|
1563
|
-
|
|
1914
|
+
.search-results pre {
|
|
1564
1915
|
margin: 0.5em;
|
|
1565
1916
|
font-family: var(--font-code);
|
|
1566
1917
|
}
|
|
@@ -1587,7 +1938,7 @@ header.top-navbar #search-field::placeholder {
|
|
|
1587
1938
|
}
|
|
1588
1939
|
|
|
1589
1940
|
/* Search results dropdown in navbar */
|
|
1590
|
-
header.top-navbar #search-results {
|
|
1941
|
+
header.top-navbar #search-results-desktop {
|
|
1591
1942
|
position: absolute;
|
|
1592
1943
|
top: calc(100% + var(--space-2));
|
|
1593
1944
|
left: 0;
|
|
@@ -1603,10 +1954,10 @@ header.top-navbar #search-results {
|
|
|
1603
1954
|
padding: 0;
|
|
1604
1955
|
}
|
|
1605
1956
|
|
|
1606
|
-
header.top-navbar #search-results.initially-hidden {
|
|
1957
|
+
header.top-navbar #search-results-desktop.initially-hidden {
|
|
1607
1958
|
display: none;
|
|
1608
1959
|
}
|
|
1609
1960
|
|
|
1610
|
-
header.top-navbar #search-results[aria-expanded="false"] {
|
|
1961
|
+
header.top-navbar #search-results-desktop[aria-expanded="false"] {
|
|
1611
1962
|
display: none;
|
|
1612
1963
|
}
|