Files
godot-docs/_static/css/custom.css
Hugo Locurcio c50cd002ad Make the documentation logo hiDPI-friendly
This also sets the documentation logo to a fixed size in the CSS
to prevent reflows during page loading.
2020-04-11 13:38:25 +02:00

844 lines
23 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Various tweaks to the Read the Docs theme to better conform with Godot's
* visual identity. Many colors are also overridden to use CSS variables.
* This makes it possible to provide an automatically-used dark theme
* based on browser preferences.
*/
/* Default (light) theme colors */
:root {
--body-color: #404040;
--content-wrap-background-color: #efefef;
--content-background-color: #fcfcfc;
--logo-opacity: 1.0;
--navbar-background-color: #333f67;
--navbar-background-color-hover: #29355c;
--navbar-background-color-active: #212d51;
--navbar-current-background-color: #212d51;
--navbar-current-background-color-hover: #182343;
--navbar-current-background-color-active: #131e3b;
--navbar-level-1-color: #c3e3ff;
--navbar-level-2-color: #b8d6f0;
--navbar-level-3-color: #a3c4e1;
--navbar-heading-color: #ff7381;
--navbar-scrollbar-background: #131e2b;
--link-color: #2980b9;
--link-color-hover: #3091d1;
--link-color-active: #105078;
--link-color-visited: #9b59b6;
--hr-color: #e1e4e5;
--table-row-odd-background-color: #f3f6f6;
--code-background-color: #fff;
--code-border-color: #e1e4e5;
--code-literal-color: #d04c60;
--input-background-color: #fcfcfc;
--input-focus-border-color: #5f8cff;
--search-input-background-color: #e6eef3; /* derived from --input-background-color */
--search-match-color: #2c6b96; /* derived from --link-color */
--search-match-background-color: #e3f2fd; /* derived from --link-color */
--search-active-color: #efefef;
--search-credits-background-color: #333f67; /* derived from --navbar-background-color */
--search-credits-color: #b3b3b3; /* derived from --footer-color */
--search-credits-link-color: #4392c5; /* derived from --link-color */
--highlight-background-color: #f5ffe1;
--highlight-comment-color: #408090;
--highlight-keyword-color: #007020;
--highlight-keyword2-color: #902000;
--highlight-number-color: #208050;
--highlight-decorator-color: #4070a0;
--highlight-type-color: #007020;
--highlight-type2-color: #0e84b5;
--highlight-function-color: #06287e;
--highlight-operator-color: #666666;
--highlight-string-color: #4070a0;
--admonition-note-background-color: #e7f2fa;
--admonition-note-color: #404040;
--admonition-note-title-background-color: #6ab0de;
--admonition-note-title-color: #fff;
--admonition-attention-background-color: #ffedcc;
--admonition-attention-color: #404040;
--admonition-attention-title-background-color: #f0b37e;
--admonition-attention-title-color: #fff;
--admonition-danger-background-color: #fcf3f2;
--admonition-danger-color: #404040;
--admonition-danger-title-background-color: #e9a499;
--admonition-danger-title-color: #fff;
--admonition-tip-background-color: #dbfaf4;
--admonition-tip-color: #404040;
--admonition-tip-title-background-color: #1abc9c;
--admonition-tip-title-color: #fff;
--kbd-background-color: #fafbfc;
--kbd-outline-color: #d1d5da;
--kbd-shadow-color: #b0b7bf;
--kbd-text-color: #444d56;
--btn-neutral-background-color: #f3f6f6;
--btn-neutral-hover-background-color: #e5ebeb;
--footer-color: #808080;
}
/* Dark theme colors */
@media (prefers-color-scheme: dark) {
:root {
--body-color: rgba(255, 255, 255, 0.85);
--content-wrap-background-color: #202326;
--content-background-color: #2e3236;
/* Decrease the logo opacity when using the dark theme to be less distracting */
--logo-opacity: 0.85;
--navbar-background-color: #25282b;
--navbar-background-color-hover: #333639;
--navbar-background-color-active: #111417;
--navbar-current-background-color: #333639;
--navbar-current-background-color-hover: #44474a;
--navbar-current-background-color-active: #222528;
--navbar-level-1-color: #ddd;
--navbar-level-2-color: #ccc;
--navbar-level-3-color: #bbb;
--navbar-heading-color: #ee7381;
--navbar-scrollbar-background: #1c1e21;
--link-color: #8cf;
--link-color-hover: #9df;
--link-color-active: #6ad;
--link-color-visited: #cb99f6;
--hr-color: #555;
--table-row-odd-background-color: #3b3e41;
--code-background-color: #434649;
--code-border-color: #505356;
--code-literal-color: #faa;
--input-background-color: #333537;
--input-focus-border-color: #5f8cff;
--search-input-background-color: #43464a; /* derived from --input-background-color */
--search-match-color: #52b4ff; /* derived from --link-color */
--search-match-background-color: #414c56; /* derived from --link-color */
--search-active-color: #202326;
--search-credits-background-color: #202123; /* derived from --navbar-background-color */
--search-credits-color: #6b6b6b; /* derived from --footer-color */
--search-credits-link-color: #628fb1; /* derived from --link-color */
/* Colors taken from the Godot script editor with the Adaptive theme */
--highlight-background-color: #202531;
--highlight-comment-color: rgba(204, 206, 211, 0.5);
--highlight-keyword-color: #ff7085;
--highlight-keyword2-color: #42ffc2;
--highlight-number-color: #a1ffe0;
--highlight-decorator-color: #abc8ff;
--highlight-type-color: #8effda;
--highlight-type2-color: #c6ffed;
--highlight-function-color: #57b3ff;
--highlight-operator-color: #abc8ff;
--highlight-string-color: #ffeca1;
--admonition-note-background-color: #303d4f;
--admonition-note-color: #bfeeff;
--admonition-note-title-background-color: #305070;
--admonition-note-title-color: #bfefff;
--admonition-attention-background-color: #444033;
--admonition-attention-color: #ffeeaf;
--admonition-attention-title-background-color: #665022;
--admonition-attention-title-color: #ffeeaf;
--admonition-danger-background-color: #433;
--admonition-danger-color: #fcc;
--admonition-danger-title-background-color: #633;
--admonition-danger-title-color: #fcc;
--admonition-tip-background-color: #28382d;
--admonition-tip-color: #dfd;
--admonition-tip-title-background-color: #336648;
--admonition-tip-title-color: #dfd;
--kbd-background-color: #595b5d;
--kbd-outline-color: #3d4144;
--kbd-shadow-color: #1e2023;
--kbd-text-color: #e2f2ff;
--btn-neutral-background-color: #404040;
--btn-neutral-hover-background-color: #505050;
--footer-color: #aaa;
}
}
body,
h1,
h2,
h3,
h4,
h5,
h6,
input[type="text"],
input[type="button"],
input[type="reset"],
input[type="submit"],
textarea,
legend,
.btn,
.rst-content .toctree-wrapper p.caption,
.rst-versions {
/* Use a system font stack for better performance (no Web fonts required) */
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}
h1,
h2,
h3,
h4,
h5,
h6,
legend,
.rst-content .toctree-wrapper p.caption {
/* Use a lighter font for headers (Medium instead of Bold) */
font-weight: 500;
}
p,
article ul,
article ol,
.wy-plain-list-disc,
.wy-plain-list-decimal,
.rst-content ol.arabic,
.rst-content .section ul,
.rst-content .toctree-wrapper ul,
.rst-content .section ol {
/* Increase the line height slightly to account for the different font */
line-height: 25px;
}
body,
.rst-content table.docutils thead {
color: var(--body-color);
}
a {
color: var(--link-color);
}
.sphinx-tabs .sphinx-menu a.item {
/* Original definition has `!important` */
color: var(--link-color) !important;
}
a:hover {
color: var(--link-color-hover);
text-decoration: underline;
}
a:active {
/* Add visual feedback when clicking on a link */
color: var(--link-color-active);
}
a:visited {
color: var(--link-color-visited);
}
a.btn:hover {
text-decoration: none;
}
hr,
#search-results .search li:first-child,
#search-results .search li {
border-color: var(--hr-color);
}
/* Doesn't seem to be used on Read the Docs online builds, but is present when building locally */
.rst-content dl:not(.docutils) dt {
background-color: var(--admonition-note-background-color);
border-color: var(--admonition-note-title-background-color);
color: var(--admonition-note-color);
}
/* JavaScript documentation directives */
.rst-content dl:not(.docutils) tt.descclassname,
.rst-content dl:not(.docutils) code.descclassname {
color: var(--highlight-type2-color)
}
.rst-content dl:not(.docutils) tt.descname,
.rst-content dl:not(.docutils) code.descname {
color: var(--highlight-function-color)
}
.rst-content dl:not(.docutils) .sig-paren,
.rst-content dl:not(.docutils) .optional {
color: var(--highlight-operator-color)
}
.rst-content dl:not(.docutils).class dt > em,
.rst-content dl:not(.docutils).function dt > em {
color: var(--code-literal-color)
}
.rst-content dl:not(.docutils).class dt > em.property {
color: var(--highlight-keyword-color)
}
footer,
#search-results .context {
color: var(--footer-color);
}
/* Sphinx Search extension */
/* .wy-body-for-nav is used for higher rule specificity */
/* search popup body */
.wy-body-for-nav .search__outer {
background-color: var(--content-background-color);
border: 2px solid var(--content-background-color);
}
.wy-body-for-nav .search__cross svg {
fill: var(--body-color);
}
.wy-body-for-nav .search__outer::-webkit-scrollbar-track {
border-radius: 10px;
background-color: var(--content-background-color);
}
.wy-body-for-nav .search__outer::-webkit-scrollbar {
width: 7px;
height: 7px;
background-color: var(--content-background-color);
}
.wy-body-for-nav .search__outer::-webkit-scrollbar-thumb {
border-radius: 10px;
background-color: var(--hr-color);
}
/* search input */
.wy-body-for-nav .search__outer__input {
background-color: var(--search-input-background-color);
background-image: none;
border-radius: 50px;
border: 2px solid transparent;
color: var(--body-color);
height: 36px;
padding: 6px 12px;
}
.wy-body-for-nav .search__outer__input:focus {
border-color: var(--input-focus-border-color);
}
.wy-body-for-nav .search__outer .bar:after,
.wy-body-for-nav .search__outer .bar:before {
display: none;
}
/* search item */
.wy-body-for-nav .search__result__single {
border-bottom-color: var(--hr-color);
}
/* search item title */
.wy-body-for-nav .search__result__title {
color: var(--link-color);
border-bottom: none;
font-size: 120%;
font-weight: 400;
}
/* search item section */
.wy-body-for-nav .outer_div_page_results:hover,
.wy-body-for-nav .search__result__box .active {
background-color: var(--search-active-color);
}
.wy-body-for-nav .search__result__subheading{
color: var(--body-color);
font-size: 100%;
font-weight: 400;
}
.wy-body-for-nav .search__result__content {
color: var(--footer-color);
}
/* search item matching substring */
.wy-body-for-nav .search__outer .search__result__title span,
.wy-body-for-nav .search__outer .search__result__content span {
color: var(--search-match-color);
border-bottom: 1px solid var(--search-match-color);
background-color: var(--search-match-background-color);
padding: 0 2px;
}
.wy-body-for-nav .search__result__subheading span {
border-bottom-color: var(--body-color);
}
/* search credits */
.wy-body-for-nav .rtd__search__credits {
background-color: var(--search-credits-background-color);
border-color: var(--search-credits-background-color);
color: var(--search-credits-color);
padding: 4px 8px;
}
.wy-body-for-nav .rtd__search__credits a {
color: var(--search-credits-link-color);
}
/* Main sections */
.wy-nav-content-wrap {
background-color: var(--content-wrap-background-color);
}
.wy-nav-content {
background-color: var(--content-background-color);
}
.wy-body-for-nav {
background-color: var(--content-wrap-background-color);
}
@media only screen and (min-width: 769px) {
.wy-body-for-nav {
/* Center the page on wide displays for better readability */
max-width: 1100px;
margin: 0 auto;
}
}
/* Table display tweaks */
.rst-content table.docutils,
.wy-table-bordered-all td,
.rst-content table.docutils td,
.wy-table thead th,
.rst-content table.docutils thead th,
.rst-content table.field-list thead th {
border-color: var(--code-border-color);
}
.wy-table-odd td,
.wy-table-striped tr:nth-child(2n-1) td,
.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td {
background-color: var(--table-row-odd-background-color);
}
/* Code display tweaks */
code,
.rst-content tt,
.rst-content code {
font-size: 14px;
background-color: var(--code-background-color);
border: 1px solid var(--code-border-color);
}
.rst-content tt.literal,
.rst-content code.literal {
color: var(--code-literal-color);
}
.rst-content div[class^="highlight"] {
border-color: var(--code-border-color);
}
.rst-content pre.literal-block,
.rst-content div[class^="highlight"] pre,
.rst-content .linenodiv pre {
/* Increase the font size and line height in code blocks */
font-size: 14px;
line-height: 1.5;
}
/* Code tab display tweaks */
.ui.tabular.menu .active.item,
.ui.segment {
background-color: var(--code-background-color);
}
/* Syntax highlighting */
.highlight {
background-color: var(--highlight-background-color);
}
.highlight .c1,
.highlight .cm {
color: var(--highlight-comment-color);
}
.highlight .bp,
.highlight .k,
.highlight .kd,
.highlight .kn,
.highlight .kt,
.highlight .ow {
color: var(--highlight-keyword-color);
}
.highlight .cp {
color: var(--highlight-keyword2-color);
}
.highlight .m,
.highlight .mf,
.highlight .mi {
color: var(--highlight-number-color);
}
.highlight .na {
color: var(--highlight-decorator-color);
}
.highlight .nb {
color: var(--highlight-type-color);
}
.highlight .nc,
.highlight .nn,
.highlight .nv {
color: var(--highlight-type2-color);
}
.highlight .nf,
.highlight .nt {
color: var(--highlight-function-color);
}
.highlight .o {
color: var(--highlight-operator-color);
}
.highlight .cpf,
.highlight .s,
.highlight .s1,
.highlight .s2,
.highlight .se {
color: var(--highlight-string-color);
}
/* Admonition tweaks */
.rst-content .admonition.note,
.rst-content .admonition.seealso {
background-color: var(--admonition-note-background-color);
color: var(--admonition-note-color);
}
.rst-content .admonition.note .admonition-title,
.rst-content .admonition.seealso .admonition-title {
background-color: var(--admonition-note-title-background-color);
color: var(--admonition-note-title-color);
}
.rst-content .admonition.attention,
.rst-content .admonition.caution,
.rst-content .admonition.warning {
background-color: var(--admonition-attention-background-color);
color: var(--admonition-attention-color);
}
.rst-content .admonition.attention .admonition-title,
.rst-content .admonition.caution .admonition-title,
.rst-content .admonition.warning .admonition-title {
background-color: var(--admonition-attention-title-background-color);
color: var(--admonition-attention-title-color);
}
.rst-content .admonition.danger {
background-color: var(--admonition-danger-background-color);
color: var(--admonition-danger-color);
}
.rst-content .admonition.danger .admonition-title {
background-color: var(--admonition-danger-title-background-color);
color: var(--admonition-danger-title-color);
}
.rst-content .admonition.tip,
.rst-content .admonition.important {
background-color: var(--admonition-tip-background-color);
color: var(--admonition-tip-color);
}
.rst-content .admonition.tip .admonition-title,
.rst-content .admonition.important .admonition-title {
background-color: var(--admonition-tip-title-background-color);
color: var(--admonition-tip-title-color);
}
/* Keyboard shortcuts tweaks */
kbd, .kbd {
background-color: var(--kbd-background-color);
border: 1px solid var(--kbd-outline-color);
border-radius: 3px;
box-shadow: inset 0 -1px 0 var(--kbd-shadow-color);
color: var(--kbd-text-color);
display: inline-block;
font-size: 12px;
line-height: 11px;
padding: 4px 5px;
vertical-align: middle;
}
/* Buttons */
.btn-neutral {
background-color: var(--btn-neutral-background-color) !important;
color: var(--body-color) !important;
}
.btn-neutral:hover {
background-color: var(--btn-neutral-hover-background-color) !important;
}
.btn-neutral:visited {
color: var(--body-color) !important;
}
/* Navigation bar logo and search */
.logo {
opacity: var(--logo-opacity);
}
.wy-side-nav-search > a img.logo {
/* Fixed size to prevent reflows and support hiDPI displays */
/* A 5 pixel margin is added on each side. The logo itself displays at 200×200 at 100% scaling. */
width: 210px;
height: 210px;
}
.wy-side-nav-search {
background-color: var(--navbar-background-color);
}
.wy-side-nav-search.fixed {
position: fixed;
}
@media only screen and (min-width: 769px) {
/* Simulate a drop shadow that only affects the bottom edge */
/* This is used to indicate the search bar is fixed */
.wy-side-nav-search.fixed-and-scrolled::after {
content: '';
position: absolute;
left: 0;
bottom: -8px;
width: 300px;
height: 8px;
pointer-events: none;
background: linear-gradient(hsla(0, 0%, 0%, 0.2), transparent);
}
}
.wy-side-nav-search > a:hover,
.wy-side-nav-search .wy-dropdown > a:hover {
background-color: var(--navbar-background-color-hover);
}
.wy-side-nav-search > a:active,
.wy-side-nav-search .wy-dropdown > a:active {
background-color: var(--navbar-background-color-active);
}
.wy-side-nav-search input[type="text"] {
background-color: var(--input-background-color);
color: var(--body-color);
/* Avoid reflowing when toggling the focus state */
border: 2px solid transparent;
box-shadow: none;
/* Make visual feedback instant */
transition: none;
font-size: 14px;
}
.wy-side-nav-search input[type="text"]:focus {
border: 2px solid var(--input-focus-border-color);
}
.wy-side-nav-search input[type="text"]::placeholder {
color: var(--body-color);
opacity: 0.55;
}
/* Navigation bar */
.wy-nav-side {
background-color: var(--navbar-background-color);
}
@media only screen and (min-width: 769px) {
.wy-nav-side {
/* Required to center the page on wide displays */
left: inherit;
}
}
.wy-menu-vertical header,
.wy-menu-vertical p.caption {
color: var(--navbar-heading-color);
/* Improves the appearance of uppercase text */
letter-spacing: 0.75px;
}
/* Mobile navigation */
.wy-nav-top,
.wy-nav-top a {
background-color: var(--navbar-background-color);
color: var(--navbar-level-1-color);
}
/* Version branch label below the logo */
.wy-side-nav-search > div.version {
color: var(--navbar-level-3-color);
opacity: 0.9;
}
/* First level of navigation items */
.wy-menu-vertical a {
color: var(--navbar-level-1-color);
}
.wy-menu-vertical a:hover {
background-color: var(--navbar-background-color-hover);
color: var(--navbar-level-1-color);
}
.wy-menu-vertical a:active {
background-color: var(--navbar-background-color-active);
}
.wy-menu-vertical li.toctree-l1.current > a {
border: none;
}
.wy-side-nav-search, .wy-menu-vertical a, .wy-menu-vertical a span.toctree-expand,
.wy-menu-vertical li.toctree-l2 a span.toctree-expand {
color: var(--navbar-level-3-color);
opacity: 0.9;
margin-right: 8px;
}
.wy-side-nav-search, .wy-menu-vertical a, .wy-menu-vertical a:hover span.toctree-expand,
.wy-menu-vertical li.toctree-l2 a:hover span.toctree-expand {
color: var(--navbar-level-2-color);
opacity: 1;
}
.wy-side-nav-search, .wy-menu-vertical a, .wy-menu-vertical a:active span.toctree-expand,
.wy-menu-vertical li.toctree-l2 a:active span.toctree-expand {
color: var(--navbar-level-1-color);
opacity: 1;
}
/* Second (and higher) levels of navigation items */
.wy-menu-vertical li.current a {
/* Make long words always display on a single line, keep wrapping for multiple words */
/* This fixes the class reference titles' display with very long class names */
display: flex;
}
.wy-menu-vertical li.current a,
.wy-menu-vertical li.toctree-l2.current > a,
.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a,
.wy-menu-vertical li.toctree-l2.current li.toctree-l4 > a {
background-color: var(--navbar-current-background-color);
color: var(--navbar-level-2-color);
border-color: var(--navbar-current-background-color);
}
.wy-menu-vertical li.current a:hover,
.wy-menu-vertical li.toctree-l2.current > a:hover,
.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a:hover,
.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a:hover {
background-color: var(--navbar-current-background-color-hover);
}
.wy-menu-vertical li.current a:active,
.wy-menu-vertical li.toctree-l2.current > a:active,
.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a:active,
.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a:active {
background-color: var(--navbar-current-background-color-active);
}
.wy-menu-vertical a {
/* This overrides 8px margin added in other multi-selector rules */
margin-right: 0;
}
/* Version selector (only visible on Read the Docs) */
.rst-versions {
background-color: var(--navbar-current-background-color);
}
@media only screen and (min-width: 769px) {
.rst-versions {
/* Required to center the page on wide displays */
left: inherit;
}
}
.rst-versions a,
.rst-versions .rst-current-version,
.rst-versions .rst-current-version .fa,
.rst-versions .rst-other-versions dd a {
color: var(--navbar-level-1-color);
}
.rst-versions .rst-other-versions small {
color: var(--navbar-level-3-color);
}
.rst-versions .rst-other-versions dd a:hover {
text-decoration: underline;
}
.rst-versions .rst-other-versions {
color: var(--navbar-heading-color);
}
.rst-versions .rst-current-version {
background-color: var(--navbar-current-background-color);
}
.rst-versions .rst-current-version:hover {
background-color: var(--navbar-current-background-color-hover);
}
.rst-versions .rst-current-version:active {
background-color: var(--navbar-current-background-color-active);
}
/* Hide the obnoxious automatic highlight in search results */
.rst-content .highlighted {
background-color: transparent;
font-weight: inherit;
padding: 0;
}
/* Allows the navbar's scrollbar to be shown */
.wy-menu.wy-menu-vertical {
overflow-y: auto;
max-height: calc(100% - 348px);
}
@media screen and (max-width: 768px) {
.wy-nav-side {
padding-bottom: 44px;
}
.wy-menu.wy-menu-vertical {
overflow-y: initial;
max-height: initial;
}
}
/* Navbar's scrollbar styling */
.wy-menu.wy-menu-vertical {
scrollbar-color: var(--navbar-heading-color) var(--navbar-scrollbar-background);
}
.wy-menu.wy-menu-vertical::-webkit-scrollbar {
width: .75rem;
}
.wy-menu.wy-menu-vertical::-webkit-scrollbar-track {
background-color: var(--navbar-scrollbar-background);
}
.wy-menu.wy-menu-vertical::-webkit-scrollbar-thumb {
background-color: var(--navbar-heading-color);
}