custom.css 30 KB

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