* [pmg-devel] [PATCH pmg-docs v2] conf: add support for a dark mode in the documentation
@ 2023-03-16 17:03 Stefan Sterz
2023-03-21 11:55 ` [pmg-devel] applied: " Thomas Lamprecht
0 siblings, 1 reply; 2+ messages in thread
From: Stefan Sterz @ 2023-03-16 17:03 UTC (permalink / raw)
To: pmg-devel
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>
---
asciidoc/pmg-docs.css | 168 +++++++++++++++++++++++++++++++++++++++++
asciidoc/pmg-html.conf | 4 +
2 files changed, 172 insertions(+)
create mode 100644 asciidoc/pmg-docs.css
diff --git a/asciidoc/pmg-docs.css b/asciidoc/pmg-docs.css
new file mode 100644
index 0000000..45e2b11
--- /dev/null
+++ b/asciidoc/pmg-docs.css
@@ -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);
+ }
+}
diff --git a/asciidoc/pmg-html.conf b/asciidoc/pmg-html.conf
index 707a83f..a83a8a6 100644
--- a/asciidoc/pmg-html.conf
+++ b/asciidoc/pmg-html.conf
@@ -632,6 +632,10 @@ div .toclevel1 {
</style>
endif::toc2[]
+<style type="text/css">
+include1::{stylesdir=.}/pmg-docs.css[]
+</style>
+
ifndef::disable-javascript[]
ifdef::linkcss[]
<script type="text/javascript" src="{scriptsdir=.}/asciidoc.js"></script>
--
2.30.2
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-03-21 11:55 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-16 17:03 [pmg-devel] [PATCH pmg-docs v2] conf: add support for a dark mode in the documentation Stefan Sterz
2023-03-21 11:55 ` [pmg-devel] applied: " Thomas Lamprecht
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox