diff --git a/Doxyfile b/Doxyfile index 9b9aac614..e36f0d70d 100644 --- a/Doxyfile +++ b/Doxyfile @@ -1375,7 +1375,7 @@ HTML_FILE_EXTENSION = .html # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_HEADER = +HTML_HEADER = doc/doxygen/html/header.html # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank Doxygen will generate a standard @@ -1385,7 +1385,7 @@ HTML_HEADER = # that Doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_FOOTER = +HTML_FOOTER = doc/doxygen/html/footer.html # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of @@ -1415,7 +1415,7 @@ HTML_STYLESHEET = # documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_EXTRA_STYLESHEET = doxygen_style.css +HTML_EXTRA_STYLESHEET = doc/doxygen/css/doxygen_style.css # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note @@ -1425,7 +1425,7 @@ HTML_EXTRA_STYLESHEET = doxygen_style.css # files will be copied as-is; there are no commands or markers available. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_EXTRA_FILES = +HTML_EXTRA_FILES = doc/doxygen/js/graph_toggle.js # The HTML_COLORSTYLE tag can be used to specify if the generated HTML output # should be rendered with a dark or light theme. diff --git a/doc/doxygen/css/doxygen_style.css b/doc/doxygen/css/doxygen_style.css new file mode 100644 index 000000000..617359ea8 --- /dev/null +++ b/doc/doxygen/css/doxygen_style.css @@ -0,0 +1,88 @@ +/* === Accent Tuning for Doxygen Dark Mode === */ + +/* Main accent color */ +:root { + --main-accent: #33a946; +} + +/* Links */ +a, a:visited { + color: var(--main-accent) !important; +} + +a:hover { + color: #4fd467 !important; /* lighter green */ +} + +/* Project title */ +#projectname { + color: var(--main-accent) !important; +} + +/* Current sidebar item */ +#side-nav .selected { + border-left: 3px solid var(--main-accent) !important; +} + +/* Tabs */ +.tablist li.current { + background: var(--main-accent) !important; + color: #fff !important; +} + +/* Search box focus */ +#MSearchField:focus { + outline: 1px solid var(--main-accent) !important; +} + +/* Code block border highlight */ +pre, code { + border: 1px solid #333; +} + +pre.fragment { + border-color: var(--main-accent) !important; +} + +/* Graph toggle (caller / callee two-button) */ +.graph-toggle { + display: inline-flex; + margin: 0.5em 0; + border: 1px solid #444; + border-radius: 6px; + overflow: hidden; + background: #111; +} + +.graph-toggle button { + flex: 1 1 50%; + padding: 0.35em 0.8em; + background: transparent; + color: #aaa; + border: 0; + cursor: pointer; + font-size: 0.95em; +} + +.graph-toggle button:hover:not(:disabled) { + background: #222; + color: #fff; +} + +.graph-toggle button.active { + background: var(--main-accent); + color: #fff; +} + +.graph-toggle button:disabled, +.graph-toggle button.disabled { + opacity: 0.45; + cursor: default; +} + +/* small accessibility focus ring */ +.graph-toggle button:focus { + outline: 2px solid rgba(51, 169, 70, 0.3); + outline-offset: 1px; +} + diff --git a/doc/doxygen/html/footer.html b/doc/doxygen/html/footer.html new file mode 100644 index 000000000..8ea57bf3b --- /dev/null +++ b/doc/doxygen/html/footer.html @@ -0,0 +1,27 @@ + + + + +
+ + +