rdoc 6.17.0 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +196 -0
  3. data/LEGAL.rdoc +6 -0
  4. data/README.md +90 -7
  5. data/doc/markup_reference/markdown.md +558 -0
  6. data/doc/markup_reference/rdoc.rdoc +1169 -0
  7. data/lib/rdoc/code_object/any_method.rb +15 -7
  8. data/lib/rdoc/code_object/attr.rb +2 -1
  9. data/lib/rdoc/code_object/class_module.rb +62 -11
  10. data/lib/rdoc/code_object/constant.rb +9 -0
  11. data/lib/rdoc/code_object/context/section.rb +46 -9
  12. data/lib/rdoc/code_object/context.rb +15 -4
  13. data/lib/rdoc/code_object/method_attr.rb +13 -1
  14. data/lib/rdoc/code_object/mixin.rb +3 -0
  15. data/lib/rdoc/code_object/top_level.rb +15 -1
  16. data/lib/rdoc/comment.rb +1 -1
  17. data/lib/rdoc/cross_reference.rb +31 -24
  18. data/lib/rdoc/generator/aliki.rb +141 -0
  19. data/lib/rdoc/generator/darkfish.rb +3 -1
  20. data/lib/rdoc/generator/template/aliki/_footer.rhtml +1 -1
  21. data/lib/rdoc/generator/template/aliki/_head.rhtml +9 -4
  22. data/lib/rdoc/generator/template/aliki/_header.rhtml +4 -4
  23. data/lib/rdoc/generator/template/aliki/_sidebar_pages.rhtml +1 -1
  24. data/lib/rdoc/generator/template/aliki/_sidebar_search.rhtml +3 -3
  25. data/lib/rdoc/generator/template/aliki/class.rhtml +17 -17
  26. data/lib/rdoc/generator/template/aliki/css/rdoc.css +278 -60
  27. data/lib/rdoc/generator/template/aliki/index.rhtml +1 -1
  28. data/lib/rdoc/generator/template/aliki/js/aliki.js +51 -23
  29. data/lib/rdoc/generator/template/aliki/js/bash_highlighter.js +167 -0
  30. data/lib/rdoc/generator/template/aliki/js/c_highlighter.js +1 -1
  31. data/lib/rdoc/generator/template/aliki/js/{search.js → search_controller.js} +16 -7
  32. data/lib/rdoc/generator/template/aliki/js/search_navigation.js +105 -0
  33. data/lib/rdoc/generator/template/aliki/js/search_ranker.js +239 -0
  34. data/lib/rdoc/generator/template/aliki/page.rhtml +1 -1
  35. data/lib/rdoc/generator/template/aliki/servlet_not_found.rhtml +1 -1
  36. data/lib/rdoc/generator/template/aliki/servlet_root.rhtml +1 -1
  37. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +1 -1
  38. data/lib/rdoc/generator/template/darkfish/class.rhtml +11 -11
  39. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +19 -0
  40. data/lib/rdoc/markdown.kpeg +22 -12
  41. data/lib/rdoc/markdown.rb +36 -26
  42. data/lib/rdoc/markup/blank_line.rb +25 -23
  43. data/lib/rdoc/markup/element.rb +21 -0
  44. data/lib/rdoc/markup/formatter.rb +129 -106
  45. data/lib/rdoc/markup/hard_break.rb +30 -27
  46. data/lib/rdoc/markup/heading.rb +166 -77
  47. data/lib/rdoc/markup/inline_parser.rb +312 -0
  48. data/lib/rdoc/markup/parser.rb +1 -1
  49. data/lib/rdoc/markup/raw.rb +52 -55
  50. data/lib/rdoc/markup/table.rb +48 -40
  51. data/lib/rdoc/markup/to_ansi.rb +51 -4
  52. data/lib/rdoc/markup/to_bs.rb +22 -42
  53. data/lib/rdoc/markup/to_html.rb +178 -183
  54. data/lib/rdoc/markup/to_html_crossref.rb +58 -79
  55. data/lib/rdoc/markup/to_html_snippet.rb +62 -62
  56. data/lib/rdoc/markup/to_label.rb +29 -20
  57. data/lib/rdoc/markup/to_markdown.rb +61 -37
  58. data/lib/rdoc/markup/to_rdoc.rb +86 -26
  59. data/lib/rdoc/markup/to_test.rb +9 -1
  60. data/lib/rdoc/markup/to_tt_only.rb +10 -16
  61. data/lib/rdoc/markup/verbatim.rb +1 -1
  62. data/lib/rdoc/markup.rb +11 -32
  63. data/lib/rdoc/options.rb +1 -1
  64. data/lib/rdoc/parser/changelog.rb +29 -0
  65. data/lib/rdoc/parser/prism_ruby.rb +44 -32
  66. data/lib/rdoc/parser/ruby.rb +1 -1
  67. data/lib/rdoc/rubygems_hook.rb +3 -3
  68. data/lib/rdoc/text.rb +44 -5
  69. data/lib/rdoc/token_stream.rb +4 -8
  70. data/lib/rdoc/version.rb +1 -1
  71. data/rdoc.gemspec +3 -3
  72. metadata +13 -15
  73. data/CONTRIBUTING.rdoc +0 -219
  74. data/ExampleMarkdown.md +0 -39
  75. data/ExampleRDoc.rdoc +0 -210
  76. data/lib/rdoc/markup/attr_changer.rb +0 -22
  77. data/lib/rdoc/markup/attr_span.rb +0 -35
  78. data/lib/rdoc/markup/attribute_manager.rb +0 -405
  79. data/lib/rdoc/markup/attributes.rb +0 -70
  80. data/lib/rdoc/markup/regexp_handling.rb +0 -40
