conf: add support for a dark mode in the documentation

this commit adds support for a dark theme that behaves similarly to
that one used by the api viewer.

Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
This commit is contained in:
Stefan Sterz 2023-03-16 18:02:34 +01:00 committed by Thomas Lamprecht
parent 203262f4f5
commit 864c4d12af
2 changed files with 172 additions and 0 deletions

168
asciidoc/pve-docs.css Normal file
View File

@ -0,0 +1,168 @@
:root {
/* pre-defined colors */
--pdt-grey-950: hsl(0deg, 0%, 95%);
--pdt-grey-400: hsl(0deg, 0%, 40%);
--pdt-grey-250: hsl(0deg, 0%, 25%);
--pdt-grey-150: hsl(0deg, 0%, 15%);
--pdt-grey-100: hsl(0deg, 0%, 10%);
--pdt-primary-850: hsl(205deg, 100%, 85%);
--pdt-primary-800: hsl(205deg, 100%, 80%);
--pdt-primary-700: hsl(205deg, 100%, 70%);
--pdt-secondary-850: hsl(250deg, 100%, 85%);
}
/* adjust admonition block spacing. this allows for a background on
* admonition blocks that doesn't make the elements look to tightly
* spaced.
*/
div.admonitionblock {
border-radius: 3px;
margin: 1.5em 0;
padding: 0.5em 10% 0.5em 0.5em;
}
div.admonitionblock td.icon {
padding-right: 0.5em;
}
div.admonitionblock td.icon > img {
box-sizing: border-box;
padding: 0.15em;
}
@media screen and (prefers-color-scheme: dark) {
:root {
color-scheme: dark;
--pdt-body-background: var(--pdt-grey-150);
--pdt-text: var(--pdt-grey-950);
--pdt-headline: var(--pdt-primary-800);
--pdt-link: var(--pdt-primary-700);
--pdt-link-visited: var(--pdt-secondary-850);
--pdt-highlighted-text: var(--pdt-primary-850);
--pdt-background-sidebar: var(--pdt-grey-100);
--pdt-background-listings: var(--pdt-grey-100);
--pdt-border: var(--pdt-grey-400);
--pdt-border-alt: var(--pdt-grey-250);
--pdt-table-border: var(--pdt-grey-400);
--pdt-background-admonition: var(--pdt-grey-250);
}
body {
color: var(--pdt-text);
background-color: var(--pdt-body-background);
}
a {
color: var(--pdt-link);
}
a:visited {
color: var(--pdt-link-visited);
}
/* style headlines, titles etc. */
h1,
h2,
h3,
h4,
h5,
h6,
thead,
#author,
#toctitle,
div.title,
td.hdlist1,
caption.title,
p.tableblock.header {
color: var(--pdt-headline);
}
h1,
h2,
h3,
#footer {
border-color: var(--pdt-border);
}
/* formatted colored text */
dt,
em,
pre,
code,
strong,
.monospaced {
color: var(--pdt-highlighted-text);
}
/* style the table of contents sidebar */
div #toc {
color: var(--pdt-text);
background-color: var(--pdt-background-sidebar);
border-color: var(--pdt-border-alt);
}
div #toc a:link,
div #toc a:visited {
color: var(--pdt-text);
}
/* reduce the brigthness of images a bit and make it reversable
* through hovering over them.
*/
.image > img {
filter: brightness(90%);
}
.image > img:hover {
filter: none;
}
/* tables */
th.tableblock,
td.tableblock,
table.tableblock {
border-color: var(--pdt-table-border);
}
div.quoteblock,
div.verseblock {
color: var(--pdt-text);
border-color: var(--pdt-border);
}
/* listings (e.g. code snippet blocks) */
div.listingblock > div.content {
background-color: var(--pdt-background-listings);
border-color: var(--pdt-border-alt);
}
/* admonition blocks (e.g. notes, warnings etc.) */
div.admonitionblock {
color: var(--pdt-text);
background-color: var(--pdt-background-admonition);
}
div.admonitionblock td.content {
border-color: var(--pdt-border);
}
/* makes the admonition icons appear a bit more consistent, by
* adding a white background the shadows in the icons look
* "correct"
*/
div.admonitionblock td.icon > img {
background-color: white;
border-radius: 100%;
filter: brightness(95%);
}
/* invert the logo */
#header > h1 > .image > img {
filter: invert(100%) hue-rotate(180deg) brightness(90%);
}
/* fixes the black text on unorderd lists */
ul > li > * {
color: var(--pdt-text);
}
}

View File

@ -629,6 +629,10 @@ div .toclevel1 {
</style>
endif::toc2[]
<style type="text/css">
include1::{stylesdir=.}/pve-docs.css[]
</style>
ifndef::disable-javascript[]
ifdef::linkcss[]
<script type="text/javascript" src="{scriptsdir=.}/asciidoc.js"></script>