diff --git a/python_docs_theme/static/menu.js b/python_docs_theme/static/menu.js
index c7ab03e..3d39c62 100644
--- a/python_docs_theme/static/menu.js
+++ b/python_docs_theme/static/menu.js
@@ -1,57 +1,45 @@
document.addEventListener("DOMContentLoaded", function () {
+ // Make tables responsive
+ document.querySelectorAll("table.docutils").forEach((table) => {
+ table.outerHTML = `
${table.outerHTML}
`;
+ });
- // Make tables responsive by wrapping them in a div and making them scrollable
- const tables = document.querySelectorAll("table.docutils")
- tables.forEach(function(table){
- table.outerHTML = '' + table.outerHTML + "
"
- })
+ const togglerInput = document.querySelector(".toggler__input");
+ const togglerLabel = document.querySelector(".toggler__label");
+ const sideMenu = document.querySelector(".menu-wrapper");
+ const body = document.body;
- const togglerInput = document.querySelector(".toggler__input")
- const togglerLabel = document.querySelector(".toggler__label")
- const sideMenu = document.querySelector(".menu-wrapper")
- const menuItems = document.querySelectorAll(".menu")
- const doc = document.querySelector(".document")
- const body = document.querySelector("body")
+ const closeMenu = () => {
+ togglerInput.checked = false;
+ sideMenu.setAttribute("aria-expanded", "false");
+ sideMenu.setAttribute("aria-hidden", "true");
+ togglerLabel.setAttribute("aria-pressed", "false");
+ body.style.overflow = "visible";
+ };
- function closeMenu() {
- togglerInput.checked = false
- sideMenu.setAttribute("aria-expanded", "false")
- sideMenu.setAttribute("aria-hidden", "true")
- togglerLabel.setAttribute("aria-pressed", "false")
- body.style.overflow = "visible"
- }
- function openMenu() {
- togglerInput.checked = true
- sideMenu.setAttribute("aria-expanded", "true")
- sideMenu.setAttribute("aria-hidden", "false")
- togglerLabel.setAttribute("aria-pressed", "true")
- body.style.overflow = "hidden"
- }
+ const openMenu = () => {
+ togglerInput.checked = true;
+ sideMenu.setAttribute("aria-expanded", "true");
+ sideMenu.setAttribute("aria-hidden", "false");
+ togglerLabel.setAttribute("aria-pressed", "true");
+ body.style.overflow = "hidden";
+ };
- // Close menu when link on the sideMenu is clicked
- sideMenu.addEventListener("click", function (event) {
- let target = event.target
- if (target.tagName.toLowerCase() !== "a") {
- return
- }
- closeMenu()
- })
- // Add accessibility data when sideMenu is opened/closed
- togglerInput.addEventListener("change", function (_event) {
- togglerInput.checked ? openMenu() : closeMenu()
- })
- // Make sideMenu links tabbable only when visible
- for(let menuItem of menuItems) {
- if(togglerInput.checked) {
- menuItem.setAttribute("tabindex", "0")
- } else {
- menuItem.setAttribute("tabindex", "-1")
- }
- }
- // Close sideMenu when document body is clicked
- doc.addEventListener("click", function () {
- if (togglerInput.checked) {
- closeMenu()
- }
- })
-})
+ // Toggle menu accessibility attributes
+ togglerInput.addEventListener("change", () => {
+ togglerInput.checked ? openMenu() : closeMenu();
+ sideMenu.querySelectorAll(".menu").forEach((menuItem) => {
+ menuItem.setAttribute("tabindex", togglerInput.checked ? "0" : "-1");
+ });
+ });
+
+ // Close menu when a link inside the sideMenu is clicked
+ sideMenu.addEventListener("click", (event) => {
+ if (event.target.closest("a")) closeMenu();
+ });
+
+ // Close menu when the document body is clicked
+ document.querySelector(".document").addEventListener("click", () => {
+ if (togglerInput.checked) closeMenu();
+ });
+});
diff --git a/python_docs_theme/static/pydoctheme_dark.css b/python_docs_theme/static/pydoctheme_dark.css
index 4509960..e73a7f9 100644
--- a/python_docs_theme/static/pydoctheme_dark.css
+++ b/python_docs_theme/static/pydoctheme_dark.css
@@ -1,178 +1,332 @@
-/* Common colours */
+/* Updated Common colors */
:root {
- --good-color: rgb(79 196 100);
- --good-border: var(--good-color);
- --middle-color: rgb(244, 227, 76);
- --middle-border: var(--middle-color);
- --bad-color: rgb(244, 76, 78);
- --bad-border: var(--bad-color);
+
+ --good-color: rgb(79, 196, 100);
+ --good-color: rgb(79 196 100);
+ --good-border: var(--good-color);
+ --middle-color: rgb(244, 227, 76);
+ --middle-border: var(--middle-color);
+ --bad-color: rgb(244, 76, 78);
+ --bad-border: var(--bad-color);
}
/* Browser elements */
:root {
- scrollbar-color: #616161 transparent;
- color-scheme: dark;
+ scrollbar-color: #616161 transparent;
+ color-scheme: dark;
}
html,
body {
- background-color: #222;
- color: rgba(255, 255, 255, 0.87);
+ background-color: #222;
+ color: rgba(255, 255, 255, 0.87);
}
div.related {
- color: rgba(255, 255, 255, 0.7); /* classic overwrite */
- border-color: #424242;
+
+ color: rgba(255, 255, 255, 0.7);
+
+ color: rgba(255, 255, 255, 0.7); /* classic overwrite */
+
+ border-color: #424242;
}
/* SIDEBAR */
+
+.sidebar {
+ background-color: #424242; /* Dark background for sidebar */
+ border-color: #616161;
+ width: 250px;
+ transition: width 0.3s ease, background-color 0.3s ease;
+ overflow-x: hidden; /* Ensure smooth scrolling on long content */
+}
+
+.sidebar.collapsed {
+ width: 0;
+ border: none;
+}
+
+/* Make sidebar responsive */
+@media screen and (max-width: 768px) {
+ .sidebar {
+ width: 200px;
+ }
+}
+
+@media screen and (max-width: 480px) {
+ .sidebar {
+ display: none;
+ }
+
+ #sidebarbutton {
+ display: block;
+ }
+}
+
+/* Sidebar button style */
+#sidebarbutton {
+ background-color: #555;
+ color: inherit;
+ padding: 10px;
+ cursor: pointer;
+ display: none;
+}
+
+/* Sidebar hover and transitions */
+.sidebar:hover {
+ background-color: #555;
+}
div.sphinxsidebar, .menu-wrapper {
- background-color: #333;
- color: inherit;
+ background-color: #414141; /* Sidebar background color */
+ color: inherit;
}
#sidebarbutton {
- /* important to overwrite style attribute */
- background-color: #555 !important;
- color: inherit !important;
+ background-color: #555 !important;
+ color: inherit !important;
}
div.sidebar, aside.sidebar {
- background-color: #424242;
- border-color: #616161;
+ background-color: #414141; /* Sidebar background color */
+ border-color: #616161;
+ width: 300px; /* Sidebar width increased */
+ resize: horizontal; /* Make it resizable */
+ overflow: auto;
+ position: fixed; /* Fixed position to keep sidebar in place */
+ top: 0;
+ left: 0;
+ height: 100%;
+ z-index: 100;
+ transition: left 400ms ease;
}
+/* Sidebar Open State */
+div.sidebar.open {
+ left: 0;
+
+}
+
+.menu-wrapper {
+ padding: 40px 10px 30px 20px;
+}
+
+.menu-wrapper h3,
+.menu-wrapper h4 {
+ margin-bottom: 0;
+ font-weight: normal;
+}
+
+.menu-wrapper h4 {
+ font-size: 1.3em;
+}
+
+.menu-wrapper h3 {
+ font-size: 1.4em;
+}
+
+.menu-wrapper h3 + p,
+.menu-wrapper h4 + p {
+ margin-top: 0.5rem;
+}
+
+.menu a {
+ font-size: smaller;
+ text-decoration: none;
+}
+
+.menu ul {
+ list-style: none;
+ line-height: 1.4;
+ overflow-wrap: break-word;
+ padding-left: 0;
+}
+
+.menu ul ul {
+ margin-left: 20px;
+ list-style: square;
+}
+
+.menu ul li {
+ margin-bottom: 0.5rem;
+}
+
+.language_switcher_placeholder {
+ margin-top: 2rem;
+}
+
+.language_switcher_placeholder select {
+ width: 100%;
+}
+
+.document {
+ position: relative;
+ z-index: 0;
+}
+
+/* Responsive tables */
+.responsive-table__container {
+ width: 100%;
+ overflow-x: auto;
+}
+
+.menu .theme-selector-label {
+ margin-top: .5em;
+ display: flex;
+ width: 100%;
+}
+
+.menu .theme-selector {
+ flex: auto;
+}
+
+
+
+
/* ANCHORS AND HIGHLIGHTS */
+
+a {
+ color: #7af;
+}
+
+a:visited {
+ color: #7af;
+}
+
div.body a {
- color: #7af;
+ color: #7af;
}
div.body a:visited {
- color: #09e;
+ color: #09e;
}
a.headerlink:hover {
- background-color: #424242;
+ background-color: #424242;
}
div.related a {
- color: currentColor;
+ color: currentColor;
}
div.footer,
div.footer a {
- color: currentColor; /* classic overwrites */
+
+ color: currentColor;
+
+ color: currentColor; /* classic overwrites */
+
}
dt:target,
span.highlighted {
- background-color: #616161;
+ background-color: #616161;
}
.footnote:target {
- background-color: #2c3e50;
+ background-color: #2c3e50;
}
/* Below for most things in text */
dl.field-list > dt {
- background-color: #434;
+ background-color: #434;
}
table.docutils td,
table.docutils th {
- border-color: #616161 !important;
+ border-color: #616161 !important;
}
table.docutils th {
- background-color: #424242;
+ background-color: #424242;
}
.stableabi {
- color: #bbf;
+ color: #bbf;
}
+pre {
+ border-color: #616161;
+}
div.body pre {
- border-color: #616161;
+ border-color: #616161;
}
code {
- background-color: #424242;
+ background-color: #424242;
}
-div.body div.seealso {
- background-color: rgba(255, 255, 0, 0.1);
+div.seealso {
+ background-color: rgba(255, 255, 0, 0.1);
}
+
div.warning {
- background-color: rgba(255, 0, 0, 0.2);
+ background-color: rgba(255, 0, 0, 0.2);
}
.warning code {
- background-color: rgba(255, 0, 0, 0.5);
+ background-color: rgba(255, 0, 0, 0.5);
}
/* Admonitions */
:root {
- --admonition-background: #ffffff1a;
- --admonition-border: currentColor;
- --admonition-color: #ffffffde;
- --attention-background: #ffffff1a;
- --attention-border: currentColor;
- --caution-background: #ffff001a;
- --caution-border: #dd6;
- --danger-background: #f003;
- --danger-border: #f66;
- --error-background: #f003;
- --error-border: #f66;
- --hint-background: #0044117a;
- --hint-border: green;
- --seealso-background: #ffff001a;
- --seealso-border: #dd6;
- --tip-background: #0044117a;
- --tip-border: green;
- --warning-background: #ff000033;
- --warning-border: #ff6666;
+ --admonition-background: #ffffff1a;
+ --admonition-border: currentColor;
+ --admonition-color: #ffffffde;
+ --attention-background: #ffffff1a;
+ --attention-border: currentColor;
+ --caution-background: #ffff001a;
+ --caution-border: #dd6;
+ --danger-background: #f003;
+ --danger-border: #f66;
+ --error-background: #f003;
+ --error-border: #f66;
+ --hint-background: #0044117a;
+ --hint-border: green;
+ --seealso-background: #ffff001a;
+ --seealso-border: #dd6;
+ --tip-background: #0044117a;
+ --tip-border: green;
+ --warning-background: #ff000033;
+ --warning-border: #ff6666;
}
aside.topic,
div.topic,
div.note,
nav.contents {
- background-color: rgba(255, 255, 255, 0.1);
- border-color: currentColor;
+ background-color: rgba(255, 255, 255, 0.1);
+ border-color: currentColor;
}
.note code {
- background-color: rgba(255, 255, 255, 0.1);
+ background-color: rgba(255, 255, 255, 0.1);
}
.mobile-nav {
- box-shadow: rgba(255, 255, 255, 0.25) 0 0 2px 0;
+ box-shadow: rgba(255, 255, 255, 0.25) 0 0 2px 0;
}
.nav-content {
- background-color: black;
+ background-color: black;
}
img.invert-in-dark-mode {
- filter: invert(1) hue-rotate(.5turn);
+ filter: invert(1) hue-rotate(.5turn);
}
-/* -- object description styles --------------------------------------------- */
-
+/* Object description styles */
/* C++ specific styling */
-
-/* Override Sphinx's basic.css to fix colour contrast */
-.sig.c .k, .sig.c .kt,
+.sig.c .k, .sig.c .kt,
.sig.cpp .k, .sig.cpp .kt {
- color: #5283ff;
+ color: #5283ff;
}
/* Version change directives */
:root {
- --versionadded: var(--good-color);
- --versionchanged: var(--middle-color);
- --deprecated: var(--bad-color);
-}
+ --versionadded: var(--good-color);
+ --versionchanged: var(--middle-color);
+ --deprecated: var(--bad-color);
+}
\ No newline at end of file