@@ -39,24 +39,14 @@
39
39
  --color-neutral-800: #292524;
40
40
  --color-neutral-900: #1c1917;
41
41
 
42
- /* Code highlighting colors */
42
+ /* Code highlighting colors - neutral palette for all syntax highlighters */
43
43
  --code-blue: #1d4ed8;
44
44
  --code-green: #047857;
45
45
  --code-orange: #d97706;
46
46
  --code-purple: #7e22ce;
47
47
  --code-red: #dc2626;
48
-
49
- /* C syntax highlighting */
50
- --c-keyword: #b91c1c;
51
- --c-type: #0891b2;
52
- --c-macro: #ea580c;
53
- --c-function: #7c3aed;
54
- --c-identifier: #475569;
55
- --c-operator: #059669;
56
- --c-preprocessor: #a21caf;
57
- --c-value: #92400e;
58
- --c-string: #15803d;
59
- --c-comment: #78716c;
48
+ --code-cyan: #0891b2;
49
+ --code-gray: #78716c;
60
50
 
61
51
  /* Color Palette - Green (for success states) */
62
52
  --color-green-400: #4ade80;
@@ -85,6 +75,16 @@
85
75
  --color-th-background: var(--color-neutral-100);
86
76
  --color-td-background: var(--color-neutral-50);
87
77
 
78
+ /* Search Type Badge Colors */
79
+ --color-search-type-class-bg: #e6f0ff;
80
+ --color-search-type-class-text: #0050a0;
81
+ --color-search-type-module-bg: #e6ffe6;
82
+ --color-search-type-module-text: #060;
83
+ --color-search-type-constant-bg: #fff0e6;
84
+ --color-search-type-constant-text: #995200;
85
+ --color-search-type-method-bg: #f0e6ff;
86
+ --color-search-type-method-text: #5200a0;
87
+
88
88
  /* RGBA Colors (theme-agnostic) */
89
89
  --color-overlay: rgb(0 0 0 / 50%);
90
90
  --color-emphasis-bg: rgb(255 111 97 / 10%);
@@ -142,6 +142,7 @@
142
142
 
143
143
  /* Shadows */
144
144
  --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 10%), 0 1px 2px -1px rgb(0 0 0 / 10%);
145
+ --shadow-md: 0 2px 8px rgb(0 0 0 / 10%);
145
146
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 10%), 0 4px 6px -4px rgb(0 0 0 / 10%);
146
147
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 10%), 0 8px 10px -6px rgb(0 0 0 / 10%);
147
148
 
@@ -158,6 +159,13 @@
158
159
  /* Transitions */
159
160
  --transition-fast: 150ms ease-in-out;
160
161
  --transition-base: 200ms ease-in-out;
162
+ --transition-slow: 350ms ease-in-out;
163
+ --ease-out-smooth: cubic-bezier(0.4, 0, 0.2, 1);
164
+
165
+ /* Animation Durations */
166
+ --duration-fast: 250ms;
167
+ --duration-base: 300ms;
168
+ --duration-medium: 350ms;
161
169
 
