[pmg-devel] [PATCH widget-toolkit 1/1] dark-theme: add a dark theme for the asciidoc-based documentation
Stefan Sterz
s.sterz at proxmox.com
Wed Mar 15 17:11:03 CET 2023
this commit adds a css file to the proxmox-widget-toolkit-dev package
that makes it possible for pve and pmg docs to use a dark theme
Signed-off-by: Stefan Sterz <s.sterz at proxmox.com>
---
debian/proxmox-widget-toolkit-dev.install | 1 +
src/proxmox-dark/Makefile | 12 +-
src/proxmox-dark/scss/ProxmoxDarkADocs.scss | 9 ++
src/proxmox-dark/scss/adocs/_admonition.scss | 18 +++
src/proxmox-dark/scss/adocs/_general.scss | 120 +++++++++++++++++++
5 files changed, 159 insertions(+), 1 deletion(-)
create mode 100644 src/proxmox-dark/scss/ProxmoxDarkADocs.scss
create mode 100644 src/proxmox-dark/scss/adocs/_admonition.scss
create mode 100644 src/proxmox-dark/scss/adocs/_general.scss
diff --git a/debian/proxmox-widget-toolkit-dev.install b/debian/proxmox-widget-toolkit-dev.install
index 620d69f..b0cf14b 100644
--- a/debian/proxmox-widget-toolkit-dev.install
+++ b/debian/proxmox-widget-toolkit-dev.install
@@ -1,2 +1,3 @@
Toolkit.js /usr/share/javascript/proxmox-widget-toolkit-dev/
api-viewer/APIViewer.js /usr/share/javascript/proxmox-widget-toolkit-dev/
+proxmox-dark/theme-proxmox-dark-adocs.css /usr/share/javascript/proxmox-widget-toolkit-dev/
diff --git a/src/proxmox-dark/Makefile b/src/proxmox-dark/Makefile
index 2ac6f22..1777e36 100644
--- a/src/proxmox-dark/Makefile
+++ b/src/proxmox-dark/Makefile
@@ -30,8 +30,14 @@ SCSSSRC=scss/ProxmoxDark.scss \
scss/proxmox/_tags.scss \
scss/proxmox/_datepicker.scss
+DOCSSCSSRC=scss/ProxmoxDarkADocs.scss \
+ scss/abstracts/_mixins.scss \
+ scss/abstracts/_variables.scss \
+ scss/adocs/_general.scss \
+ scss/adocs/_admonition.scss
+
.PHONY: all
-all: theme-proxmox-dark.css
+all: theme-proxmox-dark.css theme-proxmox-dark-adocs.css
.PHONY: install
install: theme-proxmox-dark.css
@@ -42,6 +48,10 @@ theme-proxmox-dark.css: ${SCSSSRC}
sassc -t compressed $< $@.tmp
mv $@.tmp $@
+theme-proxmox-dark-adocs.css: ${DOCSSCSSRC}
+ sassc -t expanded $< $@.tmp
+ mv $@.tmp $@
+
.PHONY: clean
clean:
rm -rf theme-proxmox-dark.css
diff --git a/src/proxmox-dark/scss/ProxmoxDarkADocs.scss b/src/proxmox-dark/scss/ProxmoxDarkADocs.scss
new file mode 100644
index 0000000..1efc3fa
--- /dev/null
+++ b/src/proxmox-dark/scss/ProxmoxDarkADocs.scss
@@ -0,0 +1,9 @@
+ at charset "utf-8";
+
+// Abstracts
+ at import "abstracts/mixins";
+ at import "abstracts/variables";
+
+// ascii doc styles
+ at import "adocs/general";
+ at import "adocs/admonition"
diff --git a/src/proxmox-dark/scss/adocs/_admonition.scss b/src/proxmox-dark/scss/adocs/_admonition.scss
new file mode 100644
index 0000000..46a47a5
--- /dev/null
+++ b/src/proxmox-dark/scss/adocs/_admonition.scss
@@ -0,0 +1,18 @@
+/* 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;
+
+ td.icon {
+ padding-right: 0.5em;
+ }
+
+ td.icon > img {
+ padding: 0.15em;
+ box-sizing: border-box;
+ }
+}
diff --git a/src/proxmox-dark/scss/adocs/_general.scss b/src/proxmox-dark/scss/adocs/_general.scss
new file mode 100644
index 0000000..d411ed1
--- /dev/null
+++ b/src/proxmox-dark/scss/adocs/_general.scss
@@ -0,0 +1,120 @@
+ at media (prefers-color-scheme: dark) {
+ :root {
+ color-scheme: dark;
+ }
+
+ body {
+ background-color: $background-darker;
+ color: $text-color;
+ }
+
+ a {
+ color: $highlighted-text;
+
+ &:visited {
+ color: $highlighted-text-alt;
+ }
+ }
+
+ // style headlines, titles etc.
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6,
+ thead,
+ #author,
+ #toctitle,
+ div.title,
+ td.hdlist1,
+ caption.title,
+ p.tableblock.header {
+ color: $highlighted-text-alt;
+ }
+
+ h1,
+ h2,
+ h3,
+ #footer {
+ border-color: $border-color;
+ }
+
+ // formatted colored text
+ dt,
+ em,
+ pre,
+ code,
+ strong,
+ .monospaced {
+ color: $highlighted-text;
+ }
+
+ // style the table of contents sidebar
+ div #toc {
+ color: $text-color;
+ background-color: $background-darkest;
+ border-color: $border-color-alt;
+ }
+
+ div #toc a:link,
+ div #toc a:visited {
+ color: $text-color;
+ }
+
+ // reduce the brigthness of images a bit and make it reversable
+ // through hovering over them.
+ .image > img {
+ filter: brightness(90%);
+
+ &:hover {
+ filter: none;
+ }
+ }
+
+ // tables
+ table.tableblock {
+ border-color: $primary-light;
+ }
+
+ div.quoteblock,
+ div.verseblock {
+ color: $text-color;
+ border-color: $border-color;
+ }
+
+ // listings (e.g. code snippet blocks)
+ div.listingblock > div.content {
+ background-color: $background-darkest;
+ border-color: $border-color-alt;
+ }
+
+ // admonition blocks (e.g. notes, warnings etc.)
+ div.admonitionblock {
+ background-color: $background-dark;
+ color: $text-color;
+
+ td.content {
+ border-color: $border-color;
+ }
+
+ // makes the admonition icons appear a bit more consistent, by
+ // adding a white background the shadows in the icons look
+ // "correct"
+ 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: $text-color;
+ }
+}
--
2.30.2
More information about the pmg-devel
mailing list