custom.css 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958
  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. body,
  10. h1,
  11. h2,
  12. h3,
  13. h4,
  14. h5,
  15. h6,
  16. input[type="text"],
  17. input[type="button"],
  18. input[type="reset"],
  19. input[type="submit"],
  20. textarea,
  21. legend,
  22. .btn,
  23. .rst-content .toctree-wrapper p.caption,
  24. .rst-versions {
  25. /* Use a system font stack for better performance (no Web fonts required) */
  26. 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";
  27. }
  28. h1,
  29. h2,
  30. h3,
  31. h4,
  32. h5,
  33. h6,
  34. legend,
  35. .rst-content .toctree-wrapper p.caption {
  36. /* Use a lighter font for headers (Medium instead of Bold) */
  37. font-weight: 500;
  38. }
  39. .rst-content div.figure p.caption {
  40. /* Tweak caption styling to be closer to typical captions */
  41. text-align: center;
  42. margin-top: 8px;
  43. opacity: 0.75;
  44. }
  45. .rst-content div.figure.figure-w480 {
  46. max-width: 480px;
  47. }
  48. p,
  49. article ul,
  50. article ol,
  51. .wy-plain-list-disc,
  52. .wy-plain-list-decimal,
  53. .rst-content ol.arabic,
  54. .rst-content .section ul,
  55. .rst-content .toctree-wrapper ul,
  56. .rst-content .section ol {
  57. /* Increase the line height slightly to account for the different font */
  58. line-height: 25px;
  59. }
  60. body,
  61. .rst-content table.docutils thead {
  62. color: var(--body-color);
  63. }
  64. a {
  65. color: var(--link-color);
  66. }
  67. a:hover {
  68. color: var(--link-color-hover);
  69. text-decoration: underline;
  70. }
  71. a:active {
  72. /* Add visual feedback when clicking on a link */
  73. color: var(--link-color-active);
  74. }
  75. a:visited {
  76. color: var(--link-color-visited);
  77. }
  78. a.btn:hover {
  79. text-decoration: none;
  80. }
  81. .sphinx-tabs .sphinx-menu a.item {
  82. /* Original definition has `!important` */
  83. color: var(--link-color) !important;
  84. }
  85. .rst-content .toc-backref {
  86. color: var(--link-color);
  87. }
  88. /* Style external links differently to make them easier to distinguish from internal links. */
  89. .reference.external {
  90. background-position: center right;
  91. background-repeat: no-repeat;
  92. background-image: var(--external-reference-icon);
  93. padding-right: 13px;
  94. }
  95. hr,
  96. #search-results .search li:first-child,
  97. #search-results .search li {
  98. border-color: var(--hr-color);
  99. }
  100. /* JavaScript documentation directives */
  101. .rst-content dl:not(.docutils) dt {
  102. background-color: var(--admonition-note-background-color) !important;
  103. border-color: var(--admonition-note-title-background-color) !important;
  104. color: var(--admonition-note-color) !important;
  105. }
  106. .rst-content dl:not(.docutils) dl dt {
  107. background-color: var(--admonition-attention-background-color) !important;
  108. border-color: var(--admonition-attention-title-background-color) !important;
  109. color: var(--admonition-attention-color) !important;
  110. }
  111. .rst-content dt.sig .k {
  112. color: var(--highlight-keyword2-color) !important;
  113. font-style: normal !important;
  114. }
  115. .rst-content dt.sig .kt {
  116. color: var(--highlight-keyword-color) !important;
  117. font-style: normal !important;
  118. }
  119. .rst-content dt.sig .sig-name .n {
  120. color: var(--highlight-function-color) !important;
  121. }
  122. .rst-content dt.sig .k,
  123. .rst-content dt.sig .kt,
  124. .rst-content dt.sig .n {
  125. font-weight: normal !important;
  126. }
  127. .rst-content dl:not(.docutils) dt a.headerlink {
  128. color: var(--link-color) !important;
  129. }
  130. .rst-content dl:not(.docutils) dt a.headerlink:visited {
  131. color: var(--link-color-visited) !important;
  132. }
  133. footer,
  134. #search-results .context {
  135. color: var(--footer-color);
  136. }
  137. /* Icon tweaks */
  138. a.icon-home,
  139. a.icon-home:visited {
  140. color: var(--navbar-level-1-color);
  141. }
  142. /* Sphinx Search extension */
  143. /* .wy-body-for-nav is used for higher rule specificity */
  144. /* Search popup body */
  145. .wy-body-for-nav .search__outer {
  146. background-color: var(--content-background-color);
  147. border: 2px solid var(--content-background-color);
  148. }
  149. .wy-body-for-nav .search__cross svg {
  150. fill: var(--body-color);
  151. }
  152. .wy-body-for-nav .search__outer::-webkit-scrollbar-track {
  153. border-radius: 10px;
  154. background-color: var(--content-background-color);
  155. }
  156. .wy-body-for-nav .search__outer::-webkit-scrollbar {
  157. width: 7px;
  158. height: 7px;
  159. background-color: var(--content-background-color);
  160. }
  161. .wy-body-for-nav .search__outer::-webkit-scrollbar-thumb {
  162. border-radius: 10px;
  163. background-color: var(--hr-color);
  164. }
  165. /* Search input */
  166. .wy-body-for-nav .search__outer__input {
  167. background-color: var(--search-input-background-color);
  168. background-image: none;
  169. border-radius: 50px;
  170. border: 2px solid transparent;
  171. color: var(--body-color);
  172. height: 36px;
  173. padding: 6px 12px;
  174. }
  175. .wy-body-for-nav .search__outer__input:focus {
  176. border-color: var(--input-focus-border-color);
  177. }
  178. .wy-body-for-nav .search__outer .bar:after,
  179. .wy-body-for-nav .search__outer .bar:before {
  180. display: none;
  181. }
  182. /* Search results item */
  183. .wy-body-for-nav .search__result__single {
  184. border-bottom-color: var(--hr-color);
  185. }
  186. /* Search item title */
  187. .wy-body-for-nav .search__result__title {
  188. color: var(--link-color);
  189. border-bottom: none;
  190. font-size: 120%;
  191. font-weight: 400;
  192. }
  193. /* Search item section */
  194. .wy-body-for-nav .outer_div_page_results:hover,
  195. .wy-body-for-nav .search__result__box .active {
  196. background-color: var(--search-active-color);
  197. }
  198. .wy-body-for-nav .search__result__subheading{
  199. color: var(--body-color);
  200. font-size: 100%;
  201. font-weight: 400;
  202. }
  203. .wy-body-for-nav .search__result__content {
  204. color: var(--footer-color);
  205. }
  206. /* Search item matching substring */
  207. .wy-body-for-nav .search__outer .search__result__title span,
  208. .wy-body-for-nav .search__outer .search__result__content span {
  209. color: var(--search-match-color);
  210. border-bottom: 1px solid var(--search-match-color);
  211. background-color: var(--search-match-background-color);
  212. padding: 0 2px;
  213. }
  214. .wy-body-for-nav .search__result__subheading span {
  215. border-bottom-color: var(--body-color);
  216. }
  217. /* Search empty results */
  218. /* The original styles are inlined, see https://github.com/readthedocs/readthedocs-sphinx-search/issues/48 */
  219. .wy-body-for-nav .search__result__box {
  220. color: var(--body-color) !important;
  221. }
  222. /* Search footer & credits */
  223. .wy-body-for-nav .rtd__search__credits {
  224. background-color: var(--search-credits-background-color);
  225. border-color: var(--search-credits-background-color);
  226. color: var(--search-credits-color);
  227. padding: 4px 8px;
  228. }
  229. .wy-body-for-nav .rtd__search__credits a {
  230. color: var(--search-credits-link-color);
  231. }
  232. /* Main sections */
  233. .wy-nav-content-wrap {
  234. background-color: var(--content-wrap-background-color);
  235. }
  236. .wy-nav-content {
  237. background-color: var(--content-background-color);
  238. }
  239. .wy-body-for-nav {
  240. background-color: var(--content-wrap-background-color);
  241. }
  242. @media only screen and (min-width: 769px) {
  243. .wy-nav-content {
  244. max-width: 915px;
  245. }
  246. }
  247. /* Table display tweaks */
  248. .rst-content table.docutils,
  249. .wy-table-bordered-all td,
  250. .rst-content table.docutils td,
  251. .wy-table thead th,
  252. .rst-content table.docutils thead th,
  253. .rst-content table.field-list thead th {
  254. border-color: var(--code-border-color);
  255. }
  256. .wy-table-odd td,
  257. .wy-table-striped tr:nth-child(2n-1) td,
  258. .rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td {
  259. background-color: var(--table-row-odd-background-color);
  260. }
  261. /* Override table no-wrap */
  262. /* The first column cells are not verbose, no need to wrap them */
  263. .wy-table-responsive table td:not(:nth-child(1)),
  264. .wy-table-responsive table th:not(:nth-child(1)) {
  265. white-space: normal;
  266. }
  267. /* Make sure not to wrap keyboard shortcuts */
  268. .wy-table-responsive table td kbd {
  269. white-space: nowrap;
  270. }
  271. /* Force table content font-size in responsive tables to be 100%
  272. * fixing larger font size for paragraphs in the kconfig tables */
  273. .wy-table-responsive td p {
  274. font-size: 100%;
  275. }
  276. /* Code display tweaks */
  277. code,
  278. .rst-content tt,
  279. .rst-content code {
  280. font-size: 14px;
  281. background-color: var(--code-background-color);
  282. border: 1px solid var(--code-border-color);
  283. }
  284. .rst-content tt.literal,
  285. .rst-content code.literal {
  286. color: var(--code-literal-color);
  287. }
  288. .rst-content div[class^="highlight"] {
  289. border-color: none;
  290. border: none;
  291. }
  292. .rst-content pre.literal-block,
  293. .rst-content div[class^="highlight"] pre,
  294. .rst-content .linenodiv pre {
  295. /* Increase the font size and line height in code blocks */
  296. font-size: 14px;
  297. line-height: 1.5;
  298. }
  299. .rst-content pre.literal-block {
  300. border: none;
  301. border-radius: 0.25rem;
  302. background-color: var(--code-background-color);
  303. }
  304. /* Code tab display tweaks */
  305. .ui.tabular.menu .active.item,
  306. .ui.segment,
  307. .sphinx-tabs-panel {
  308. background-color: var(--code-background-color) !important;
  309. }
  310. .sphinx-tabs-tab {
  311. color: var(--link-color) !important;
  312. }
  313. .sphinx-tabs-tab[aria-selected="true"] {
  314. background-color: var(--code-background-color) !important;
  315. border-bottom: 1px solid var(--code-background-color) !important;
  316. }
  317. /* Code literals */
  318. a.internal code.literal {
  319. color: var(--link-color);
  320. }
  321. a.internal:visited code.literal {
  322. color: var(--link-color-visited);
  323. }
  324. /* Syntax highlighting */
  325. .tab div[class^='highlight']:last-child {
  326. margin-bottom: 1em;
  327. }
  328. .rst-content tt.literal, .rst-content code.literal, .highlight {
  329. border-radius: 0.25rem;
  330. }
  331. .highlight {
  332. background-color: var(--highlight-background-color);
  333. }
  334. /* Emphasized lines */
  335. .highlight .hll {
  336. background-color: var(--highlight-background-emph-color);
  337. }
  338. .highlight .gh /* Generic.Heading */,
  339. .highlight .gu /* Generic.Subheading */,
  340. .highlight .go /* Generic.Output */,
  341. .highlight .gt /* Generic.Traceback */ {
  342. color: var(--highlight-default-color);
  343. }
  344. .highlight .c /* Comment */,
  345. .highlight .c1 /* Comment.Single */,
  346. .highlight .cm /* Comment.Multiline */,
  347. .highlight .cs /* Comment.Special */ {
  348. color: var(--highlight-comment-color);
  349. }
  350. .highlight .bp /* Name.Builtin.Pseudo */,
  351. .highlight .k /* Keyword */,
  352. .highlight .kc /* Keyword.Constant */,
  353. .highlight .kd /* Keyword.Declaration */,
  354. .highlight .kn /* Keyword.Namespace */,
  355. .highlight .kp /* Keyword.Pseudo */,
  356. .highlight .kr /* Keyword.Reserved */,
  357. .highlight .kt /* Keyword.Type */,
  358. .highlight .ow /* Operator.Word */ {
  359. color: var(--highlight-keyword-color);
  360. }
  361. .highlight .ch /* Comment.Hashbang */,
  362. .highlight .cp /* Comment.Preproc */ {
  363. color: var(--highlight-keyword2-color);
  364. }
  365. .highlight .m /* Literal.Number */,
  366. .highlight .mf /* Literal.Number.Float */,
  367. .highlight .mi /* Literal.Number.Integer */,
  368. .highlight .il /* Literal.Number.Integer.Long */,
  369. .highlight .mb /* Literal.Number.Bin */,
  370. .highlight .mh /* Literal.Number.Hex */,
  371. .highlight .mo /* Literal.Number.Oct */ {
  372. color: var(--highlight-number-color);
  373. }
  374. .highlight .na /* Name.Attribute */,
  375. .highlight .nd /* Name.Decorator */,
  376. .highlight .ni /* Name.Entity */,
  377. .highlight .nl /* Name.Label */ {
  378. color: var(--highlight-decorator-color);
  379. }
  380. .highlight .nb /* Name.Builtin */,
  381. .highlight .ne /* Name.Exception */ {
  382. color: var(--highlight-type-color);
  383. }
  384. .highlight .nc /* Name.Class */,
  385. .highlight .nn /* Name.Namespace */,
  386. .highlight .no /* Name.Constant */,
  387. .highlight .nv /* Name.Variable */,
  388. .highlight .vc /* Name.Variable.Class */,
  389. .highlight .vg /* Name.Variable.Global */,
  390. .highlight .vi /* Name.Variable.Instance */,
  391. .highlight .vm /* Name.Variable.Magic */ {
  392. color: var(--highlight-type2-color);
  393. }
  394. .highlight .nf /* Name.Function */,
  395. .highlight .fm /* Name.Function.Magic */,
  396. .highlight .nt /* Name.Tag */ {
  397. color: var(--highlight-function-color);
  398. }
  399. .highlight .o /* Operator */,
  400. .highlight .si /* Literal.String.Interpol */,
  401. .highlight .sx /* Literal.String.Other */,
  402. .highlight .sr /* Literal.String.Regex */,
  403. .highlight .ss /* Literal.String.Symbol */ {
  404. color: var(--highlight-operator-color);
  405. }
  406. .highlight .cpf/* Comment.PreprocFile */,
  407. .highlight .s /* Literal.String */,
  408. .highlight .s1 /* Literal.String.Single */,
  409. .highlight .s2 /* Literal.String.Double */,
  410. .highlight .sc /* Literal.String.Char */,
  411. .highlight .se /* Literal.String.Escape */,
  412. .highlight .sa /* Literal.String.Affix */,
  413. .highlight .sb /* Literal.String.Backtick */,
  414. .highlight .dl /* Literal.String.Delimiter */,
  415. .highlight .sd /* Literal.String.Doc */,
  416. .highlight .sh /* Literal.String.Heredoc */ {
  417. color: var(--highlight-string-color);
  418. }
  419. /* Admonition tweaks */
  420. .rst-content .admonition,
  421. .rst-content .admonition.note,
  422. .rst-content .admonition.seealso {
  423. background-color: var(--admonition-note-background-color);
  424. color: var(--admonition-note-color);
  425. overflow: auto;
  426. }
  427. .rst-content .admonition .admonition-title,
  428. .rst-content .admonition.note .admonition-title,
  429. .rst-content .admonition.seealso .admonition-title {
  430. background-color: var(--admonition-note-title-background-color);
  431. color: var(--admonition-note-title-color);
  432. }
  433. .rst-content .admonition.attention,
  434. .rst-content .admonition.caution,
  435. .rst-content .admonition.warning {
  436. background-color: var(--admonition-attention-background-color);
  437. color: var(--admonition-attention-color);
  438. overflow: auto;
  439. }
  440. .rst-content .admonition.attention .admonition-title,
  441. .rst-content .admonition.caution .admonition-title,
  442. .rst-content .admonition.warning .admonition-title {
  443. background-color: var(--admonition-attention-title-background-color);
  444. color: var(--admonition-attention-title-color);
  445. }
  446. .rst-content .admonition.danger {
  447. background-color: var(--admonition-danger-background-color);
  448. color: var(--admonition-danger-color);
  449. overflow: auto;
  450. }
  451. .rst-content .admonition.danger .admonition-title {
  452. background-color: var(--admonition-danger-title-background-color);
  453. color: var(--admonition-danger-title-color);
  454. }
  455. .rst-content .admonition.tip,
  456. .rst-content .admonition.important {
  457. background-color: var(--admonition-tip-background-color);
  458. color: var(--admonition-tip-color);
  459. overflow: auto;
  460. }
  461. .rst-content .admonition.tip .admonition-title,
  462. .rst-content .admonition.important .admonition-title {
  463. background-color: var(--admonition-tip-title-background-color);
  464. color: var(--admonition-tip-title-color);
  465. }
  466. /* Keyboard shortcuts tweaks */
  467. kbd, .kbd {
  468. background-color: var(--kbd-background-color);
  469. border: 1px solid var(--kbd-outline-color);
  470. border-radius: 3px;
  471. box-shadow: inset 0 -1px 0 var(--kbd-shadow-color);
  472. color: var(--kbd-text-color);
  473. display: inline-block;
  474. font-size: 12px;
  475. line-height: 11px;
  476. padding: 4px 5px;
  477. vertical-align: middle;
  478. }
  479. /* Buttons */
  480. .btn-neutral {
  481. background-color: var(--btn-neutral-background-color) !important;
  482. color: var(--body-color) !important;
  483. }
  484. .btn-neutral:hover {
  485. background-color: var(--btn-neutral-hover-background-color) !important;
  486. }
  487. .btn-neutral:visited {
  488. color: var(--body-color) !important;
  489. }
  490. /* Navigation bar logo and search */
  491. .logo {
  492. opacity: var(--logo-opacity);
  493. }
  494. .wy-side-nav-search > a img.logo {
  495. /* Fixed size to prevent reflows and support hiDPI displays */
  496. /* A 5 pixel margin is added on each side. The logo itself displays at 200×100 at 100% scaling. */
  497. width: 210px;
  498. height: 105px;
  499. }
  500. .wy-side-nav-search {
  501. background-color: var(--navbar-background-color);
  502. }
  503. .wy-side-nav-search.fixed {
  504. position: fixed;
  505. }
  506. @media only screen and (min-width: 769px) {
  507. /* Simulate a drop shadow that only affects the bottom edge */
  508. /* This is used to indicate the search bar is fixed */
  509. .wy-side-nav-search.fixed-and-scrolled::after {
  510. content: '';
  511. position: absolute;
  512. left: 0;
  513. bottom: -8px;
  514. width: 300px;
  515. height: 8px;
  516. pointer-events: none;
  517. background: linear-gradient(hsla(0, 0%, 0%, 0.2), transparent);
  518. }
  519. }
  520. .wy-side-nav-search > a:hover,
  521. .wy-side-nav-search .wy-dropdown > a:hover {
  522. background-color: var(--navbar-background-color-hover);
  523. }
  524. .wy-side-nav-search > a:active,
  525. .wy-side-nav-search .wy-dropdown > a:active {
  526. background-color: var(--navbar-background-color-active);
  527. }
  528. .wy-side-nav-search input[type="text"] {
  529. background-color: var(--input-background-color);
  530. color: var(--body-color);
  531. /* Avoid reflowing when toggling the focus state */
  532. border: 2px solid transparent;
  533. box-shadow: none;
  534. /* Make visual feedback instant */
  535. transition: none;
  536. font-size: 14px;
  537. }
  538. .wy-side-nav-search input[type="text"]:focus {
  539. border: 2px solid var(--input-focus-border-color);
  540. }
  541. .wy-side-nav-search input[type="text"]::placeholder {
  542. color: var(--body-color);
  543. opacity: 0.55;
  544. }
  545. /* Navigation bar */
  546. .wy-nav-side {
  547. background-color: var(--navbar-background-color);
  548. }
  549. .wy-menu-vertical header,
  550. .wy-menu-vertical p.caption {
  551. color: var(--navbar-heading-color);
  552. /* Improves the appearance of uppercase text */
  553. letter-spacing: 0.75px;
  554. }
  555. /* Mobile navigation */
  556. .wy-nav-top,
  557. .wy-nav-top a {
  558. background-color: var(--navbar-background-color);
  559. color: var(--navbar-level-1-color);
  560. }
  561. /* Version branch label below the logo */
  562. .wy-side-nav-search > div.version {
  563. color: var(--navbar-level-3-color);
  564. opacity: 0.9;
  565. }
  566. /* First level of navigation items */
  567. .wy-menu-vertical a {
  568. color: var(--navbar-level-1-color);
  569. }
  570. .wy-menu-vertical a:hover {
  571. background-color: var(--navbar-background-color-hover);
  572. color: var(--navbar-level-1-color);
  573. }
  574. .wy-menu-vertical a:active {
  575. background-color: var(--navbar-background-color-active);
  576. }
  577. .wy-menu-vertical li.toctree-l1.current > a {
  578. border: none;
  579. }
  580. .wy-side-nav-search, .wy-menu-vertical a, .wy-menu-vertical a span.toctree-expand,
  581. .wy-menu-vertical li.toctree-l2 a span.toctree-expand {
  582. color: var(--navbar-level-3-color);
  583. opacity: 0.9;
  584. margin-right: 8px;
  585. }
  586. .wy-side-nav-search, .wy-menu-vertical a, .wy-menu-vertical a:hover span.toctree-expand,
  587. .wy-menu-vertical li.toctree-l2 a:hover span.toctree-expand {
  588. color: var(--navbar-level-2-color);
  589. opacity: 1;
  590. }
  591. .wy-side-nav-search, .wy-menu-vertical a, .wy-menu-vertical a:active span.toctree-expand,
  592. .wy-menu-vertical li.toctree-l2 a:active span.toctree-expand {
  593. color: var(--navbar-level-1-color);
  594. opacity: 1;
  595. }
  596. /* Second (and higher) levels of navigation items */
  597. .wy-menu-vertical li.current a {
  598. /* Make long words always display on a single line, keep wrapping for multiple words */
  599. /* This fixes the class reference titles' display with very long class names */
  600. display: flex;
  601. }
  602. .wy-menu-vertical li.current a,
  603. .wy-menu-vertical li.toctree-l2.current > a,
  604. .wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a,
  605. .wy-menu-vertical li.toctree-l2.current li.toctree-l4 > a {
  606. background-color: var(--navbar-current-background-color);
  607. color: var(--navbar-level-2-color);
  608. border-color: var(--navbar-current-background-color);
  609. }
  610. .wy-menu-vertical li.current a:hover,
  611. .wy-menu-vertical li.toctree-l2.current > a:hover,
  612. .wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a:hover,
  613. .wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a:hover {
  614. background-color: var(--navbar-current-background-color-hover);
  615. }
  616. .wy-menu-vertical li.current a:active,
  617. .wy-menu-vertical li.toctree-l2.current > a:active,
  618. .wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a:active,
  619. .wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a:active {
  620. background-color: var(--navbar-current-background-color-active);
  621. }
  622. .wy-menu-vertical a {
  623. /* This overrides 8px margin added in other multi-selector rules */
  624. margin-right: 0;
  625. }
  626. /* Banner panel in sidebar */
  627. .wy-nav-side .ethical-rtd.fixed {
  628. position: fixed;
  629. }
  630. /* Version selector (only visible on Read the Docs) */
  631. .rst-versions {
  632. background-color: var(--navbar-current-background-color);
  633. }
  634. .rst-versions a,
  635. .rst-versions .rst-current-version,
  636. .rst-versions .rst-current-version .fa,
  637. .rst-versions .rst-other-versions dd a {
  638. color: var(--navbar-level-1-color);
  639. }
  640. .rst-versions .rst-other-versions small {
  641. color: var(--navbar-level-3-color);
  642. }
  643. .rst-versions .rst-other-versions dd a:hover {
  644. text-decoration: underline;
  645. }
  646. .rst-versions .rst-other-versions {
  647. color: var(--navbar-heading-color);
  648. }
  649. .rst-versions .rst-current-version {
  650. background-color: var(--navbar-current-background-color);
  651. }
  652. .rst-versions .rst-current-version:hover {
  653. background-color: var(--navbar-current-background-color-hover);
  654. }
  655. .rst-versions .rst-current-version:active {
  656. background-color: var(--navbar-current-background-color-active);
  657. }
  658. .rst-versions.shift-up {
  659. overflow-y: auto;
  660. }
  661. /* Hide the obnoxious automatic highlight in search results */
  662. .rst-content .highlighted {
  663. background-color: transparent;
  664. font-weight: inherit;
  665. padding: 0;
  666. }
  667. /* Allows the scrollbar to be shown in the sidebar */
  668. @media only screen and (min-width: 769px) {
  669. .wy-side-scroll {
  670. overflow: hidden;
  671. }
  672. .wy-nav-side .wy-side-scroll .ethical-rtd {
  673. width: calc(300px - 1.25em);
  674. padding: 0 0 0 1em;
  675. }
  676. }
  677. .wy-menu.wy-menu-vertical {
  678. overflow-y: auto;
  679. overflow-x: hidden;
  680. max-height: calc(100% - 243px);
  681. }
  682. @media screen and (max-width: 768px) {
  683. .wy-nav-side {
  684. padding-bottom: 44px;
  685. }
  686. .wy-menu.wy-menu-vertical {
  687. overflow-y: initial;
  688. max-height: initial;
  689. }
  690. }
  691. /* Scrollbar styling */
  692. .wy-menu.wy-menu-vertical {
  693. scrollbar-color: var(--navbar-scrollbar-color) var(--navbar-scrollbar-background);
  694. }
  695. .wy-menu.wy-menu-vertical::-webkit-scrollbar {
  696. width: .75rem;
  697. }
  698. .wy-menu.wy-menu-vertical::-webkit-scrollbar-track {
  699. background-color: var(--navbar-scrollbar-background);
  700. }
  701. .wy-menu.wy-menu-vertical::-webkit-scrollbar-thumb {
  702. background-color: var(--navbar-scrollbar-color);
  703. }
  704. /* Firefox does the dimming on hover automatically. We emulate it for Webkit-based browsers. */
  705. .wy-menu.wy-menu-vertical::-webkit-scrollbar-thumb:hover {
  706. background-color: var(--navbar-scrollbar-hover-color);
  707. }
  708. .wy-menu.wy-menu-vertical::-webkit-scrollbar-thumb:active {
  709. background-color: var(--navbar-scrollbar-active-color);
  710. }
  711. /* Breathe tweaks */
  712. .rst-content .section > dl > dd {
  713. margin-left: 0;
  714. }
  715. .rst-content p.breathe-sectiondef-title {
  716. font-size: 115%;
  717. color: var(--link-color);
  718. }
  719. .rst-content dl:not(.docutils) dl:not(.rst-other-versions) dt {
  720. background: var(--admonition-note-background-color) !important;
  721. border-top: none !important;
  722. border-left: none !important;
  723. }
  724. /* Misc tweaks */
  725. .rst-columns {
  726. column-width: 18em;
  727. }
  728. .rst-content div.figure, .rst-content figure {
  729. text-align: center;
  730. }
  731. .wy-alert.wy-alert-danger {
  732. background-color: var(--admonition-danger-background-color);
  733. }
  734. dark-mode-toggle::part(fieldset) {
  735. padding-inline: 0.75rem;
  736. padding-block: 0;
  737. }
  738. dark-mode-toggle::part(darkLabel),
  739. dark-mode-toggle::part(lightLabel),
  740. dark-mode-toggle::part(toggleLabel){
  741. font-size: unset;
  742. }
  743. /* Home page grid display */
  744. .grid {
  745. list-style-type: none !important;
  746. display: -webkit-box;
  747. display: -ms-flexbox;
  748. display: flex;
  749. -ms-flex-wrap: wrap;
  750. flex-wrap: wrap;
  751. -webkit-box-pack: center;
  752. -ms-flex-pack: center;
  753. justify-content: center;
  754. margin: 1rem auto;
  755. max-width: calc((160px + 2rem) * 4);
  756. }
  757. .grid-item {
  758. list-style-type: none !important;
  759. -webkit-box-flex: 0;
  760. -ms-flex: 0 0 auto;
  761. flex: 0 0 auto;
  762. width: 150px;
  763. text-align: center;
  764. margin: 1rem;
  765. }
  766. .grid-item a {
  767. display: block;
  768. width: 150px;
  769. height: 150px;
  770. padding: 20px;
  771. display: -webkit-box;
  772. display: -ms-flexbox;
  773. display: flex;
  774. -webkit-box-orient: vertical;
  775. -webkit-box-direction: normal;
  776. -ms-flex-direction: column;
  777. flex-direction: column;
  778. -webkit-box-pack: center;
  779. -ms-flex-pack: center;
  780. justify-content: center;
  781. -webkit-box-align: center;
  782. -ms-flex-align: center;
  783. align-items: center;
  784. border-radius: 0.5rem;
  785. background: linear-gradient(135deg, #0070c5 0%, #5c13a5 100%);
  786. color: white;
  787. }
  788. .grid-item h2 {
  789. font-size: 1rem;
  790. }
  791. .grid-item img {
  792. margin-bottom: 1rem;
  793. max-width: 75%;
  794. }
  795. .grid-item a:hover {
  796. text-decoration: none;
  797. }
  798. .grid-item p {
  799. font-size: 0.9rem;
  800. margin-top: 0.5rem;
  801. color: var(--body-color);
  802. }
  803. .grid-icon {
  804. line-height: 1.5;
  805. font-size: 3rem;
  806. color: white;
  807. }