162
170
  /* Z-Index Scale */
163
171
  --z-fixed: 300;
@@ -168,24 +176,14 @@
168
176
 
169
177
  /* Dark Theme */
170
178
  [data-theme="dark"] {
171
- /* Code highlighting colors */
179
+ /* Code highlighting colors - neutral palette for all syntax highlighters */
172
180
  --code-blue: #93c5fd;
173
181
  --code-green: #34d399;
174
182
  --code-orange: #fbbf24;
175
183
  --code-purple: #c084fc;
176
184
  --code-red: #f87171;
177
-
178
- /* C syntax highlighting */
179
- --c-keyword: #f87171;
180
- --c-type: #22d3ee;
181
- --c-macro: #fb923c;
182
- --c-function: #a78bfa;
183
- --c-identifier: #94a3b8;
184
- --c-operator: #6ee7b7;
185
- --c-preprocessor: #e879f9;
186
- --c-value: #fcd34d;
187
- --c-string: #4ade80;
188
- --c-comment: #a8a29e;
185
+ --code-cyan: #22d3ee;
186
+ --code-gray: #a8a29e;
189
187
 
190
188
  /* Semantic Colors - Dark Theme */
191
189
  --color-text-primary: var(--color-neutral-50);
@@ -202,6 +200,7 @@
202
200
  --color-accent-primary: var(--color-primary-500);
203
201
  --color-accent-hover: var(--color-primary-400);
204
202
  --color-accent-subtle: rgb(235 84 79 / 10%);
203
+ --color-accent-subtle-hover: rgb(235 84 79 / 20%);
205
204
  --color-code-bg: var(--color-neutral-800);
206
205
  --color-code-border: var(--color-neutral-700);
207
206
  --color-nav-bg: var(--color-neutral-900);
@@ -209,8 +208,19 @@
209
208
  --color-th-background: var(--color-background-tertiary);
210
209
  --color-td-background: var(--color-background-secondary);
211
210
 
211
+ /* Search Type Badge Colors - Dark Theme */
212
+ --color-search-type-class-bg: #1e3a5f;
213
+ --color-search-type-class-text: #93c5fd;
214
+ --color-search-type-module-bg: #14532d;
215
+ --color-search-type-module-text: #86efac;
216
+ --color-search-type-constant-bg: #451a03;
217
+ --color-search-type-constant-text: #fcd34d;
218
+ --color-search-type-method-bg: #3b0764;
219
+ --color-search-type-method-text: #d8b4fe;
220
+
212
221
  /* Dark theme shadows (slightly more subtle) */
213
222
  --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 40%), 0 1px 2px -1px rgb(0 0 0 / 40%);
223
+ --shadow-md: 0 2px 8px rgb(0 0 0 / 40%);
214
224
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 40%), 0 4px 6px -4px rgb(0 0 0 / 40%);
215
225
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 40%), 0 8px 10px -6px rgb(0 0 0 / 40%);
216
226
 
@@ -291,7 +301,12 @@ pre {
291
301
  border-radius: var(--radius-sm);
292
302
  cursor: pointer;
293
303
  opacity: 0.6;
294
- transition: opacity var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);
304
+ transition:
305
+ opacity var(--transition-fast),
306
+ background var(--transition-fast),
307
+ border-color var(--transition-fast),
308
+ transform var(--transition-fast),
309
+ box-shadow var(--transition-fast);
295
310
  display: flex;
296
311
  align-items: center;
297
312
  justify-content: center;
@@ -305,10 +320,18 @@ pre {
305
320
  opacity: 1;
306
321
  background: var(--color-background-tertiary);
307
322
  border-color: var(--color-border-emphasis);
323
+ transform: translateY(-1px);
324
+ box-shadow: var(--shadow-md);
325
+ }
326
+
327
+ .copy-code-button:focus {
328
+ outline: none;
329
+ box-shadow: 0 0 0 3px var(--color-accent-subtle);
308
330
  }
309
331
 
310
332
  .copy-code-button:active {
311
- transform: scale(0.95);
333
+ transform: scale(0.92);
334
+ box-shadow: none;
312
335
  }
313
336
 
