blob: a5bb22f08ba25c4447982f6bab9ed6f02c0b46fe [file] [log] [blame]
Austin Schuh812d0d12021-11-04 20:16:48 -07001/**
2
3Doxygen Awesome
4https://github.com/jothepro/doxygen-awesome-css
5
6MIT License
7
8Copyright (c) 2021 jothepro
9
10Permission is hereby granted, free of charge, to any person obtaining a copy
11of this software and associated documentation files (the "Software"), to deal
12in the Software without restriction, including without limitation the rights
13to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14copies of the Software, and to permit persons to whom the Software is
15furnished to do so, subject to the following conditions:
16
17The above copyright notice and this permission notice shall be included in all
18copies or substantial portions of the Software.
19
20THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26SOFTWARE.
27
28*/
29
30html {
31 /* primary theme color. This will affect the entire websites color scheme: links, arrows, labels, ... */
32 --primary-color: #1779c4;
33 --primary-dark-color: #00559f;
34 --primary-light-color: #7aabd6;
35 --primary-lighter-color: #cae1f1;
36 --primary-lightest-color: #e9f1f8;
37
38 /* page base colors */
39 --page-background-color: white;
40 --page-foreground-color: #2c3e50;
41 --page-secondary-foreground-color: #67727e;
42
43 /* color for all separators on the website: hr, borders, ... */
44 --separator-color: #dedede;
45
46 /* border radius for all rounded components. Will affect many components, like dropdowns, memitems, codeblocks, ... */
47 --border-radius-large: 8px;
48 --border-radius-small: 4px;
49 --border-radius-medium: 6px;
50
51 /* default spacings. Most compontest reference these values for spacing, to provide uniform spacing on the page. */
52 --spacing-small: 5px;
53 --spacing-medium: 10px;
54 --spacing-large: 16px;
55
56 /* default box shadow used for raising an element above the normal content. Used in dropdowns, Searchresult, ... */
57 --box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.1);
58
59 --odd-color: rgba(0, 0, 0, 0.03);
60
61 /* font-families. will affect all text on the website
62 * font-family: the normal font for text, headlines, menus
63 * font-family-monospace: used for preformatted text in memtitle, code, fragments
64 */
65 --font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
66 Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
67 --font-family-monospace: source-code-pro, Menlo, Monaco, Consolas,
68 Courier New, monospace;
69
70 /* font sizes */
71 --page-font-size: 15.6px;
72 --navigation-font-size: 14.4px;
73 --code-font-size: 14.4px; /* affects code, fragment */
74 --title-font-size: 22px;
75
76 /* content text properties. These only affect the page content, not the navigation or any other ui elements */
77 --content-line-height: 27px;
78 /* The content is centered and constraint in it's width. To make the content fill the whole page, set the variable to auto.*/
79 --content-maxwidth: 1000px;
80
81 /* colors for various content boxes: @warning, @note, @deprecated @bug */
82 --warning-color: #fca49b;
83 --warning-color-dark: #b61825;
84 --warning-color-darker: #75070f;
85 --note-color: rgba(255, 229, 100, 0.3);
86 --note-color-dark: #c39900;
87 --note-color-darker: #8d7400;
88 --deprecated-color: rgb(214, 216, 224);
89 --deprecated-color-dark: #5b6269;
90 --deprecated-color-darker: #43454a;
91 --bug-color: rgb(246, 208, 178);
92 --bug-color-dark: #a53a00;
93 --bug-color-darker: #5b1d00;
94 --invariant-color: #b7f8d0;
95 --invariant-color-dark: #00ba44;
96 --invariant-color-darker: #008622;
97
98 /* blockquote colors */
99 --blockquote-background: #f5f5f5;
100 --blockquote-foreground: #727272;
101
102 /* table colors */
103 --tablehead-background: #f1f1f1;
104 --tablehead-foreground: var(--page-foreground-color);
105
106 /* menu-display: block | none
107 * Visibility of the top navigation on screens >= 768px. On smaller screen the menu is always visible.
108 * `GENERATE_TREEVIEW` MUST be enabled!
109 */
110 --menu-display: block;
111
112 --menu-focus-foreground: var(--page-background-color);
113 --menu-focus-background: var(--primary-color);
114 --menu-selected-background: rgba(0, 0, 0, 0.05);
115
116 --header-background: var(--page-background-color);
117 --header-foreground: var(--page-foreground-color);
118
119 /* searchbar colors */
120 --searchbar-background: var(--side-nav-background);
121 --searchbar-foreground: var(--page-foreground-color);
122
123 /* searchbar size
124 * (`searchbar-width` is only applied on screens >= 768px.
125 * on smaller screens the searchbar will always fill the entire screen width) */
126 --searchbar-height: 33px;
127 --searchbar-width: 210px;
128
129 /* code block colors */
130 --code-background: #f5f5f5;
131 --code-foreground: var(--page-foreground-color);
132
133 /* fragment colors */
134 --fragment-background: #282c34;
135 --fragment-foreground: #ffffff;
136 --fragment-keyword: #cc99cd;
137 --fragment-keywordtype: #ab99cd;
138 --fragment-keywordflow: #e08000;
139 --fragment-token: #7ec699;
140 --fragment-comment: #999999;
141 --fragment-link: #98c0e3;
142 --fragment-preprocessor: #65cabe;
143 --fragment-linenumber-color: #cccccc;
144 --fragment-linenumber-background: #35393c;
145 --fragment-linenumber-border: #1f1f1f;
146 --fragment-lineheight: 20px;
147
148 /* sidebar navigation (treeview) colors */
149 --side-nav-background: #fbfbfb;
150 --side-nav-foreground: var(--page-foreground-color);
151 --side-nav-arrow-opacity: 0;
152 --side-nav-arrow-hover-opacity: 0.9;
153
154 /* height of an item in any tree / collapsable table */
155 --tree-item-height: 30px;
156
157 --darkmode-toggle-button-icon: "☀️";
158}
159
160@media screen and (max-width: 767px) {
161 html {
162 --page-font-size: 16px;
163 --navigation-font-size: 16px;
164 --code-font-size: 15px; /* affects code, fragment */
165 --title-font-size: 22px;
166 }
167}
168
169@media (prefers-color-scheme: dark) {
170 html:not(.light-mode) {
171 color-scheme: dark;
172
173 --primary-color: #1982d2;
174 --primary-dark-color: #5ca8e2;
175 --primary-light-color: #4779ac;
176 --primary-lighter-color: #191e21;
177 --primary-lightest-color: #191a1c;
178
179 --box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.35);
180
181 --odd-color: rgba(0, 0, 0, 0.1);
182
183 --menu-selected-background: rgba(0, 0, 0, 0.4);
184
185 --page-background-color: #1c1d1f;
186 --page-foreground-color: #d2dbde;
187 --page-secondary-foreground-color: #859399;
188 --separator-color: #000000;
189 --side-nav-background: #252628;
190
191 --code-background: #2a2c2f;
192
193 --tablehead-background: #2a2c2f;
194
195 --blockquote-background: #1f2022;
196 --blockquote-foreground: #77848a;
197
198 --warning-color: #b61825;
199 --warning-color-dark: #510a02;
200 --warning-color-darker: #f5b1aa;
201 --note-color: rgb(255, 183, 0);
202 --note-color-dark: #9f7300;
203 --note-color-darker: #fff6df;
204 --deprecated-color: rgb(88, 90, 96);
205 --deprecated-color-dark: #262e37;
206 --deprecated-color-darker: #a0a5b0;
207 --bug-color: rgb(248, 113, 0);
208 --bug-color-dark: #812a00;
209 --bug-color-darker: #ffd3be;
210
211 --darkmode-toggle-button-icon: "🌛";
212 }
213}
214
215/* dark mode variables are defined twice, to support both the dark-mode without and with doxygen-awesome-darkmode-toggle.js */
216html.dark-mode {
217 color-scheme: dark;
218
219 --primary-color: #1982d2;
220 --primary-dark-color: #5ca8e2;
221 --primary-light-color: #4779ac;
222 --primary-lighter-color: #191e21;
223 --primary-lightest-color: #191a1c;
224
225 --box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.35);
226
227 --odd-color: rgba(0, 0, 0, 0.1);
228
229 --menu-selected-background: rgba(0, 0, 0, 0.4);
230
231 --page-background-color: #1c1d1f;
232 --page-foreground-color: #d2dbde;
233 --page-secondary-foreground-color: #859399;
234 --separator-color: #000000;
235 --side-nav-background: #252628;
236
237 --code-background: #2a2c2f;
238
239 --tablehead-background: #2a2c2f;
240
241 --blockquote-background: #1f2022;
242 --blockquote-foreground: #77848a;
243
244 --warning-color: #b61825;
245 --warning-color-dark: #510a02;
246 --warning-color-darker: #f5b1aa;
247 --note-color: rgb(255, 183, 0);
248 --note-color-dark: #9f7300;
249 --note-color-darker: #fff6df;
250 --deprecated-color: rgb(88, 90, 96);
251 --deprecated-color-dark: #262e37;
252 --deprecated-color-darker: #a0a5b0;
253 --bug-color: rgb(248, 113, 0);
254 --bug-color-dark: #812a00;
255 --bug-color-darker: #ffd3be;
256
257 --darkmode-toggle-button-icon: "🌛";
258}
259
260body {
261 color: var(--page-foreground-color);
262 background-color: var(--page-background-color);
263 font-size: var(--page-font-size);
264}
265
266body,
267table,
268div,
269p,
270dl,
271#nav-tree .label,
272.title,
273.sm-dox a,
274.sm-dox a:hover,
275.sm-dox a:focus,
276#projectname,
277.SelectItem,
278#MSearchField,
279.navpath li.navelem a,
280.navpath li.navelem a:hover {
281 font-family: var(--font-family);
282}
283
284h1,
285h2,
286h3,
287h4,
288h5 {
289 margin-top: 0.9em;
290 font-weight: 600;
291 line-height: initial;
292}
293
294p,
295div,
296table,
297dl {
298 font-size: var(--page-font-size);
299}
300
301a:link,
302a:visited,
303a:hover,
304a:focus,
305a:active {
306 color: var(--primary-color) !important;
307 font-weight: 500;
308}
309
310/*
311 Title and top navigation
312 */
313
314#top {
315 background: var(--header-background);
316 border-bottom: 1px solid var(--separator-color);
317}
318
319@media screen and (min-width: 768px) {
320 #top {
321 display: flex;
322 flex-wrap: wrap;
323 justify-content: space-between;
324 align-items: center;
325 }
326}
327
328#main-nav {
329 flex-grow: 5;
330 padding: var(--spacing-small) var(--spacing-medium);
331}
332
333#titlearea {
334 width: auto;
335 padding: var(--spacing-medium) var(--spacing-large);
336 background: none;
337 color: var(--header-foreground);
338 border-bottom: none;
339}
340
341@media screen and (max-width: 767px) {
342 #titlearea {
343 padding-bottom: var(--spacing-small);
344 }
345}
346
347#titlearea table tbody tr {
348 height: auto !important;
349}
350
351#projectname {
352 font-size: var(--title-font-size);
353 font-weight: 600;
354}
355
356#projectnumber {
357 font-family: inherit;
358 font-size: 60%;
359}
360
361#projectbrief {
362 font-family: inherit;
363 font-size: 80%;
364}
365
366#projectlogo {
367 vertical-align: middle;
368}
369
370#projectlogo img {
371 max-height: calc(var(--title-font-size) * 2);
372 margin-right: var(--spacing-small);
373}
374
375.sm-dox,
376.tabs,
377.tabs2,
378.tabs3 {
379 background: none;
380 padding: 0;
381}
382
383.tabs,
384.tabs2,
385.tabs3 {
386 border-bottom: 1px solid var(--separator-color);
387 margin-bottom: -1px;
388}
389
390@media screen and (max-width: 767px) {
391 .sm-dox a span.sub-arrow {
392 background: var(--code-background);
393 }
394}
395
396@media screen and (min-width: 768px) {
397 .sm-dox li,
398 .tablist li {
399 display: var(--menu-display);
400 }
401
402 .sm-dox a span.sub-arrow {
403 border-color: var(--header-foreground) transparent transparent
404 transparent;
405 }
406
407 .sm-dox a:hover span.sub-arrow {
408 border-color: var(--menu-focus-foreground) transparent transparent
409 transparent;
410 }
411
412 .sm-dox ul a span.sub-arrow {
413 border-color: transparent transparent transparent
414 var(--page-foreground-color);
415 }
416
417 .sm-dox ul a:hover span.sub-arrow {
418 border-color: transparent transparent transparent
419 var(--menu-focus-foreground);
420 }
421}
422
423.sm-dox ul {
424 background: var(--page-background-color);
425 box-shadow: var(--box-shadow);
426 border: 1px solid var(--separator-color);
427 border-radius: var(--border-radius-medium) !important;
428 padding: var(--spacing-small);
429 animation: ease-out 150ms slideInMenu;
430}
431
432@keyframes slideInMenu {
433 from {
434 opacity: 0;
435 transform: translate(0px, -2px);
436 }
437
438 to {
439 opacity: 1;
440 transform: translate(0px, 0px);
441 }
442}
443
444.sm-dox ul a {
445 color: var(--page-foreground-color) !important;
446 background: var(--page-background-color);
447 font-size: var(--navigation-font-size);
448}
449
450.sm-dox > li > ul:after {
451 border-bottom-color: var(--page-background-color) !important;
452}
453
454.sm-dox > li > ul:before {
455 border-bottom-color: var(--separator-color) !important;
456}
457
458.sm-dox ul a:hover,
459.sm-dox ul a:active,
460.sm-dox ul a:focus {
461 font-size: var(--navigation-font-size) !important;
462 color: var(--menu-focus-foreground) !important;
463 text-shadow: none;
464 background-color: var(--menu-focus-background);
465 border-radius: var(--border-radius-small) !important;
466}
467
468.sm-dox a,
469.sm-dox a:focus,
470.tablist li,
471.tablist li a,
472.tablist li.current a {
473 text-shadow: none;
474 background: transparent;
475 background-image: none !important;
476 color: var(--header-foreground) !important;
477 font-weight: normal;
478 font-size: var(--navigation-font-size);
479}
480
481.sm-dox a:focus {
482 outline: auto;
483}
484
485.sm-dox a:hover,
486.sm-dox a:active,
487.tablist li a:hover {
488 text-shadow: none;
489 font-weight: normal;
490 background: var(--menu-focus-background);
491 color: var(--menu-focus-foreground) !important;
492 border-radius: var(--border-radius-small) !important;
493 font-size: var(--navigation-font-size);
494}
495
496.tablist li.current {
497 border-radius: var(--border-radius-small);
498 background: var(--menu-selected-background);
499}
500
501.tablist li {
502 margin: var(--spacing-small) 0 var(--spacing-small) var(--spacing-small);
503}
504
505.tablist a {
506 padding: 0 var(--spacing-large);
507}
508
509/*
510 Search box
511 */
512
513#MSearchBox {
514 height: var(--searchbar-height);
515 background: var(--searchbar-background);
516 border-radius: var(--searchbar-height);
517 border: 1px solid var(--separator-color);
518 overflow: hidden;
519 width: var(--searchbar-width);
520 position: relative;
521 box-shadow: none;
522 display: block;
523 margin-top: 0;
524}
525
526.left #MSearchSelect {
527 left: 0;
528}
529
530.tabs .left #MSearchSelect {
531 padding-left: 0;
532}
533
534.tabs #MSearchBox {
535 position: absolute;
536 right: var(--spacing-medium);
537}
538
539@media screen and (max-width: 767px) {
540 .tabs #MSearchBox {
541 position: relative;
542 right: 0;
543 margin-left: var(--spacing-medium);
544 margin-top: 0;
545 }
546}
547
548#MSearchSelectWindow,
549#MSearchResultsWindow {
550 z-index: 9999;
551}
552
553#MSearchBox.MSearchBoxActive {
554 border-color: var(--primary-color);
555 box-shadow: inset 0 0 0 1px var(--primary-color);
556}
557
558#main-menu > li:last-child {
559 margin-right: 0;
560}
561
562@media screen and (max-width: 767px) {
563 #main-menu > li:last-child {
564 height: 50px;
565 }
566}
567
568#MSearchField {
569 font-size: var(--navigation-font-size);
570 height: calc(var(--searchbar-height) - 2px);
571 background: transparent;
572 width: calc(var(--searchbar-width) - 64px);
573}
574
575.MSearchBoxActive #MSearchField {
576 color: var(--searchbar-foreground);
577}
578
579#MSearchSelect {
580 top: calc(calc(var(--searchbar-height) / 2) - 11px);
581}
582
583.left #MSearchSelect {
584 padding-left: 8px;
585}
586
587#MSearchBox span.left,
588#MSearchBox span.right {
589 background: none;
590}
591
592#MSearchBox span.right {
593 padding-top: calc(calc(var(--searchbar-height) / 2) - 12px);
594 position: absolute;
595 right: var(--spacing-small);
596}
597
598.tabs #MSearchBox span.right {
599 top: calc(calc(var(--searchbar-height) / 2) - 12px);
600}
601
602@keyframes slideInSearchResults {
603 from {
604 opacity: 0;
605 transform: translate(0, 15px);
606 }
607
608 to {
609 opacity: 1;
610 transform: translate(0, 20px);
611 }
612}
613
614#MSearchResultsWindow {
615 left: auto !important;
616 right: var(--spacing-medium);
617 border-radius: var(--border-radius-large);
618 border: 1px solid var(--separator-color);
619 transform: translate(0, 20px);
620 box-shadow: var(--box-shadow);
621 animation: ease-out 280ms slideInSearchResults;
622 background: var(--page-background-color);
623}
624
625iframe#MSearchResults {
626 margin: 4px;
627}
628
629@media (prefers-color-scheme: dark) {
630 html:not(.light-mode) iframe#MSearchResults {
631 filter: invert() hue-rotate(180deg);
632 }
633}
634
635html.dark-mode iframe#MSearchResults {
636 filter: invert() hue-rotate(180deg);
637}
638
639#MSearchSelectWindow {
640 border: 1px solid var(--separator-color);
641 border-radius: var(--border-radius-medium);
642 box-shadow: var(--box-shadow);
643 background: var(--page-background-color);
644}
645
646#MSearchSelectWindow a.SelectItem {
647 font-size: var(--navigation-font-size);
648 line-height: var(--content-line-height);
649 margin: 0 var(--spacing-small);
650 border-radius: var(--border-radius-small);
651 color: var(--page-foreground-color) !important;
652 font-weight: normal;
653}
654
655#MSearchSelectWindow a.SelectItem:hover {
656 background: var(--menu-focus-background);
657 color: var(--menu-focus-foreground) !important;
658}
659
660@media screen and (max-width: 767px) {
661 #MSearchBox {
662 margin-top: var(--spacing-medium);
663 margin-bottom: var(--spacing-medium);
664 width: calc(100vw - 30px);
665 }
666
667 #main-menu > li:last-child {
668 float: none !important;
669 }
670
671 #MSearchField {
672 width: calc(100vw - 110px);
673 }
674
675 @keyframes slideInSearchResultsMobile {
676 from {
677 opacity: 0;
678 transform: translate(0, 15px);
679 }
680
681 to {
682 opacity: 1;
683 transform: translate(0, 20px);
684 }
685 }
686
687 #MSearchResultsWindow {
688 left: var(--spacing-medium) !important;
689 right: var(--spacing-medium);
690 overflow: auto;
691 transform: translate(0, 20px);
692 animation: ease-out 280ms slideInSearchResultsMobile;
693 }
694}
695
696/*
697 Tree view
698 */
699
700#side-nav {
701 padding: 0 !important;
702 background: var(--side-nav-background);
703}
704
705@media screen and (max-width: 767px) {
706 #side-nav {
707 display: none;
708 }
709
710 #doc-content {
711 margin-left: 0 !important;
712 height: auto !important;
713 padding-bottom: calc(2 * var(--spacing-large));
714 }
715}
716
717#nav-tree {
718 background: transparent;
719}
720
721#nav-tree .label {
722 font-size: var(--navigation-font-size);
723}
724
725#nav-tree .item {
726 height: var(--tree-item-height);
727 line-height: var(--tree-item-height);
728}
729
730#nav-sync {
731 top: 12px !important;
732 right: 12px;
733}
734
735#nav-tree .selected {
736 text-shadow: none;
737 background-image: none;
738 background-color: transparent;
739 box-shadow: inset 4px 0 0 0 var(--primary-color);
740}
741
742#nav-tree a {
743 color: var(--side-nav-foreground) !important;
744 font-weight: normal;
745}
746
747#nav-tree a:focus {
748 outline-style: auto;
749}
750
751#nav-tree .arrow {
752 opacity: var(--side-nav-arrow-opacity);
753}
754
755.arrow {
756 color: inherit;
757 cursor: pointer;
758 font-size: 45%;
759 vertical-align: middle;
760 margin-right: 2px;
761 font-family: serif;
762 height: auto;
763 text-align: right;
764}
765
766#nav-tree div.item:hover .arrow,
767#nav-tree a:focus .arrow {
768 opacity: var(--side-nav-arrow-hover-opacity);
769}
770
771#nav-tree .selected a {
772 color: var(--primary-color) !important;
773 font-weight: bolder;
774 font-weight: 600;
775}
776
777.ui-resizable-e {
778 background: var(--separator-color);
779 width: 1px;
780}
781
782/*
783 Contents
784 */
785
786div.header {
787 border-bottom: 1px solid var(--separator-color);
788 background-color: var(--page-background-color);
789 background-image: none;
790}
791
792div.contents,
793div.header .title,
794div.header .summary {
795 max-width: var(--content-maxwidth);
796}
797
798div.contents,
799div.header .title {
800 line-height: initial;
801 margin: calc(var(--spacing-medium) + 0.2em) auto var(--spacing-medium) auto;
802}
803
804div.header .summary {
805 margin: var(--spacing-medium) auto 0 auto;
806}
807
808div.headertitle {
809 padding: 0;
810}
811
812div.header .title {
813 font-weight: 600;
814 font-size: 210%;
815 padding: var(--spacing-medium) var(--spacing-large);
816 word-break: break-word;
817}
818
819div.header .summary {
820 width: auto;
821 display: block;
822 float: none;
823 padding: 0 var(--spacing-large);
824}
825
826td.memSeparator {
827 border-color: var(--separator-color);
828}
829
830.mdescLeft,
831.mdescRight,
832.memItemLeft,
833.memItemRight,
834.memTemplItemLeft,
835.memTemplItemRight,
836.memTemplParams {
837 background: var(--code-background);
838}
839
840.mdescRight {
841 color: var(--page-secondary-foreground-color);
842}
843
844span.mlabel {
845 background: var(--primary-color);
846 border: none;
847 padding: 4px 9px;
848 border-radius: 12px;
849 margin-right: var(--spacing-medium);
850}
851
852span.mlabel:last-of-type {
853 margin-right: 2px;
854}
855
856div.contents {
857 padding: 0 var(--spacing-large);
858}
859
860div.contents p,
861div.contents li {
862 line-height: var(--content-line-height);
863}
864
865div.contents div.dyncontent {
866 margin: var(--spacing-medium) 0;
867}
868
869@media (prefers-color-scheme: dark) {
870 html:not(.light-mode) div.contents div.dyncontent img,
871 html:not(.light-mode) div.contents center img,
872 html:not(.light-mode) div.contents table img,
873 html:not(.light-mode) div.contents div.dyncontent iframe,
874 html:not(.light-mode) div.contents center iframe,
875 html:not(.light-mode) div.contents table iframe {
876 filter: hue-rotate(180deg) invert();
877 }
878}
879
880html.dark-mode div.contents div.dyncontent img,
881html.dark-mode div.contents center img,
882html.dark-mode div.contents table img,
883html.dark-mode div.contents div.dyncontent iframe,
884html.dark-mode div.contents center iframe,
885html.dark-mode div.contents table iframe {
886 filter: hue-rotate(180deg) invert();
887}
888
889h2.groupheader {
890 border-bottom: 1px solid var(--separator-color);
891 color: var(--page-foreground-color);
892}
893
894blockquote {
895 padding: var(--spacing-small) var(--spacing-medium);
896 background: var(--blockquote-background);
897 color: var(--blockquote-foreground);
898 border-left: 2px solid var(--blockquote-foreground);
899 margin: 0;
900}
901
902blockquote p {
903 margin: var(--spacing-small) 0 var(--spacing-medium) 0;
904}
905.paramname {
906 font-weight: 600;
907 color: var(--primary-dark-color);
908}
909
910.glow {
911 text-shadow: 0 0 15px var(--primary-light-color) !important;
912}
913
914.alphachar a {
915 color: var(--page-foreground-color);
916}
917
918/*
919 Table of Contents
920 */
921
922div.toc {
923 background-color: var(--side-nav-background);
924 border: 1px solid var(--separator-color);
925 border-radius: var(--border-radius-medium);
926 box-shadow: var(--box-shadow);
927 padding: 0 var(--spacing-large);
928 margin: 0 0 var(--spacing-medium) var(--spacing-medium);
929}
930
931div.toc h3 {
932 color: var(--side-nav-foreground);
933 font-size: var(--navigation-font-size);
934 margin: var(--spacing-large) 0;
935}
936
937div.toc li {
938 font-size: var(--navigation-font-size);
939 padding: 0;
940 background: none;
941}
942
943div.toc li:before {
944 content: "↓";
945 font-weight: 800;
946 font-family: var(--font-family);
947 margin-right: var(--spacing-small);
948 color: var(--side-nav-foreground);
949 opacity: 0.4;
950}
951
952div.toc ul li.level1 {
953 margin: 0;
954}
955
956div.toc ul li.level2,
957div.toc ul li.level3 {
958 margin-top: 0;
959}
960
961@media screen and (max-width: 767px) {
962 div.toc {
963 float: none;
964 width: auto;
965 margin: 0 0 var(--spacing-medium) 0;
966 }
967}
968
969/*
970 Code & Fragments
971 */
972
973code,
974div.fragment,
975pre.fragment {
976 border-radius: var(--border-radius-small);
977 border: none;
978 overflow: hidden;
979}
980
981code {
982 display: inline;
983 background: var(--code-background);
984 color: var(--code-foreground);
985 padding: 2px 6px;
986 word-break: break-word;
987}
988
989div.fragment,
990pre.fragment {
991 margin: var(--spacing-medium) 0;
992 padding: 14px 16px;
993 background: var(--fragment-background);
994 color: var(--fragment-foreground);
995 overflow-x: auto;
996}
997
998@media screen and (max-width: 767px) {
999 div.fragment,
1000 pre.fragment {
1001 border-top-right-radius: 0;
1002 border-bottom-right-radius: 0;
1003 }
1004
1005 .contents > div.fragment,
1006 .textblock > div.fragment,
1007 .textblock > pre.fragment {
1008 margin: var(--spacing-medium) calc(0px - var(--spacing-large));
1009 border-radius: 0;
1010 }
1011
1012 .textblock li > .fragment {
1013 margin: var(--spacing-medium) calc(0px - var(--spacing-large));
1014 }
1015
1016 .memdoc li > .fragment {
1017 margin: var(--spacing-medium) calc(0px - var(--spacing-medium));
1018 }
1019
1020 .memdoc > div.fragment,
1021 .memdoc > pre.fragment,
1022 dl dd > div.fragment,
1023 dl dd pre.fragment {
1024 margin: var(--spacing-medium) calc(0px - var(--spacing-medium));
1025 border-radius: 0;
1026 }
1027}
1028
1029code,
1030code a,
1031pre.fragment,
1032div.fragment,
1033div.fragment .line,
1034div.fragment span,
1035div.fragment .line a,
1036div.fragment .line span {
1037 font-family: var(--font-family-monospace);
1038 font-size: var(--code-font-size) !important;
1039}
1040
1041div.line:after {
1042 margin-right: var(--spacing-medium);
1043}
1044
1045div.fragment .line,
1046pre.fragment {
1047 white-space: pre;
1048 word-wrap: initial;
1049 line-height: var(--fragment-lineheight);
1050}
1051
1052div.fragment span.keyword {
1053 color: var(--fragment-keyword);
1054}
1055
1056div.fragment span.keywordtype {
1057 color: var(--fragment-keywordtype);
1058}
1059
1060div.fragment span.keywordflow {
1061 color: var(--fragment-keywordflow);
1062}
1063
1064div.fragment span.stringliteral {
1065 color: var(--fragment-token);
1066}
1067
1068div.fragment span.comment {
1069 color: var(--fragment-comment);
1070}
1071
1072div.fragment a.code {
1073 color: var(--fragment-link) !important;
1074}
1075
1076div.fragment span.preprocessor {
1077 color: var(--fragment-preprocessor);
1078}
1079
1080div.fragment span.lineno {
1081 display: inline-block;
1082 width: 27px;
1083 border-right: none;
1084 background: var(--fragment-linenumber-background);
1085 color: var(--fragment-linenumber-color);
1086}
1087
1088div.fragment span.lineno a {
1089 background: none;
1090 color: var(--fragment-link) !important;
1091}
1092
1093div.fragment .line:first-child .lineno {
1094 box-shadow: -999999px 0px 0 999999px var(--fragment-linenumber-background),
1095 -999998px 0px 0 999999px var(--fragment-linenumber-border);
1096}
1097
1098/*
1099 dl warning, attention, note, deprecated, bug, ...
1100 */
1101
1102dl.warning,
1103dl.attention,
1104dl.note,
1105dl.deprecated,
1106dl.bug,
1107dl.invariant,
1108dl.pre {
1109 padding: var(--spacing-medium);
1110 margin: var(--spacing-medium) 0;
1111 color: var(--page-background-color);
1112 overflow: hidden;
1113 margin-left: 0;
1114 border-radius: var(--border-radius-small);
1115}
1116
1117dl.section dd {
1118 margin-bottom: 2px;
1119}
1120
1121dl.warning,
1122dl.attention {
1123 background: var(--warning-color);
1124 border-left: 8px solid var(--warning-color-dark);
1125 color: var(--warning-color-darker);
1126}
1127
1128dl.warning dt,
1129dl.attention dt {
1130 color: var(--warning-color-dark);
1131}
1132
1133dl.note {
1134 background: var(--note-color);
1135 border-left: 8px solid var(--note-color-dark);
1136 color: var(--note-color-darker);
1137}
1138
1139dl.note dt {
1140 color: var(--note-color-dark);
1141}
1142
1143dl.bug {
1144 background: var(--bug-color);
1145 border-left: 8px solid var(--bug-color-dark);
1146 color: var(--bug-color-darker);
1147}
1148
1149dl.bug dt a {
1150 color: var(--bug-color-dark) !important;
1151}
1152
1153dl.deprecated {
1154 background: var(--deprecated-color);
1155 border-left: 8px solid var(--deprecated-color-dark);
1156 color: var(--deprecated-color-darker);
1157}
1158
1159dl.deprecated dt a {
1160 color: var(--deprecated-color-dark) !important;
1161}
1162
1163dl.section dd,
1164dl.bug dd,
1165dl.deprecated dd {
1166 margin-inline-start: 0px;
1167}
1168
1169dl.invariant,
1170dl.pre {
1171 background: var(--invariant-color);
1172 border-left: 8px solid var(--invariant-color-dark);
1173 color: var(--invariant-color-darker);
1174}
1175
1176/*
1177 memitem
1178 */
1179
1180div.memdoc,
1181div.memproto,
1182h2.memtitle {
1183 box-shadow: none;
1184 background-image: none;
1185 border: none;
1186}
1187
1188div.memdoc {
1189 padding: 0 var(--spacing-medium);
1190 background: var(--page-background-color);
1191}
1192
1193h2.memtitle,
1194div.memitem {
1195 border: 1px solid var(--separator-color);
1196}
1197
1198div.memproto,
1199h2.memtitle {
1200 background: var(--code-background);
1201 text-shadow: none;
1202}
1203
1204h2.memtitle {
1205 font-weight: 500;
1206 font-family: monospace, fixed;
1207 border-bottom: none;
1208 border-top-left-radius: var(--border-radius-medium);
1209 border-top-right-radius: var(--border-radius-medium);
1210 word-break: break-all;
1211}
1212
1213a:target + h2.memtitle,
1214a:target + h2.memtitle + div.memitem {
1215 border-color: var(--primary-light-color);
1216}
1217
1218a:target + h2.memtitle {
1219 box-shadow: -3px -3px 3px 0 var(--primary-lightest-color),
1220 3px -3px 3px 0 var(--primary-lightest-color);
1221}
1222
1223a:target + h2.memtitle + div.memitem {
1224 box-shadow: 0 0 10px 0 var(--primary-lighter-color);
1225}
1226
1227div.memitem {
1228 border-top-right-radius: var(--border-radius-medium);
1229 border-bottom-right-radius: var(--border-radius-medium);
1230 border-bottom-left-radius: var(--border-radius-medium);
1231 overflow: hidden;
1232 display: block !important;
1233}
1234
1235div.memdoc {
1236 border-radius: 0;
1237}
1238
1239div.memproto {
1240 border-radius: 0 var(--border-radius-small) 0 0;
1241 overflow: auto;
1242 border-bottom: 1px solid var(--separator-color);
1243 padding: var(--spacing-medium);
1244 margin-bottom: -1px;
1245}
1246
1247div.memtitle {
1248 border-top-right-radius: var(--border-radius-medium);
1249 border-top-left-radius: var(--border-radius-medium);
1250}
1251
1252div.memproto table.memname {
1253 font-family: monospace, fixed;
1254 color: var(--page-foreground-color);
1255}
1256
1257table.mlabels,
1258table.mlabels > tbody {
1259 display: block;
1260}
1261
1262td.mlabels-left {
1263 width: auto;
1264}
1265
1266table.mlabels > tbody > tr:first-child {
1267 display: flex;
1268 justify-content: space-between;
1269 flex-wrap: wrap;
1270}
1271
1272.memname,
1273.memitem span.mlabels {
1274 margin: 0;
1275}
1276
1277/*
1278 reflist
1279 */
1280
1281dl.reflist {
1282 box-shadow: var(--box-shadow);
1283 border-radius: var(--border-radius-medium);
1284 border: 1px solid var(--separator-color);
1285 overflow: hidden;
1286 padding: 0;
1287}
1288
1289dl.reflist dt,
1290dl.reflist dd {
1291 box-shadow: none;
1292 text-shadow: none;
1293 background-image: none;
1294 border: none;
1295 padding: 12px;
1296}
1297
1298dl.reflist dt {
1299 font-weight: 500;
1300 border-radius: 0;
1301 background: var(--code-background);
1302 border-bottom: 1px solid var(--separator-color);
1303 color: var(--page-foreground-color);
1304}
1305
1306dl.reflist dd {
1307 background: none;
1308}
1309
1310/*
1311 Table
1312 */
1313
1314table.markdownTable,
1315table.fieldtable {
1316 width: 100%;
1317 border: 1px solid var(--separator-color);
1318 margin: var(--spacing-medium) 0;
1319}
1320
1321table.fieldtable {
1322 box-shadow: none;
1323 border-radius: var(--border-radius-small);
1324}
1325
1326th.markdownTableHeadLeft,
1327th.markdownTableHeadRight,
1328th.markdownTableHeadCenter,
1329th.markdownTableHeadNone {
1330 background: var(--tablehead-background);
1331 color: var(--tablehead-foreground);
1332 font-weight: 600;
1333 font-size: var(--page-font-size);
1334}
1335
1336table.markdownTable td,
1337table.markdownTable th,
1338table.fieldtable dt {
1339 border: 1px solid var(--separator-color);
1340 padding: var(--spacing-small) var(--spacing-medium);
1341}
1342
1343table.fieldtable th {
1344 font-size: var(--page-font-size);
1345 font-weight: 600;
1346 background-image: none;
1347 background-color: var(--tablehead-background);
1348 color: var(--tablehead-foreground);
1349 border-bottom: 1px solid var(--separator-color);
1350}
1351
1352.fieldtable td.fieldtype,
1353.fieldtable td.fieldname {
1354 border-bottom: 1px solid var(--separator-color);
1355 border-right: 1px solid var(--separator-color);
1356}
1357
1358.fieldtable td.fielddoc {
1359 border-bottom: 1px solid var(--separator-color);
1360}
1361
1362.memberdecls td.glow,
1363.fieldtable tr.glow {
1364 background-color: var(--primary-light-color);
1365 box-shadow: 0 0 15px var(--primary-lighter-color);
1366}
1367
1368table.memberdecls {
1369 display: block;
1370 overflow-x: auto;
1371 overflow-y: hidden;
1372}
1373
1374/*
1375 Horizontal Rule
1376 */
1377
1378hr {
1379 margin-top: var(--spacing-large);
1380 margin-bottom: var(--spacing-large);
1381 border-top: 1px solid var(--separator-color);
1382}
1383
1384.contents hr {
1385 box-shadow: var(--content-maxwidth) 0 0 0 var(--separator-color),
1386 calc(0px - var(--content-maxwidth)) 0 0 0 var(--separator-color);
1387}
1388
1389.contents img {
1390 max-width: 100%;
1391}
1392
1393/*
1394 Directories
1395 */
1396div.directory {
1397 border-top: 1px solid var(--separator-color);
1398 border-bottom: 1px solid var(--separator-color);
1399 width: auto;
1400}
1401
1402table.directory {
1403 font-family: var(--font-family);
1404 font-size: var(--page-font-size);
1405 font-weight: normal;
1406}
1407
1408.directory td.entry {
1409 padding: var(--spacing-small);
1410 display: flex;
1411 align-items: center;
1412}
1413
1414.directory tr.even {
1415 background-color: var(--odd-color);
1416}
1417
1418.icona {
1419 width: auto;
1420 height: auto;
1421 margin: 0 var(--spacing-small);
1422}
1423
1424.icon {
1425 background: var(--primary-color);
1426 width: 18px;
1427 height: 18px;
1428 line-height: 18px;
1429}
1430
1431.iconfopen,
1432.icondoc,
1433.iconfclosed {
1434 background-position: center;
1435 margin-bottom: 0;
1436}
1437
1438.icondoc {
1439 filter: saturate(0.2);
1440}
1441
1442@media screen and (max-width: 767px) {
1443 div.directory {
1444 margin-left: calc(0px - var(--spacing-medium));
1445 margin-right: calc(0px - var(--spacing-medium));
1446 }
1447}
1448
1449@media (prefers-color-scheme: dark) {
1450 html:not(.light-mode) .iconfopen,
1451 html:not(.light-mode) .iconfclosed {
1452 filter: hue-rotate(180deg) invert();
1453 }
1454}
1455
1456html.dark-mode .iconfopen,
1457html.dark-mode .iconfclosed {
1458 filter: hue-rotate(180deg) invert();
1459}
1460
1461/*
1462 Class list
1463 */
1464
1465.classindex dl.odd {
1466 background: var(--odd-color);
1467 border-radius: var(--border-radius-small);
1468}
1469
1470@media screen and (max-width: 767px) {
1471 .classindex {
1472 margin: 0 calc(0px - var(--spacing-small));
1473 }
1474}
1475
1476/*
1477 Footer and nav-path
1478 */
1479
1480#nav-path {
1481 margin-bottom: -1px;
1482 width: 100%;
1483}
1484
1485#nav-path ul {
1486 background-image: none;
1487 background: var(--page-background-color);
1488 border: none;
1489 border-top: 1px solid var(--separator-color);
1490 border-bottom: 1px solid var(--separator-color);
1491 font-size: var(--navigation-font-size);
1492}
1493
1494img.footer {
1495 width: 60px;
1496}
1497
1498.navpath li.footer {
1499 color: var(--page-secondary-foreground-color);
1500}
1501
1502address.footer {
1503 margin-bottom: var(--spacing-large);
1504}
1505
1506#nav-path li.navelem {
1507 background-image: none;
1508 display: flex;
1509 align-items: center;
1510}
1511
1512.navpath li.navelem a {
1513 text-shadow: none;
1514 display: inline-block;
1515 color: var(--primary-color) !important;
1516}
1517
1518.navpath li.navelem b {
1519 color: var(--primary-dark-color);
1520 font-weight: 500;
1521}
1522
1523li.navelem {
1524 padding: 0;
1525 margin-left: -8px;
1526}
1527
1528li.navelem:first-child {
1529 margin-left: var(--spacing-large);
1530}
1531
1532li.navelem:first-child:before {
1533 display: none;
1534}
1535
1536#nav-path li.navelem:after {
1537 content: "";
1538 border: 5px solid var(--page-background-color);
1539 border-bottom-color: transparent;
1540 border-right-color: transparent;
1541 border-top-color: transparent;
1542 transform: scaleY(4.2);
1543 z-index: 10;
1544 margin-left: 6px;
1545}
1546
1547#nav-path li.navelem:before {
1548 content: "";
1549 border: 5px solid var(--separator-color);
1550 border-bottom-color: transparent;
1551 border-right-color: transparent;
1552 border-top-color: transparent;
1553 transform: scaleY(3.2);
1554 margin-right: var(--spacing-small);
1555}
1556
1557.navpath li.navelem a:hover {
1558 color: var(--primary-color);
1559}
1560
1561/*
1562 Optional Dark mode toggle button
1563*/
1564
1565doxygen-awesome-dark-mode-toggle {
1566 margin: 0 0 0 var(--spacing-small);
1567 padding: 0;
1568 width: var(--searchbar-height);
1569 height: var(--searchbar-height);
1570 background: none;
1571 border: none;
1572 font-size: 23px;
1573 border-radius: var(--border-radius-medium);
1574 vertical-align: middle;
1575 text-align: center;
1576 line-height: var(--searchbar-height);
1577}
1578
1579doxygen-awesome-dark-mode-toggle:hover {
1580 background: var(--separator-color);
1581}
1582
1583doxygen-awesome-dark-mode-toggle:after {
1584 content: var(--darkmode-toggle-button-icon);
1585}
1586
1587/**
1588
1589Doxygen Awesome
1590https://github.com/jothepro/doxygen-awesome-css
1591
1592MIT License
1593
1594Copyright (c) 2021 jothepro
1595
1596Permission is hereby granted, free of charge, to any person obtaining a copy
1597of this software and associated documentation files (the "Software"), to deal
1598in the Software without restriction, including without limitation the rights
1599to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1600copies of the Software, and to permit persons to whom the Software is
1601furnished to do so, subject to the following conditions:
1602
1603The above copyright notice and this permission notice shall be included in all
1604copies or substantial portions of the Software.
1605
1606THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1607IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1608FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1609AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1610LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1611OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1612SOFTWARE.
1613
1614 */
1615
1616html {
1617 /* side nav width. MUST be = `TREEVIEW_WIDTH`.
1618 * Make sure it is wide enought to contain the page title (logo + title + version)
1619 */
1620 --side-nav-fixed-width: 340px;
1621 --menu-display: none;
1622
1623 --top-height: 120px;
1624}
1625
1626@media screen and (min-width: 768px) {
1627 html {
1628 --searchbar-background: var(--page-background-color);
1629 }
1630
1631 #side-nav {
1632 min-width: var(--side-nav-fixed-width);
1633 max-width: var(--side-nav-fixed-width);
1634 top: var(--top-height);
1635 }
1636
1637 #nav-tree,
1638 #side-nav {
1639 height: calc(100vh - var(--top-height)) !important;
1640 }
1641
1642 #nav-tree {
1643 padding: 0;
1644 }
1645
1646 #top {
1647 display: block;
1648 border-bottom: none;
1649 height: var(--top-height);
1650 margin-bottom: calc(0px - var(--top-height));
1651 max-width: var(--side-nav-fixed-width);
1652 background: var(--side-nav-background);
1653 }
1654 #main-nav {
1655 float: left;
1656 padding-right: 0;
1657 }
1658
1659 .ui-resizable-handle {
1660 cursor: default;
1661 width: 1px !important;
1662 box-shadow: 0 calc(-2 * var(--top-height)) 0 0 var(--separator-color);
1663 }
1664
1665 #nav-path {
1666 position: fixed;
1667 right: 0;
1668 left: var(--side-nav-fixed-width);
1669 bottom: 0;
1670 width: auto;
1671 }
1672
1673 #doc-content {
1674 height: calc(100vh - 31px) !important;
1675 padding-bottom: calc(3 * var(--spacing-large));
1676 padding-top: calc(var(--top-height) - 80px);
1677 box-sizing: border-box;
1678 margin-left: var(--side-nav-fixed-width) !important;
1679 }
1680
1681 #MSearchBox {
1682 width: calc(
1683 var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium))
1684 );
1685 }
1686
1687 #MSearchField {
1688 width: calc(
1689 var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - 65px
1690 );
1691 }
1692
1693 #MSearchResultsWindow {
1694 left: var(--spacing-medium) !important;
1695 right: auto;
1696 }
1697}