1/** 2 * Copyright (c) 2019-2020, Juan Linietsky, Ariel Manzur and the Godot community 3 * Copyright (c) 2021, Teslabs Engineering S.L. 4 * SPDX-License-Identifier: CC-BY-3.0 5 * 6 * Various tweaks to the Read the Docs theme to better conform with Zephyr's 7 * visual identity. Many colors are also overridden to use CSS variables. 8 */ 9 10 :root { 11 /* Use system font stacks for better performance (no Web fonts required) */ 12 --system-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; 13 --header-font-family: Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif; 14 } 15 16body, 17h1, 18h2, 19h3, 20h4, 21h5, 22h6, 23input[type="text"], 24input[type="button"], 25input[type="reset"], 26input[type="submit"], 27textarea, 28legend, 29.btn, 30.rst-content .toctree-wrapper p.caption, 31.rst-versions { 32 font-family: var(--system-font-family); 33} 34 35h1, 36h2, 37h3, 38h4, 39h5, 40h6, 41legend, 42.rst-content .toctree-wrapper p.caption { 43 /* Use a lighter font for headers (Semi-Bold instead of Bold) */ 44 font-weight: 600; 45 font-family: var(--header-font-family); 46} 47 48.rst-content div.figure p.caption { 49 /* Tweak caption styling to be closer to typical captions */ 50 text-align: center; 51 margin-top: 8px; 52 opacity: 0.75; 53} 54 55.rst-content div.figure.figure-w480 { 56 max-width: 480px; 57} 58 59p, 60article ul, 61article ol, 62.wy-plain-list-disc, 63.wy-plain-list-decimal, 64.rst-content ol.arabic, 65.rst-content .section ul, 66.rst-content .toctree-wrapper ul, 67.rst-content .section ol { 68 /* Increase the line height slightly to account for the different font */ 69 line-height: 25px; 70} 71 72body, 73.rst-content table.docutils thead { 74 color: var(--body-color); 75} 76 77a { 78 color: var(--link-color); 79} 80 81a:hover { 82 color: var(--link-color-hover); 83 text-decoration: underline; 84} 85 86a:active { 87 /* Add visual feedback when clicking on a link */ 88 color: var(--link-color-active); 89} 90 91a:visited { 92 color: var(--link-color-visited); 93} 94 95a.btn:hover { 96 text-decoration: none; 97} 98 99.sphinx-tabs .sphinx-menu a.item { 100 /* Original definition has `!important` */ 101 color: var(--link-color) !important; 102} 103 104.rst-content .toc-backref { 105 color: var(--link-color); 106} 107 108/* Style external links differently to make them easier to distinguish from internal links. */ 109.reference.external { 110 background-position: center right; 111 background-repeat: no-repeat; 112 background-image: var(--external-reference-icon); 113 padding-right: 13px; 114} 115 116hr, 117#search-results .search li:first-child, 118#search-results .search li { 119 border-color: var(--hr-color); 120} 121 122/* JavaScript documentation directives */ 123html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dt, 124html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dl:not(.field-list) > dt { 125 background-color: var(--admonition-note-background-color); 126 border-color: var(--admonition-note-title-background-color); 127 color: var(--admonition-note-color); 128} 129html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dl dt { 130 background-color: transparent; 131 border-color: transparent; 132 color: var(--footer-color); 133} 134html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple).class dt, 135html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple).function dt, 136html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple).method dt, 137html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple).attribute dt { 138 font-weight: 600; 139 padding: 0 8px; 140 margin-bottom: 1px; 141 width: 100%; 142} 143html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple).class > dt, 144html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple).function > dt, 145html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple).method > dt, 146html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple).attribute > dt { 147 font-family: var(--monospace-font-family); 148 font-variant-ligatures: none; 149 font-size: 90%; 150 font-weight: normal; 151 margin-bottom: 16px; 152 padding: 6px 8px; 153} 154html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .sig-prename.descclassname { 155 color: var(--highlight-type2-color); 156 font-weight: normal; 157} 158html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .sig-name.descname { 159 color: var(--highlight-function-color); 160 font-weight: 700; 161} 162html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .sig-paren, 163html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .optional { 164 color: var(--highlight-operator-color) !important; 165 font-weight: normal; 166 padding: 0 2px; 167} 168html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .optional { 169 font-style: italic; 170} 171html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .sig-param, 172html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple).class dt > em, 173html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple).function dt > em, 174html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple).method dt > em { 175 color: var(--code-literal-color); 176 font-style: normal; 177 padding: 0 4px; 178} 179html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .k { 180 font-style: normal; 181} 182html.writer-html5 .rst-content dl:not(.docutils) > dt, html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) > dt { 183 border-top-color: var(--highlight-background-emph-color); 184 background: var(--highlight-background-color); 185} 186html.writer-html5 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) > dt, html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) > dt { 187 border-left-color: var(--highlight-background-emph-color); 188 background: var(--highlight-background-color); 189} 190html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .sig-param, 191html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple).class dt > .optional ~ em, 192html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple).function dt > .optional ~ em, 193html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple).method dt > .optional ~ em { 194 color: var(--highlight-number-color); 195 font-style: italic; 196} 197html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple).class dt > em.property { 198 color: var(--highlight-keyword-color); 199} 200html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dt a.headerlink { 201 color: var(--link-color) !important; 202} 203html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dt a.headerlink:visited { 204 color: var(--link-color-visited); 205} 206html.writer-html5 .rst-content dl.field-list > dd strong { 207 font-family: var(--monospace-font-family); 208 font-variant-ligatures: none; 209} 210 211footer, 212#search-results .context { 213 color: var(--footer-color); 214} 215 216/* Icon tweaks */ 217a.icon-home, 218a.icon-home:visited { 219 color: var(--navbar-level-1-color); 220} 221 222/* Main sections */ 223 224.wy-nav-content-wrap { 225 background-color: var(--content-wrap-background-color); 226} 227 228.wy-nav-content { 229 background-color: var(--content-background-color); 230 min-height: 100vh; 231 min-height: 100dvh; 232 display: flex; 233} 234 235.wy-body-for-nav { 236 background-color: var(--content-wrap-background-color); 237} 238 239@media only screen and (min-width: 769px) { 240 .wy-nav-content { 241 max-width: 915px; 242 } 243} 244 245/* Table display tweaks */ 246 247.rst-content table.docutils, 248.wy-table-bordered-all td, 249.rst-content table.docutils td, 250.wy-table thead th, 251.rst-content table.docutils thead th, 252.rst-content table.field-list thead th { 253 border-color: var(--code-border-color); 254} 255 256.rst-content table.docutils caption, .rst-content table.field-list caption, .wy-table caption { 257 color: var(--body-color); 258} 259.wy-table-odd td, 260.wy-table-striped tr:nth-child(2n-1) td, 261.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td { 262 background-color: var(--table-row-odd-background-color); 263} 264 265/* Override table no-wrap */ 266/* The first column cells are not verbose, no need to wrap them */ 267.wy-table-responsive table td:not(:nth-child(1)), 268.wy-table-responsive table th:not(:nth-child(1)) { 269 white-space: normal; 270} 271 272/* Allow to control wrapping behavior per table */ 273.wy-table-responsive table.wrap-normal td, 274.wy-table-responsive table.wrap-normal th { 275 white-space: normal; 276} 277 278/* Make sure not to wrap keyboard shortcuts */ 279.wy-table-responsive table td kbd { 280 white-space: nowrap; 281} 282 283/* Force table content font-size in responsive tables to be 100% 284 * fixing larger font size for paragraphs in the kconfig tables */ 285 .wy-table-responsive td p { 286 font-size: 100%; 287} 288 289/* Code display tweaks */ 290 291code, 292.rst-content tt, 293.rst-content code { 294 font-size: 14px; 295 background-color: var(--code-background-color); 296 border: 1px solid var(--code-border-color); 297} 298 299.rst-content tt.literal, 300.rst-content code.literal { 301 color: var(--code-literal-color); 302} 303 304.rst-content div[class^="highlight"] { 305 border-color: none; 306 border: none; 307} 308 309.rst-content pre.literal-block, 310.rst-content div[class^="highlight"] pre, 311.rst-content .linenodiv pre { 312 /* Increase the font size and line height in code blocks */ 313 font-size: 14px; 314 line-height: 1.5; 315} 316 317.rst-content pre.literal-block { 318 border: none; 319 border-radius: 0.25rem; 320 background-color: var(--code-background-color); 321} 322 323/* Code tab display tweaks */ 324 325.ui.tabular.menu .active.item, 326.ui.segment, 327.sphinx-tabs-panel { 328 background-color: var(--code-background-color) !important; 329} 330 331.sphinx-tabs-tab { 332 color: var(--link-color) !important; 333} 334 335.sphinx-tabs-tab[aria-selected="true"] { 336 background-color: var(--code-background-color) !important; 337 border-bottom: 1px solid var(--code-background-color) !important; 338} 339 340/* Code literals */ 341a.internal code.literal { 342 color: var(--link-color); 343} 344 345a.internal:visited code.literal { 346 color: var(--link-color-visited); 347} 348 349/* Syntax highlighting */ 350 351.tab div[class^='highlight']:last-child { 352 margin-bottom: 1em; 353} 354 355.rst-content tt.literal, .rst-content code.literal, .highlight { 356 border-radius: 0.25rem; 357} 358 359.highlight { 360 background-color: var(--highlight-background-color); 361} 362 363/* Emphasized lines */ 364.highlight .hll { 365 background-color: var(--highlight-background-emph-color); 366} 367 368.highlight .gh /* Generic.Heading */, 369.highlight .gu /* Generic.Subheading */, 370.highlight .go /* Generic.Output */, 371.highlight .gt /* Generic.Traceback */ { 372 color: var(--highlight-default-color); 373} 374 375.highlight .c /* Comment */, 376.highlight .c1 /* Comment.Single */, 377.highlight .cm /* Comment.Multiline */, 378.highlight .cs /* Comment.Special */ { 379 color: var(--highlight-comment-color); 380} 381 382.highlight .bp /* Name.Builtin.Pseudo */, 383.highlight .k /* Keyword */, 384.highlight .kc /* Keyword.Constant */, 385.highlight .kd /* Keyword.Declaration */, 386.highlight .kn /* Keyword.Namespace */, 387.highlight .kp /* Keyword.Pseudo */, 388.highlight .kr /* Keyword.Reserved */, 389.highlight .kt /* Keyword.Type */, 390.highlight .ow /* Operator.Word */ { 391 color: var(--highlight-keyword-color); 392} 393 394.highlight .ch /* Comment.Hashbang */, 395.highlight .cp /* Comment.Preproc */ { 396 color: var(--highlight-keyword2-color); 397} 398 399.highlight .m /* Literal.Number */, 400.highlight .mf /* Literal.Number.Float */, 401.highlight .mi /* Literal.Number.Integer */, 402.highlight .il /* Literal.Number.Integer.Long */, 403.highlight .mb /* Literal.Number.Bin */, 404.highlight .mh /* Literal.Number.Hex */, 405.highlight .mo /* Literal.Number.Oct */ { 406 color: var(--highlight-number-color); 407} 408 409.highlight .na /* Name.Attribute */, 410.highlight .nd /* Name.Decorator */, 411.highlight .ni /* Name.Entity */, 412.highlight .nl /* Name.Label */ { 413 color: var(--highlight-decorator-color); 414} 415 416.highlight .nb /* Name.Builtin */, 417.highlight .ne /* Name.Exception */ { 418 color: var(--highlight-type-color); 419} 420 421.highlight .nc /* Name.Class */, 422.highlight .nn /* Name.Namespace */, 423.highlight .no /* Name.Constant */, 424.highlight .nv /* Name.Variable */, 425.highlight .vc /* Name.Variable.Class */, 426.highlight .vg /* Name.Variable.Global */, 427.highlight .vi /* Name.Variable.Instance */, 428.highlight .vm /* Name.Variable.Magic */ { 429 color: var(--highlight-type2-color); 430} 431 432.highlight .nf /* Name.Function */, 433.highlight .fm /* Name.Function.Magic */, 434.highlight .nt /* Name.Tag */ { 435 color: var(--highlight-function-color); 436} 437 438.highlight .o /* Operator */, 439.highlight .si /* Literal.String.Interpol */, 440.highlight .sx /* Literal.String.Other */, 441.highlight .sr /* Literal.String.Regex */, 442.highlight .ss /* Literal.String.Symbol */ { 443 color: var(--highlight-operator-color); 444} 445 446.highlight .cpf/* Comment.PreprocFile */, 447.highlight .s /* Literal.String */, 448.highlight .s1 /* Literal.String.Single */, 449.highlight .s2 /* Literal.String.Double */, 450.highlight .sc /* Literal.String.Char */, 451.highlight .se /* Literal.String.Escape */, 452.highlight .sa /* Literal.String.Affix */, 453.highlight .sb /* Literal.String.Backtick */, 454.highlight .dl /* Literal.String.Delimiter */, 455.highlight .sd /* Literal.String.Doc */, 456.highlight .sh /* Literal.String.Heredoc */ { 457 color: var(--highlight-string-color); 458} 459 460/* Admonition tweaks */ 461 462.rst-content .admonition, 463.rst-content .admonition.note, 464.rst-content .admonition.seealso { 465 background-color: var(--admonition-note-background-color); 466 color: var(--admonition-note-color); 467 overflow: auto; 468} 469 470.rst-content .admonition .admonition-title, 471.rst-content .admonition.note .admonition-title, 472.rst-content .admonition.seealso .admonition-title { 473 background-color: var(--admonition-note-title-background-color); 474 color: var(--admonition-note-title-color); 475} 476 477.rst-content .admonition.attention, 478.rst-content .admonition.caution, 479.rst-content .admonition.warning { 480 background-color: var(--admonition-attention-background-color); 481 color: var(--admonition-attention-color); 482 overflow: auto; 483} 484 485.rst-content .admonition.attention .admonition-title, 486.rst-content .admonition.caution .admonition-title, 487.rst-content .admonition.warning .admonition-title { 488 background-color: var(--admonition-attention-title-background-color); 489 color: var(--admonition-attention-title-color); 490} 491 492.rst-content .admonition.danger { 493 background-color: var(--admonition-danger-background-color); 494 color: var(--admonition-danger-color); 495 overflow: auto; 496} 497 498.rst-content .admonition.danger .admonition-title { 499 background-color: var(--admonition-danger-title-background-color); 500 color: var(--admonition-danger-title-color); 501} 502 503.rst-content .admonition.tip, 504.rst-content .admonition.important { 505 background-color: var(--admonition-tip-background-color); 506 color: var(--admonition-tip-color); 507 overflow: auto; 508} 509 510.rst-content .admonition.tip .admonition-title, 511.rst-content .admonition.important .admonition-title { 512 background-color: var(--admonition-tip-title-background-color); 513 color: var(--admonition-tip-title-color); 514} 515 516/* Admonition tweaks - sphinx_togglebutton */ 517 518.rst-content .admonition.toggle { 519 overflow: visible; 520} 521 522.rst-content .admonition.toggle button { 523 display: inline-flex; 524 color: var(--admonition-note-title-color); 525} 526 527.rst-content .admonition.toggle .tb-icon { 528 height: 1em; 529 width: 1em; 530} 531 532/* Keyboard shortcuts tweaks */ 533kbd, .kbd, 534.rst-content :not(dl.option-list) > :not(dt):not(kbd):not(.kbd) > kbd, 535.rst-content :not(dl.option-list) > :not(dt):not(kbd):not(.kbd) > .kbd { 536 background-color: var(--kbd-background-color); 537 border: 1px solid var(--kbd-outline-color); 538 border-radius: 3px; 539 box-shadow: inset 0 -1px 0 var(--kbd-shadow-color); 540 color: var(--kbd-text-color); 541 display: inline-block; 542 font-size: 12px; 543 line-height: 11px; 544 padding: 4px 5px; 545 vertical-align: middle; 546} 547 548/* guilabel and menuselection tweaks */ 549.rst-content .guilabel, 550.rst-content .menuselection { 551 color: var(--body-color); 552 background-color: var(--guiitems-background-color); 553 border-color: var(--guiitems-border-color); 554} 555 556/* heading tweaks to make document hierarchy easier to grasp */ 557 558.rst-content section > h1 { 559 font-weight: 700; 560 margin-bottom: 2.5rem; 561 position: relative; 562 line-height: 1; 563 z-index: 1; 564} 565 566.rst-content section > h1::before { 567 content: ''; 568 position: absolute; 569 z-index:-1; 570 left: 0; 571 right: 0; 572 height: 4px; 573 bottom: -1px; 574 background: linear-gradient(to right, var(--admonition-note-title-background-color), var(--admonition-note-title-background-color) 50%, var(--admonition-note-background-color) 80%, transparent); /* Example gradient */ 575 opacity:50%; 576} 577 578.rst-content section > h2, 579.rst-content section > h3, 580.rst-content section > h4, 581.rst-content section > h5 { 582 font-weight: 500; 583 padding-inline-start: 8px; 584 margin-inline-start: 0px; 585 border-inline-start: 8px solid; 586 padding-top: 0.2em; 587 padding-bottom: 0.2em; 588} 589 590.rst-content section > h2 { 591 border-color: var(--admonition-note-title-background-color); 592} 593 594.rst-content section > h3 { 595 border-color: var(--admonition-note-background-color); 596} 597 598.rst-content section > h4 { 599 border-color: transparent; 600 font-weight: 400; 601} 602 603.rst-content section > h5 { 604 border-color: transparent; 605 font-weight: 100; 606} 607 608/* Buttons */ 609 610.btn-neutral { 611 background-color: var(--btn-neutral-background-color) !important; 612 color: var(--body-color) !important; 613} 614 615.btn-neutral:hover { 616 background-color: var(--btn-neutral-hover-background-color) !important; 617} 618 619.btn-neutral:visited { 620 color: var(--body-color) !important; 621} 622 623/* Navigation bar logo and search */ 624 625.logo { 626 opacity: var(--logo-opacity); 627} 628 629.wy-side-nav-search > a img.logo { 630 /* Fixed size to prevent reflows and support hiDPI displays */ 631 /* A 5 pixel margin is added on each side. The logo itself displays at 200×100 at 100% scaling. */ 632 width: 210px; 633 height: 105px; 634} 635 636.wy-side-nav-search { 637 background-color: var(--navbar-background-color); 638} 639 640.wy-side-nav-search.fixed { 641 position: fixed; 642} 643 644@media only screen and (min-width: 769px) { 645 /* Simulate a drop shadow that only affects the bottom edge */ 646 /* This is used to indicate the search bar is fixed */ 647 .wy-side-nav-search.fixed-and-scrolled::after { 648 content: ''; 649 position: absolute; 650 left: 0; 651 bottom: -8px; 652 width: 300px; 653 height: 8px; 654 pointer-events: none; 655 background: linear-gradient(hsla(0, 0%, 0%, 0.2), transparent); 656 } 657} 658 659.wy-side-nav-search > a:hover, 660.wy-side-nav-search .wy-dropdown > a:hover { 661 background-color: var(--navbar-background-color-hover); 662} 663 664.wy-side-nav-search > a:active, 665.wy-side-nav-search .wy-dropdown > a:active { 666 background-color: var(--navbar-background-color-active); 667} 668 669.wy-side-nav-search input[type=search] { 670 width: 100%; 671 border-radius: 50px; 672 padding: 6px 12px; 673 background-color: var(--input-background-color); 674 color: var(--body-color); 675 /* Avoid reflowing when toggling the focus state */ 676 border: 2px solid transparent; 677 box-shadow: none; 678 /* Make visual feedback instant */ 679 transition: none; 680 font-size: 14px; 681} 682 683.wy-side-nav-search input[type="search"]:focus { 684 border: 2px solid var(--input-focus-border-color); 685} 686 687.wy-side-nav-search input[type="search"]::placeholder { 688 color: var(--body-color); 689 opacity: 0.55; 690} 691 692/* Navigation bar */ 693 694.wy-nav-side { 695 background-color: var(--navbar-background-color); 696} 697 698.wy-menu-vertical header, 699.wy-menu-vertical p.caption { 700 color: var(--navbar-heading-color); 701 702 /* Improves the appearance of uppercase text */ 703 letter-spacing: 0.75px; 704} 705 706/* Mobile navigation */ 707 708.wy-nav-top, 709.wy-nav-top a { 710 background-color: var(--navbar-background-color); 711 color: var(--navbar-level-1-color); 712} 713 714/* Version branch label below the logo */ 715.wy-side-nav-search > div.version { 716 color: var(--navbar-level-3-color); 717 opacity: 0.9; 718} 719 720/* First level of navigation items */ 721 722.wy-menu-vertical a { 723 color: var(--navbar-level-1-color); 724} 725 726.wy-menu-vertical a:hover { 727 background-color: var(--navbar-background-color-hover); 728 color: var(--navbar-level-1-color); 729} 730 731.wy-menu-vertical a:active { 732 background-color: var(--navbar-background-color-active); 733} 734 735.wy-menu-vertical li.toctree-l1.current > a { 736 border: none; 737} 738 739.wy-side-nav-search, .wy-menu-vertical a, .wy-menu-vertical a span.toctree-expand, 740.wy-menu-vertical li.toctree-l2 a span.toctree-expand { 741 color: var(--navbar-level-3-color); 742 opacity: 0.9; 743 margin-right: 8px; 744} 745 746.wy-side-nav-search, .wy-menu-vertical a, .wy-menu-vertical a:hover span.toctree-expand, 747.wy-menu-vertical li.toctree-l2 a:hover span.toctree-expand { 748 color: var(--navbar-level-2-color); 749 opacity: 1; 750} 751 752.wy-side-nav-search, .wy-menu-vertical a, .wy-menu-vertical a:active span.toctree-expand, 753.wy-menu-vertical li.toctree-l2 a:active span.toctree-expand { 754 color: var(--navbar-level-1-color); 755 opacity: 1; 756} 757 758/* Second (and higher) levels of navigation items */ 759 760.wy-menu-vertical li.current a { 761 /* Make long words always display on a single line, keep wrapping for multiple words */ 762 /* This fixes the class reference titles' display with very long class names */ 763 display: flex; 764} 765 766.wy-menu-vertical li.current a, 767.wy-menu-vertical li.toctree-l2.current > a, 768.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a, 769.wy-menu-vertical li.toctree-l2.current li.toctree-l4 > a { 770 background-color: var(--navbar-current-background-color); 771 color: var(--navbar-level-2-color); 772 border-color: var(--navbar-current-background-color); 773} 774 775.wy-menu-vertical li.current a:hover, 776.wy-menu-vertical li.toctree-l2.current > a:hover, 777.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a:hover, 778.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a:hover { 779 background-color: var(--navbar-current-background-color-hover); 780} 781 782.wy-menu-vertical li.current a:active, 783.wy-menu-vertical li.toctree-l2.current > a:active, 784.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a:active, 785.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a:active { 786 background-color: var(--navbar-current-background-color-active); 787} 788 789.wy-menu-vertical a { 790 /* This overrides 8px margin added in other multi-selector rules */ 791 margin-right: 0; 792} 793 794/* Banner panel in sidebar */ 795.wy-nav-side .ethical-rtd.fixed { 796 position: fixed; 797} 798 799/* Version selector (only visible on Read the Docs) */ 800 801.rst-versions { 802 background-color: var(--navbar-current-background-color); 803} 804 805.rst-versions a, 806.rst-versions .rst-current-version, 807.rst-versions .rst-current-version .fa, 808.rst-versions .rst-other-versions dd a { 809 color: var(--navbar-level-1-color); 810} 811 812.rst-versions .rst-other-versions small { 813 color: var(--navbar-level-3-color); 814} 815 816.rst-versions .rst-other-versions dd a:hover { 817 text-decoration: underline; 818} 819 820.rst-versions .rst-other-versions { 821 color: var(--navbar-heading-color); 822} 823 824.rst-versions .rst-current-version { 825 background-color: var(--navbar-current-background-color); 826} 827 828.rst-versions .rst-current-version:hover { 829 background-color: var(--navbar-current-background-color-hover); 830} 831 832.rst-versions .rst-current-version:active { 833 background-color: var(--navbar-current-background-color-active); 834} 835 836.rst-versions.shift-up { 837 overflow-y: auto; 838} 839 840/* Hide the obnoxious automatic highlight in search results */ 841.rst-content .highlighted { 842 background-color: transparent; 843 font-weight: inherit; 844 padding: 0; 845} 846 847/* Allows the scrollbar to be shown in the sidebar */ 848@media only screen and (min-width: 769px) { 849 .wy-side-scroll { 850 overflow: hidden; 851 } 852 853 .wy-nav-side .wy-side-scroll .ethical-rtd { 854 width: calc(300px - 1.25em); 855 padding: 0 0 0 1em; 856 } 857} 858.wy-menu.wy-menu-vertical { 859 overflow-y: auto; 860 overflow-x: hidden; 861 max-height: calc(100% - 243px); 862} 863@media screen and (max-width: 768px) { 864 .wy-nav-side { 865 padding-bottom: 44px; 866 } 867 .wy-menu.wy-menu-vertical { 868 overflow-y: initial; 869 max-height: initial; 870 } 871 .wy-nav-content { 872 min-height: calc(100vh - 64px); 873 min-height: calc(100dvh - 64px); 874 } 875} 876 877/* Scrollbar styling */ 878.wy-menu.wy-menu-vertical { 879 scrollbar-color: var(--navbar-scrollbar-color) var(--navbar-scrollbar-background); 880} 881.wy-menu.wy-menu-vertical::-webkit-scrollbar { 882 width: .75rem; 883} 884.wy-menu.wy-menu-vertical::-webkit-scrollbar-track { 885 background-color: var(--navbar-scrollbar-background); 886} 887.wy-menu.wy-menu-vertical::-webkit-scrollbar-thumb { 888 background-color: var(--navbar-scrollbar-color); 889} 890/* Firefox does the dimming on hover automatically. We emulate it for Webkit-based browsers. */ 891.wy-menu.wy-menu-vertical::-webkit-scrollbar-thumb:hover { 892 background-color: var(--navbar-scrollbar-hover-color); 893} 894.wy-menu.wy-menu-vertical::-webkit-scrollbar-thumb:active { 895 background-color: var(--navbar-scrollbar-active-color); 896} 897 898/* Misc tweaks */ 899 900.rst-columns { 901 column-width: 18em; 902} 903 904.rst-content div.figure, .rst-content figure { 905 text-align: center; 906} 907 908.wy-alert.wy-alert-danger { 909 background-color: var(--admonition-danger-background-color); 910} 911 912 913dark-mode-toggle::part(fieldset) { 914 padding-inline: 0.75rem; 915 padding-block: 0; 916} 917 918dark-mode-toggle::part(darkLabel), 919dark-mode-toggle::part(lightLabel), 920dark-mode-toggle::part(toggleLabel){ 921 font-size: unset; 922} 923 924/* Home page grid display */ 925.grid { 926 list-style-type: none !important; 927 display: -webkit-box; 928 display: -ms-flexbox; 929 display: flex; 930 -ms-flex-wrap: wrap; 931 flex-wrap: wrap; 932 -webkit-box-pack: center; 933 -ms-flex-pack: center; 934 justify-content: center; 935 margin: 1rem auto; 936 max-width: calc((160px + 2rem) * 4); 937} 938 939.grid-item { 940 list-style-type: none !important; 941 -webkit-box-flex: 0; 942 -ms-flex: 0 0 auto; 943 flex: 0 0 auto; 944 width: 150px; 945 text-align: center; 946 margin: 1rem; 947} 948 949.grid-item a { 950 display: block; 951 width: 150px; 952 height: 150px; 953 padding: 20px; 954 display: -webkit-box; 955 display: -ms-flexbox; 956 display: flex; 957 -webkit-box-orient: vertical; 958 -webkit-box-direction: normal; 959 -ms-flex-direction: column; 960 flex-direction: column; 961 -webkit-box-pack: center; 962 -ms-flex-pack: center; 963 justify-content: center; 964 -webkit-box-align: center; 965 -ms-flex-align: center; 966 align-items: center; 967 border-radius: 1rem; 968 background: linear-gradient(135deg, #0070c5 0%, #5c13a5 100%); 969 color: white; 970} 971 972.grid-item h2 { 973 font-size: 1rem; 974} 975 976.grid-item img { 977 margin-bottom: 1rem; 978 max-width: 75%; 979} 980 981.grid-item a:hover { 982 text-decoration: none; 983} 984 985.grid-item p { 986 font-size: 0.9rem; 987 margin-top: 0.5rem; 988 color: var(--body-color); 989 font-weight: 200; 990 margin-left: -0.9em; 991 margin-right: -0.9em; 992 line-height: 1.4rem; 993} 994 995.grid-icon { 996 line-height: 1.5; 997 font-size: 3rem; 998 color: white; 999} 1000 1001.lastupdated { 1002 font-weight: 200; 1003 font-size: 0.9rem; 1004} 1005 1006/* Make actual document take all vertical space available so that footer is always at the bottom */ 1007 1008.rst-content { 1009 flex: 1; 1010 display: flex; 1011 flex-direction: column; 1012 width: 100%; 1013} 1014 1015.document { 1016 flex-grow: 1; 1017} 1018 1019/* Custom search box, including search engine selection */ 1020 1021.search-container { 1022 position: relative; 1023} 1024 1025#search-se-settings-icon { 1026 position: absolute; 1027 color: var(--body-color); 1028 right: 10px; 1029 top: 50%; 1030 transform: translateY(-50%); 1031 cursor: pointer; 1032 opacity: 0.8; 1033} 1034 1035#search-se-menu { 1036 display: none; 1037 position: absolute; 1038 font-size: 11px; 1039 background-color: var(--input-background-color); 1040 color: var(--body-color); 1041 right: 0px; 1042 top: 36px; 1043 border: solid 1px var(--body-color); 1044 border-radius: 10px; 1045 z-index: 1000; 1046} 1047 1048#search-se-menu ul { 1049 list-style: none; 1050 margin: 0; 1051 padding: 2px; 1052} 1053 1054#search-se-menu ul li { 1055 padding: 8px 12px; 1056 cursor: pointer; 1057 display: flex; 1058 justify-content: space-between; 1059 align-items: center; 1060 gap: 1em; 1061} 1062 1063#search-se-menu [role="menuitemradio"]:focus { 1064 background-color: var(--navbar-current-background-color-hover); 1065 color: var(--navbar-level-1-color); 1066 border-radius: 10px; 1067} 1068 1069#search-se-menu ul li .fa-check { 1070 display: none; 1071 } 1072 1073 #search-se-menu ul li.selected .fa-check { 1074 display: inline; 1075 } 1076 1077.doxygroup::after { 1078 content: 'Doxygen'; 1079 display: inline-block; 1080 background-color: var(--admonition-note-title-background-color); 1081 color: var(--admonition-note-title-color); 1082 padding: 2px 8px; 1083 border-radius: 12px; 1084 margin-left: 8px; 1085 font-size: 0.875em; 1086 font-weight: bold; 1087} 1088 1089.code-sample-list li { 1090 margin-bottom: 0.25em; 1091} 1092.code-sample-name { 1093 font-weight: bold; 1094 padding-right: 0.5em; 1095} 1096 1097.code-sample-description { 1098 font-weight: 300; 1099} 1100 1101.code-sample-description::before { 1102 content: '\F0A9'; /* arrow-circle-right */ 1103 font-family: 'FontAwesome'; 1104 padding-right: 0.5em; 1105} 1106 1107li>a.code-sample-link.reference.internal { 1108 font-weight: 100; 1109} 1110 1111li>a.code-sample-link.reference.internal.current { 1112 text-decoration: underline; 1113} 1114 1115/* Board overview "card" on board documentation pages */ 1116.sidebar.board-overview { 1117 border-radius: 12px; 1118 padding: 0px; 1119 background: var(--admonition-note-background-color); 1120 color: var(--admonition-note-title-color); 1121 border-color: var(--admonition-note-title-background-color); 1122} 1123 1124@media screen and (max-width: 480px) { 1125 .sidebar.board-overview { 1126 float: none; 1127 margin-left: 0; 1128 } 1129} 1130 1131.sidebar.board-overview .sidebar-title { 1132 font-family: var(--header-font-family); 1133 background: var(--admonition-note-title-background-color); 1134 color: var(--admonition-note-title-color); 1135 border-radius: 12px 12px 0px 0px; 1136 margin: 0px; 1137 text-align: center; 1138} 1139 1140.sidebar.board-overview * { 1141 color: var(--admonition-note-color); 1142} 1143 1144.sidebar.board-overview figure { 1145 padding: 1rem; 1146 margin-bottom: -1rem; 1147} 1148 1149.sidebar.board-overview figure img { 1150 height: auto !important; 1151} 1152 1153.sidebar.board-overview figure figcaption p { 1154 margin-bottom: 0px; 1155} 1156 1157.sidebar.board-overview dl.field-list { 1158 align-items: center; 1159 margin-top: 12px !important; 1160 margin-bottom: 12px !important; 1161 grid-template-columns: auto 1fr !important; 1162 padding-right: 1em; 1163} 1164 1165.sidebar.board-overview dl.field-list > dt { 1166 background: transparent !important; 1167} 1168 1169.sidebar.board-overview dl.field-list>dd { 1170 margin-left: 1em; 1171 text-overflow: ellipsis; 1172 overflow: hidden; 1173} 1174 1175.sidebar.board-overview dl.field-list>dd code { 1176 font-size: 0.9em; 1177} 1178