314
337
  .copy-code-button svg {
@@ -320,7 +343,7 @@ pre {
320
343
  stroke-linecap: round;
321
344
  stroke-linejoin: round;
322
345
  color: var(--color-text-secondary);
323
- transition: color var(--transition-fast);
346
+ transition: color var(--transition-fast), transform var(--transition-base);
324
347
  }
325
348
 
326
349
  .copy-code-button:hover svg {
@@ -457,7 +480,11 @@ header.top-navbar .navbar-search form {
457
480
  border-radius: var(--radius-md);
458
481
  color: var(--color-text-primary);
459
482
  cursor: pointer;
460
- transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
483
+ transition:
484
+ background var(--transition-fast),
485
+ border-color var(--transition-fast),
486
+ color var(--transition-fast),
487
+ transform var(--transition-fast);
461
488
  font-size: var(--font-size-lg);
462
489
  line-height: 1;
463
490
  width: 2.5rem;
@@ -468,6 +495,7 @@ header.top-navbar .navbar-search form {
468
495
  background: var(--color-background-secondary);
469
496
  border-color: var(--color-accent-primary);
470
497
  color: var(--color-accent-primary);
498
+ transform: scale(1.05);
471
499
  }
472
500
 
473
501
  .theme-toggle:focus {
@@ -476,13 +504,17 @@ header.top-navbar .navbar-search form {
476
504
  box-shadow: 0 0 0 3px var(--color-accent-subtle);
477
505
  }
478
506
 
507
+ .theme-toggle:active {
508
+ transform: scale(0.95);
509
+ }
510
+
479
511
  .theme-toggle-icon {
480
512
  display: inline-block;
481
- transition: transform var(--transition-base);
513
+ transition: transform var(--duration-base) var(--ease-out-smooth);
482
514
  }
483
515
 
484
516
  .theme-toggle:hover .theme-toggle-icon {
485
- transform: rotate(20deg);
517
+ transform: rotate(15deg) scale(1.1);
486
518
  }
487
519
 
488
520
  /* Mobile navbar */
@@ -537,11 +569,33 @@ nav {
537
569
  background: var(--color-nav-bg);
538
570
  color: var(--color-nav-text);
539
571
  overflow: hidden auto;
572
+ overscroll-behavior: contain;
540
573
  display: flex;
541
574
  flex-direction: column;
542
575
  position: sticky;
543
576
  top: var(--layout-header-height);
544
577
  height: calc(100vh - var(--layout-header-height));
578
+ scrollbar-width: thin;
579
+ scrollbar-color: var(--color-border-default) transparent;
580
+ }
581
+
582
+ /* Custom scrollbar for WebKit browsers */
583
+ nav::-webkit-scrollbar {
584
+ width: 6px;
585
+ }
586
+
587
+ nav::-webkit-scrollbar-track {
588
+ background: transparent;
589
+ }
590
+
591
+ nav::-webkit-scrollbar-thumb {
592
+ background: var(--color-border-default);
593
+ border-radius: var(--radius-sm);
594
+ transition: background var(--transition-fast);
595
+ }
596
+
597
+ nav::-webkit-scrollbar-thumb:hover {
598
+ background: var(--color-border-emphasis);
545
599
  }
546
600
 
547
601
  /* Mobile navigation */
@@ -615,6 +669,17 @@ nav ul li {
615
669
  line-height: var(--line-height-relaxed);
616
670
  }
617
671
 
672
+ nav ul li a {
673
+ transition:
674
+ color var(--transition-fast),
675
+ transform var(--transition-fast),
676
+ padding var(--transition-fast);
677
+ }
678
+
679
+ nav ul li a:hover {
680
+ padding-left: var(--space-1);
681
+ }
682
+
618
683
  nav ul ul {
619
684
  padding-left: var(--space-5);
620
685
  margin-top: var(--space-2);
@@ -632,6 +697,17 @@ nav a {
632
697
  text-decoration: none;
633
698
  }
634
699
 
700
+ /* Truncation for direct nav links (not links inside code tags) */
701
+ nav .nav-list > li > a,
702
+ nav .nav-section > ul > li > a,
703
+ nav .nav-section > dl > dd > a {
704
+ display: block;
705
+ max-width: 100%;
706
+ overflow: hidden;
707
+ text-overflow: ellipsis;
708
+ white-space: nowrap;
709
+ }
710
+
635
711
  nav footer {
636
712
  padding: var(--space-4);
637
713
  border-top: 1px solid var(--color-border-default);
@@ -735,6 +811,11 @@ nav .nav-section-title {
735
811
  font-size: var(--font-size-base);
736
812
  font-weight: var(--font-weight-semibold);
737
813
  color: inherit;
814
+ flex: 1;
815
+ min-width: 0;
816
+ overflow: hidden;
817
+ text-overflow: ellipsis;
818
+ white-space: nowrap;
738
819
  }
739
820
 
740
821
  nav .nav-section-chevron {
@@ -963,18 +1044,30 @@ main h6 a:hover {
963
1044
  [data-theme="dark"] .ruby-string { color: var(--code-green); }
964
1045
 
965
1046
  /* C Syntax Highlighting */
966
- .c-keyword { color: var(--c-keyword); }
967
- .c-type { color: var(--c-type); }
968
- .c-macro { color: var(--c-macro); }
969
- .c-function { color: var(--c-function); }
970
- .c-identifier { color: var(--c-identifier); }
971
- .c-operator { color: var(--c-operator); }
972
- .c-preprocessor { color: var(--c-preprocessor); }
973
- .c-value { color: var(--c-value); }
974
- .c-string { color: var(--c-string); }
1047
+ .c-keyword { color: var(--code-red); }
1048
+ .c-type { color: var(--code-cyan); }
1049
+ .c-macro { color: var(--code-orange); }
1050
+ .c-function { color: var(--code-purple); }
1051
+ .c-identifier { color: var(--color-text-secondary); }
1052
+ .c-operator { color: var(--code-green); }
1053
+ .c-preprocessor { color: var(--code-purple); }
1054
+ .c-value { color: var(--code-orange); }
1055
+ .c-string { color: var(--code-green); }
975
1056
 
976
1057
  .c-comment {
977
- color: var(--c-comment);
1058
+ color: var(--code-gray);
1059
+ font-style: italic;
1060
+ }
1061
+
1062
+ /* Shell Syntax Highlighting */
1063
+ .sh-prompt { color: var(--code-gray); }
1064
+ .sh-command { color: var(--code-blue); }
1065
+ .sh-option { color: var(--code-cyan); }
1066
+ .sh-string { color: var(--code-green); }
1067
+ .sh-envvar { color: var(--code-purple); }
1068
+
1069
+ .sh-comment {
1070
+ color: var(--code-gray);
978
1071
  font-style: italic;
979
1072
  }
980
1073
 
@@ -1089,6 +1182,26 @@ main .anchor-link:target {
1089
1182
  scroll-margin-top: calc(var(--layout-header-height) + 2rem);
1090
1183
  }
1091
1184
 
1185
+ /* Legacy anchor for backward compatibility with old label- prefix links */
1186
+ .legacy-anchor {
1187
+ display: block;
1188
+ position: relative;
1189
+ visibility: hidden;
1190
+ scroll-margin-top: calc(var(--layout-header-height) + 2rem);
1191
+ }
1192
+
1193
+ /* When a legacy anchor is targeted, highlight the next heading sibling */
1194
+ .legacy-anchor:target + h1,
1195
+ .legacy-anchor:target + h2,
1196
+ .legacy-anchor:target + h3,
1197
+ .legacy-anchor:target + h4,
1198
+ .legacy-anchor:target + h5,
1199
+ .legacy-anchor:target + h6 {
1200
+ margin-left: calc(-1 * var(--space-5));
1201
+ padding-left: calc(var(--space-5) / 2);
1202
+ border-left: calc(var(--space-5) / 2) solid var(--color-border-default);
1203
+ }
1204
+
1092
1205
 
1093
1206
  /* Utility Classes */
1094
1207
  .hide { display: none !important; }
@@ -1113,19 +1226,54 @@ main .anchor-link:target {
1113
1226
  main .method-source-code {
1114
1227
  visibility: hidden;
1115
1228
  max-height: 0;
1116
- overflow: auto;
1117
- transition: max-height var(--transition-base), visibility var(--transition-base);
1229
+ overflow: hidden;
1230
+ opacity: 0;
1231
+ transform: translateY(-8px);
1232
+ transition:
1233
+ max-height var(--duration-medium) var(--ease-out-smooth),
1234
+ visibility var(--duration-medium),
1235
+ opacity var(--duration-fast) ease-out,
1236
+ transform var(--duration-fast) ease-out;
1118
1237
  }
1119
1238
 
1120
1239
  main .method-source-code pre {
1121
1240
  border-color: var(--color-accent-hover);
1241
+ border-left: 3px solid var(--color-accent-primary);
1122
1242
  width: 100%;
1123
1243
  box-sizing: border-box;
1244
+ transition: border-color var(--transition-fast);
1245
+ scrollbar-width: thin;
1246
+ scrollbar-color: var(--color-border-default) transparent;
1247
+ }
1248
+
1249
+ main .method-source-code pre::-webkit-scrollbar {
1250
+ width: 6px;
1251
+ height: 6px;
1252
+ }
1253
+
1254
+ main .method-source-code pre::-webkit-scrollbar-track {
1255
+ background: transparent;
1256
+ }
1257
+
1258
+ main .method-source-code pre::-webkit-scrollbar-thumb {
1259
+ background: var(--color-border-default);
1260
+ border-radius: var(--radius-sm);
1261
+ }
1262
+
1263
+ main .method-source-code pre::-webkit-scrollbar-thumb:hover {
1264
+ background: var(--color-border-emphasis);
1265
+ }
1266
+
1267
+ main .method-source-code pre::-webkit-scrollbar-corner {
1268
+ background: transparent;
1124
1269
  }
1125
1270
 
1126
1271
  main .method-source-code.active-menu {
1127
1272
  visibility: visible;
1128
1273
  max-height: 100vh;
1274
+ overflow: auto;
1275
+ opacity: 1;
1276
+ transform: translateY(0);
1129
1277
  }
1130
1278
 
1131
1279
  main .method-description .method-calls-super {
@@ -1165,10 +1313,47 @@ main .method-heading .method-args {
1165
1313
  }
1166
1314
 
1167
1315
  main .method-controls {
1168
- line-height: 20px;
1169
1316
  float: right;
1170
- color: var(--color-accent-hover);
1317
+ }
1318
+
1319
+ main .method-controls summary {
1320
+ display: inline-block;
1321
+ line-height: 20px;
1322
+ color: var(--color-accent-primary);
1171
1323
  cursor: pointer;
1324
+ padding: var(--space-1) var(--space-3);
1325
+ border-radius: var(--radius-sm);
1326
+ font-size: var(--font-size-sm);
1327
+ font-weight: var(--font-weight-medium);
1328
+ background: var(--color-accent-subtle);
1329
+ border: 1px solid transparent;
1330
+ transition:
1331
+ color var(--transition-fast),
1332
+ background var(--transition-fast),
1333
+ border-color var(--transition-fast),
1334
+ transform var(--transition-fast);
1335
+ user-select: none;
1336
+ -webkit-user-select: none;
1337
+ list-style: none;
1338
+ }
1339
+
1340
+ main .method-controls summary::-webkit-details-marker {
1341
+ display: none;
1342
+ }
1343
+
1344
+ main .method-controls summary:hover {
1345
+ background: var(--color-primary-100);
1346
+ border-color: var(--color-primary-300);
1347
+ transform: translateY(-1px);
1348
+ }
1349
+
1350
+ main .method-controls summary:active {
1351
+ transform: scale(0.96);
1352
+ }
1353
+
1354
+ [data-theme="dark"] main .method-controls summary:hover {
1355
+ background: var(--color-accent-subtle-hover);
1356
+ border-color: var(--color-primary-500);
1172
1357
  }
1173
1358
 
1174
1359
  main .method-description,
@@ -1637,55 +1822,88 @@ footer.site-footer .footer-bottom:first-child {
1637
1822
  }
1638
1823
 
1639
1824
  /* Search Results */
1640
- #search-results {
1825
+ .search-results {
1641
1826
  font-family: var(--font-primary);
1642
1827
  font-weight: 300;
1643
1828
  }
1644
1829
 
1645
- #search-results a {
1830
+ .search-results a {
1646
1831
  color: var(--color-text-primary);
1647
1832
  }
1648
1833
 
1649
- #search-results a:hover {
1834
+ .search-results a:hover {
1650
1835
  color: var(--color-accent-primary);
1651
1836
  }
1652
1837
 
1653
- #search-results .search-match {
1838
+ .search-results .search-match {
1654
1839
  font-family: var(--font-heading);
1655
1840
  font-weight: normal;
1656
1841
  }
1657
1842
 
1658
- #search-results .search-selected {
1843
+ .search-results .search-selected {
1659
1844
  background: var(--color-code-bg);
1660
1845
  border-bottom: 1px solid transparent;
1661
1846
  }
1662
1847
 
1663
- #search-results li {
1848
+ .search-results li {
1664
1849
  list-style: none;
1665
1850
  border-bottom: 1px solid var(--color-border-default);
1666
1851
  margin-bottom: 0.5em;
1667
1852
  }
1668
1853
 
1669
- #search-results li:last-child {
1854
+ .search-results li:last-child {
1670
1855
  border-bottom: none;
1671
1856
  margin-bottom: 0;
1672
1857
  }
1673
1858
 
1674
- #search-results li p {
1859
+ .search-results li p {
1675
1860
  padding: 0;
1676
1861
  margin: 0.5em;
1677
1862
  }
1678
1863
 
1679
- #search-results .search-namespace {
1864
+ .search-results .search-namespace {
1680
1865
  font-weight: bold;
1681
1866
  }
1682
1867
 
1683
- #search-results li em {
1868
+ .search-results .search-type {
1869
+ display: inline-block;
1870
+ margin-left: var(--space-2);
1871
+ padding: 0 var(--space-2);
1872
+ font-size: var(--font-size-xs);
1873
+ font-weight: 500;
1874
+ border-radius: var(--radius-sm);
1875
+ vertical-align: middle;
1876
+ background: var(--color-background-tertiary);
1877
+ color: var(--color-text-secondary);
1878
+ }
1879
+
1880
+ .search-results .search-type-class {
1881
+ background: var(--color-search-type-class-bg);
1882
+ color: var(--color-search-type-class-text);
1883
+ }
1884
+
1885
+ .search-results .search-type-module {
1886
+ background: var(--color-search-type-module-bg);
1887
+ color: var(--color-search-type-module-text);
1888
+ }
1889
+
1890
+ .search-results .search-type-constant {
1891
+ background: var(--color-search-type-constant-bg);
1892
+ color: var(--color-search-type-constant-text);
1893
+ }
1894
+
1895
+ .search-results .search-type-instance-method,
1896
+ .search-results .search-type-class-method {
1897
+ background: var(--color-search-type-method-bg);
1898
+ color: var(--color-search-type-method-text);
1899
+ }
1900
+
1901
+ .search-results li em {
1684
1902
  background-color: var(--color-search-highlight-bg);
1685
1903
  font-style: normal;
1686
1904
  }
1687
1905
 
1688
- #search-results pre {
1906
+ .search-results pre {
1689
1907
  margin: 0.5em;
1690
1908
  font-family: var(--font-code);
1691
1909
  }
@@ -1712,7 +1930,7 @@ header.top-navbar #search-field::placeholder {
1712
1930
  }
1713
1931
 
1714
1932
  /* Search results dropdown in navbar */
1715
- header.top-navbar #search-results {
1933
+ header.top-navbar #search-results-desktop {
1716
1934
  position: absolute;
1717
1935
  top: calc(100% + var(--space-2));
1718
1936
  left: 0;
@@ -1728,10 +1946,10 @@ header.top-navbar #search-results {
1728
1946
  padding: 0;
1729
1947
  }
1730
1948
 
1731
- header.top-navbar #search-results.initially-hidden {
1949
+ header.top-navbar #search-results-desktop.initially-hidden {
1732
1950
  display: none;
1733
1951
  }
1734
1952
 
1735
- header.top-navbar #search-results[aria-expanded="false"] {
1953
+ header.top-navbar #search-results-desktop[aria-expanded="false"] {
1736
1954
  display: none;
1737
1955
  }
@@ -3,7 +3,7 @@
3
3
  <%= render '_header.rhtml' %>
4
4
  <%= render '_sidebar_toggle.rhtml' %>
5
5
 
6
- <nav id="navigation" role="navigation">
6
+ <nav id="navigation" role="navigation" hidden>
7
7
  <%= render '_sidebar_pages.rhtml' %>
8
8
  <%= render '_sidebar_classes.rhtml' %>
9
9
  </nav>