From 71b80fb4948f6d7f1c4e3b9365815d5e29d21f4b Mon Sep 17 00:00:00 2001 From: quasar Date: Wed, 28 Oct 2026 18:31:39 +0000 Subject: [PATCH] Resolve Issue #16: GitHub Pages documentation site (Material + Doxygen) Implement the same documentation setup as QuasarApp/Heart#88: MkDocs with the Material theme serving the README as the home page and the Doxygen HTML output under /api/, deployed to the gh-pages branch by the 'Deploy Documentation (GitHub Pages)' workflow (Doxygen 1.18.0 + Graphviz installed in the workflow via marketplace actions, no system apt). - doxygen.conf renamed to doxygen.conf.in (generated file gitignored), the 15 tags rejected as obsolete by Doxygen 1.18 removed, PROJECT_NUMBER wired to VIEWSOLUTIONS_VERSION (1.0..), PROJECT_BRIEF set, LAYOUT_FILE cleared (CMake/DoxyStyle files are missing in the submodule) and HTML_EXTRA_STYLESHEET replaced with the new res/doxygen-material.css (Material indigo palette matching the site), HTML_COLORSTYLE_HUE 220 -> 231 - CMakeLists.txt: updateGitVarsWithHash + VIEWSOLUTIONS_VERSION + configure_file_in before addDoc (same as Heart) - README.md: documentation / API reference links to https://quasarapp.github.io/ViewSolutions/ --- .gitignore | 6 + CMakeLists.txt | 4 + README.md | 2 + doxygen.conf => doxygen.conf.in | 142 +------------- mkdocs.yml | 69 +++++++ res/doxygen-material.css | 332 ++++++++++++++++++++++++++++++++ 6 files changed, 418 insertions(+), 137 deletions(-) rename doxygen.conf => doxygen.conf.in (94%) create mode 100644 mkdocs.yml create mode 100644 res/doxygen-material.css diff --git a/.gitignore b/.gitignore index db21ef1..0afc52c 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,9 @@ CTestTestfile.cmake _deps *_autogen *.qmlls.ini + +# Documentation (generated by the "Deploy Documentation (GitHub Pages)" workflow) +docs/api/ +docs/index.md +site/ +doxygen.conf diff --git a/CMakeLists.txt b/CMakeLists.txt index 211efa7..32f40ec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,9 @@ endif() include(CMake/QuasarApp.cmake) +updateGitVarsWithHash("c8f0b3222d1811e3467a2fa46645c720e31b2860") +set(VIEWSOLUTIONS_VERSION 1.0.${GIT_COMMIT_COUNT_FROM}.${GIT_COMMIT_HASH}) + find_package(QT NAMES Qt6 COMPONENTS Core Quick QuickControls2 REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Quick QuickControls2 REQUIRED) @@ -39,4 +42,5 @@ endif() initAll() +configure_file_in(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/doxygen.conf) addDoc(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/doxygen.conf) diff --git a/README.md b/README.md index 93798ab..ebd73c7 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ View solutions of qml for quasarapp projects +For more information, see the ViewSolutions [documentation](https://quasarapp.github.io/ViewSolutions/) and the [API reference](https://quasarapp.github.io/ViewSolutions/api/). + ## QML classes: #### ImageView diff --git a/doxygen.conf b/doxygen.conf.in similarity index 94% rename from doxygen.conf rename to doxygen.conf.in index 75cce3d..3432679 100644 --- a/doxygen.conf +++ b/doxygen.conf.in @@ -38,13 +38,13 @@ PROJECT_NAME = ViewSolutions # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = +PROJECT_NUMBER = @VIEWSOLUTIONS_VERSION@ # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. -PROJECT_BRIEF = +PROJECT_BRIEF = View solutions of qml for quasarapp projects # With the PROJECT_LOGO tag one can specify a logo or an icon that is included # in the documentation. The maximum height of the logo should not exceed 55 @@ -240,12 +240,6 @@ TAB_SIZE = 4 ALIASES = -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding "class=itcl::class" -# will allow you to use the command class in the itcl::class meaning. - -TCL_SUBST = - # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. For # instance, some of the names that are used will be different. The list of all @@ -703,7 +697,7 @@ FILE_VERSION_FILTER = # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. -LAYOUT_FILE = CMake/DoxyStyle/DoxygenLayout.xml +LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib @@ -1101,13 +1095,6 @@ CLANG_OPTIONS = ALPHABETICAL_INDEX = YES -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - # In case all classes in a project start with a common prefix, all classes will # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag # can be used to specify a prefix (or a list of prefixes) that should be ignored @@ -1193,7 +1180,7 @@ HTML_STYLESHEET = # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_EXTRA_STYLESHEET = CMake/DoxyStyle/doxygenStyles.css +HTML_EXTRA_STYLESHEET = res/doxygen-material.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 @@ -1214,7 +1201,7 @@ HTML_EXTRA_FILES = # Minimum value: 0, maximum value: 359, default value: 220. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_COLORSTYLE_HUE = 220 +HTML_COLORSTYLE_HUE = 231 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors # in the HTML output. For a value of 0 the output will use grayscales only. A @@ -1235,15 +1222,6 @@ HTML_COLORSTYLE_SAT = 100 HTML_COLORSTYLE_GAMMA = 80 -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. @@ -1514,17 +1492,6 @@ EXT_LINKS_IN_WINDOW = NO FORMULA_FONTSIZE = 10 -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # http://www.mathjax.org) which uses client side Javascript for the rendering # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX @@ -1803,16 +1770,6 @@ LATEX_BATCHMODE = NO LATEX_HIDE_INDICES = NO -# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source -# code with syntax highlighting in the LaTeX output. -# -# Note that which sources are shown also depends on other settings such as -# SOURCE_BROWSER. -# The default value is: NO. -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_SOURCE_CODE = NO - # The LATEX_BIB_STYLE tag can be used to specify the style to use for the # bibliography, e.g. plainnat, or ieeetr. See # http://en.wikipedia.org/wiki/BibTeX and \cite for more info. @@ -1821,14 +1778,6 @@ LATEX_SOURCE_CODE = NO LATEX_BIB_STYLE = plain -# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated -# page will contain the date and time when the page was generated. Setting this -# to NO can help when comparing the output of multiple runs. -# The default value is: NO. -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_TIMESTAMP = NO - #--------------------------------------------------------------------------- # Configuration options related to the RTF output #--------------------------------------------------------------------------- @@ -1885,16 +1834,6 @@ RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = -# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code -# with syntax highlighting in the RTF output. -# -# Note that which sources are shown also depends on other settings such as -# SOURCE_BROWSER. -# The default value is: NO. -# This tag requires that the tag GENERATE_RTF is set to YES. - -RTF_SOURCE_CODE = NO - #--------------------------------------------------------------------------- # Configuration options related to the man page output #--------------------------------------------------------------------------- @@ -1984,15 +1923,6 @@ GENERATE_DOCBOOK = NO DOCBOOK_OUTPUT = docbook -# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the -# program listings (including syntax highlighting and cross-referencing -# information) to the DOCBOOK output. Note that enabling this will significantly -# increase the size of the DOCBOOK output. -# The default value is: NO. -# This tag requires that the tag GENERATE_DOCBOOK is set to YES. - -DOCBOOK_PROGRAMLISTING = NO - #--------------------------------------------------------------------------- # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- @@ -2167,34 +2097,10 @@ EXTERNAL_GROUPS = YES EXTERNAL_PAGES = YES -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of 'which perl'). -# The default file (with absolute path) is: /usr/bin/perl. - -PERL_PATH = /usr/bin/perl - #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- -# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram -# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to -# NO turns the diagrams off. Note that this option also works with HAVE_DOT -# disabled, but it is recommended to install and use dot, since it yields more -# powerful graphs. -# The default value is: YES. - -CLASS_DIAGRAMS = YES - -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see: -# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the -# documentation. The MSCGEN_PATH tag allows you to specify the directory where -# the mscgen tool resides. If left empty the tool is assumed to be found in the -# default search path. - -MSCGEN_PATH = - # You can include diagrams made with dia in doxygen documentation. Doxygen will # then run dia to produce the diagram and insert it in the documentation. The # DIA_PATH tag allows you to specify the directory where the dia binary resides. @@ -2227,23 +2133,6 @@ HAVE_DOT = YES DOT_NUM_THREADS = 0 -# When you want a differently looking font in the dot files that doxygen -# generates you can specify the font name using DOT_FONTNAME. You need to make -# sure dot is able to find the font, which can be done by putting it in a -# standard location or by setting the DOTFONTPATH environment variable or by -# setting DOT_FONTPATH to the directory containing the font. -# The default value is: Helvetica. -# This tag requires that the tag HAVE_DOT is set to YES. - -DOT_FONTNAME = Helvetica - -# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of -# dot graphs. -# Minimum value: 4, maximum value: 24, default value: 10. -# This tag requires that the tag HAVE_DOT is set to YES. - -DOT_FONTSIZE = 10 - # By default doxygen will tell dot to use the default font as specified with # DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set # the path where dot can find it using this tag. @@ -2458,27 +2347,6 @@ DOT_GRAPH_MAX_NODES = 50 MAX_DOT_GRAPH_DEPTH = 0 -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, because dot on Windows does not seem -# to support this out of the box. -# -# Warning: Depending on the platform used, enabling this option may lead to -# badly anti-aliased labels on the edges of a graph (i.e. they become hard to -# read). -# The default value is: NO. -# This tag requires that the tag HAVE_DOT is set to YES. - -DOT_TRANSPARENT = NO - -# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output -# files in one run (i.e. multiple -o and -T options on the command line). This -# makes dot run faster, but since only newer versions of dot (>1.8.10) support -# this, this feature is disabled by default. -# The default value is: NO. -# This tag requires that the tag HAVE_DOT is set to YES. - -DOT_MULTI_TARGETS = NO - # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page # explaining the meaning of the various boxes and arrows in the dot generated # graphs. diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..54d1d66 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,69 @@ +# ViewSolutions documentation site (GitHub Pages) +# +# Built with MkDocs + the Material theme. Before `mkdocs build` runs, +# the "Deploy Documentation (GitHub Pages)" workflow copies the root +# README.md to docs/index.md (the site home page) and generates the +# Doxygen HTML output into docs/api/, so the API section of the site +# is served from /api/. + +site_name: ViewSolutions +site_description: QuasarApp ViewSolutions - QML view solutions for QuasarApp projects +site_url: https://quasarapp.github.io/ViewSolutions/ + +repo_name: QuasarApp/ViewSolutions +repo_url: https://github.com/QuasarApp/ViewSolutions +edit_uri: https://github.com/QuasarApp/ViewSolutions/edit/main/ + +docs_dir: docs +site_dir: site + +theme: + name: material + palette: + - scheme: default + primary: indigo + accent: indigo + toggle: + icon: material/brightness-4 + name: Switch to dark mode + - scheme: slate + primary: indigo + accent: indigo + toggle: + icon: material/brightness-7 + name: Switch to light mode + font: + text: Roboto + code: Roboto Mono + features: + - content.code.copy + - navigation.footer + - navigation.indexes + - navigation.sections + - navigation.top + - navigation.tracking + - search.highlight + - search.suggest + - toc + +markdown_extensions: + - admonition + - attr_list + - tables + - toc: + permalink: true + - pymdownx.details + - pymdownx.highlight + - pymdownx.inlinehilite + - pymdownx.superfences + - pymdownx.tasklist: + custom_checkbox: true + +nav: + # index.md is copied from the root README.md by the documentation + # workflow before the MkDocs build, so the README stays the single + # source of truth and the generated copy is not committed. + - Home: index.md + # api/index.html is the static Doxygen index generated into docs/api/ + # by the documentation workflow before the MkDocs build. + - API: api/index.html diff --git a/res/doxygen-material.css b/res/doxygen-material.css new file mode 100644 index 0000000..990c7f0 --- /dev/null +++ b/res/doxygen-material.css @@ -0,0 +1,332 @@ +/* + * doxygen-material.css + * + * Material Design restyling for the Doxygen HTML output. It is attached + * through the HTML_EXTRA_STYLESHEET tag and therefore loaded after the + * generated doxygen.css, so every rule in this file wins the cascade. + * + * Doxygen 1.18+ drives its look with CSS custom properties, which makes the + * restyle a pure palette/font re-mapping: the Material "indigo" scheme and + * the Roboto font stack of the MkDocs site (see mkdocs.yml) are applied to + * the light scheme, and the site's "slate" palette is applied to the dark + * scheme (Doxygen follows the system color scheme automatically). + * + * Palette reference (Material Design): + * indigo 50 #e8eaf6 indigo 100 #c5cae9 indigo 300 #9fa8da + * indigo 400 #7986cb indigo 500 #3f51b5 indigo 600 #3949ab + * indigo 700 #303f9f indigo A200 #536dfe + */ + +/* ------------------------------------------------------------------ */ +/* Light scheme */ +/* ------------------------------------------------------------------ */ +html { + /* page base */ + --page-background-color: #ffffff; + --page-foreground-color: rgba(0, 0, 0, 0.87); + --page-link-color: #3f51b5; + --page-visited-link-color: #303f9f; + --page-external-link-color: #536dfe; + + /* index */ + --index-odd-item-bg-color: #f4f5fb; + --index-even-item-bg-color: #ffffff; + --index-header-color: #303f9f; + --index-separator-color: #c5cae9; + + /* header (top app bar) */ + --header-background-color: #ffffff; + --header-separator-color: #e8eaf6; + --group-header-separator-color: #c5cae9; + --group-header-color: #3f51b5; + --footer-foreground-color: #3f51b5; + --citation-label-color: #3f51b5; + --glow-color: #9fa8da; + --title-background-color: #ffffff; + --title-separator-color: #e8eaf6; + + --blockquote-background-color: #f4f5fb; + --blockquote-border-color: #c5cae9; + + --scrollbar-thumb-color: #9fa8da; + --scrollbar-background-color: #f4f5fb; + + /* icons */ + --icon-background-color: #3f51b5; + --icon-foreground-color: #ffffff; + --icon-folder-open-fill-color: #c5cae9; + --icon-folder-fill-color: #e8eaf6; + --icon-folder-border-color: #3f51b5; + --icon-doc-fill-color: #e8eaf6; + --icon-doc-border-color: #3f51b5; + + /* brief member declaration list */ + --memdecl-background-color: #f4f5fb; + --memdecl-foreground-color: rgba(0, 0, 0, 0.7); + --memdecl-template-color: #3f51b5; + --memdecl-border-color: #e8eaf6; + + /* detailed member list */ + --memdef-border-color: #c5cae9; + --memdef-title-background-color: #e8eaf6; + --memdef-proto-background-color: #f4f5fb; + --memdef-proto-text-color: #303f9f; + --memdef-param-name-color: #6d4c41; + --memdef-template-color: #3f51b5; + + /* tables */ + --table-cell-border-color: #9fa8da; + --table-header-background-color: #3f51b5; + --table-header-foreground-color: #ffffff; + + /* labels */ + --label-background-color: #3f51b5; + --label-left-top-border-color: #303f9f; + --label-right-bottom-border-color: #9fa8da; + --label-foreground-color: #ffffff; + + /* navigation bar / tree / menu */ + --nav-background-color: #f4f5fb; + --nav-foreground-color: #3f51b5; + --nav-border-color: #e8eaf6; + --nav-breadcrumb-separator-color: #c5cae9; + --nav-breadcrumb-active-bg: #e8eaf6; + --nav-breadcrumb-color: #3f51b5; + --nav-splitbar-bg-color: #e8eaf6; + --nav-splitbar-handle-color: #9fa8da; + --nav-text-normal-color: #303f9f; + --nav-menu-button-color: #3f51b5; + --nav-menu-background-color: #ffffff; + --nav-menu-foreground-color: rgba(0, 0, 0, 0.7); + --nav-menu-active-bg: #e8eaf6; + --nav-menu-active-color: #3f51b5; + --nav-arrow-color: #c5cae9; + --nav-arrow-selected-color: #9fa8da; + + /* sync icon */ + --sync-icon-border-color: #e8eaf6; + --sync-icon-background-color: #f4f5fb; + --sync-icon-selected-background-color: #e8eaf6; + --sync-icon-color: #c5cae9; + --sync-icon-selected-color: #3f51b5; + + /* table of contents */ + --toc-background-color: #f4f5fb; + --toc-border-color: #e8eaf6; + --toc-header-color: #3f51b5; + + /* search field */ + --search-foreground-color: #909090; + --search-active-color: rgba(0, 0, 0, 0.87); + --search-box-border-color: #c5cae9; + --search-filter-highlight-bg-color: #3f51b5; + --search-results-foreground-color: #3f51b5; + + /* code fragments */ + --fragment-foreground-color: rgba(0, 0, 0, 0.87); + --fragment-background-color: #f8f9fd; + --fragment-border-color: #c5cae9; + --fragment-lineno-background-color: #eef0f7; + --fragment-lineno-foreground-color: rgba(0, 0, 0, 0.54); + --fragment-lineno-link-fg-color: #3f51b5; + --fragment-lineno-link-bg-color: #e8eaf6; + --fragment-lineno-link-hover-fg-color: #3f51b5; + --fragment-lineno-link-hover-bg-color: #c5cae9; + --fragment-copy-ok-color: #2e7d32; + + /* tooltips */ + --tooltip-foreground-color: rgba(0, 0, 0, 0.87); + --tooltip-background-color: rgba(255, 255, 255, 0.95); + --tooltip-arrow-background-color: #ffffff; + --tooltip-border-color: rgba(158, 168, 218, 0.7); + --tooltip-doc-color: #616161; + --tooltip-declaration-color: #2e7d32; + --tooltip-link-color: #3f51b5; + + /* fonts (same stack as the MkDocs site) */ + --font-family-normal: Roboto, system-ui, -apple-system, 'Segoe UI', Ubuntu, 'Noto Sans', sans-serif; + --font-family-monospace: 'Roboto Mono', 'JetBrains Mono', Consolas, Monaco, monospace; + --font-family-nav: Roboto, system-ui, sans-serif; + --font-family-title: Roboto, system-ui, sans-serif; + --font-family-toc: Roboto, system-ui, sans-serif; + --font-family-search: Roboto, system-ui, sans-serif; + --font-family-tooltip: Roboto, sans-serif; + +/* ------------------------------------------------------------------ */ +/* Dark scheme (the "slate" palette of the MkDocs site) */ +/* ------------------------------------------------------------------ */ +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + /* page base */ + --page-background-color: #1e2129; + --page-foreground-color: rgba(255, 255, 255, 0.87); + --page-link-color: #9fa8da; + --page-visited-link-color: #c5cae9; + --page-external-link-color: #7986cb; + + /* index */ + --index-odd-item-bg-color: #262a35; + --index-even-item-bg-color: #1e2129; + --index-header-color: #c5cae9; + --index-separator-color: #3a4150; + + /* header (top app bar) */ + --header-background-color: #1a1d24; + --header-separator-color: #2e3442; + --group-header-separator-color: #3a4150; + --group-header-color: #9fa8da; + --footer-foreground-color: #9fa8da; + --citation-label-color: #9fa8da; + --glow-color: #536dfe; + --title-background-color: #1e2129; + --title-separator-color: #2e3442; + + --blockquote-background-color: #262a35; + --blockquote-border-color: #3a4150; + + --scrollbar-thumb-color: #4c5468; + --scrollbar-background-color: #1e2129; + + /* icons */ + --icon-background-color: #3f51b5; + --icon-foreground-color: #ffffff; + --icon-folder-open-fill-color: #4c5468; + --icon-folder-fill-color: #2e3442; + --icon-folder-border-color: #9fa8da; + --icon-doc-fill-color: #2e3442; + --icon-doc-border-color: #9fa8da; + + /* brief member declaration list */ + --memdecl-background-color: #262a35; + --memdecl-foreground-color: rgba(255, 255, 255, 0.7); + --memdecl-template-color: #9fa8da; + --memdecl-border-color: #2e3442; + + /* detailed member list */ + --memdef-border-color: #3a4150; + --memdef-title-background-color: #262a35; + --memdef-proto-background-color: #1a1d24; + --memdef-proto-text-color: #c5cae9; + --memdef-param-name-color: #ffab91; + --memdef-template-color: #9fa8da; + + /* tables */ + --table-cell-border-color: #4c5468; + --table-header-background-color: #303f9f; + --table-header-foreground-color: #ffffff; + + /* labels */ + --label-background-color: #3f51b5; + --label-left-top-border-color: #303f9f; + --label-right-bottom-border-color: #9fa8da; + --label-foreground-color: #ffffff; + + /* navigation bar / tree / menu */ + --nav-background-color: #1a1d24; + --nav-foreground-color: #9fa8da; + --nav-border-color: #2e3442; + --nav-breadcrumb-separator-color: #3a4150; + --nav-breadcrumb-active-bg: #262a35; + --nav-breadcrumb-color: #9fa8da; + --nav-splitbar-bg-color: #262a35; + --nav-splitbar-handle-color: #4c5468; + --nav-text-normal-color: #c5cae9; + --nav-menu-button-color: #9fa8da; + --nav-menu-background-color: #1e2129; + --nav-menu-foreground-color: rgba(255, 255, 255, 0.7); + --nav-menu-active-bg: #262a35; + --nav-menu-active-color: #9fa8da; + --nav-arrow-color: #3a4150; + --nav-arrow-selected-color: #9fa8da; + + /* sync icon */ + --sync-icon-border-color: #2e3442; + --sync-icon-background-color: #1a1d24; + --sync-icon-selected-background-color: #262a35; + --sync-icon-color: #3a4150; + --sync-icon-selected-color: #9fa8da; + + /* table of contents */ + --toc-background-color: #1a1d24; + --toc-border-color: #2e3442; + --toc-header-color: #9fa8da; + + /* search field */ + --search-foreground-color: #9aa3b5; + --search-active-color: rgba(255, 255, 255, 0.87); + --search-box-border-color: #3a4150; + --search-filter-background-color: rgba(30, 33, 41, 0.85); + --search-filter-foreground-color: rgba(255, 255, 255, 0.87); + --search-filter-border-color: rgba(76, 84, 104, 0.6); + --search-filter-highlight-bg-color: #3f51b5; + --search-results-background-color: rgba(30, 33, 41, 0.95); + --search-results-foreground-color: #9fa8da; + --search-results-border-color: rgba(76, 84, 104, 0.6); + --search-close-icon-bg-color: #5c657a; + + /* code fragments */ + --fragment-foreground-color: rgba(255, 255, 255, 0.87); + --fragment-background-color: #1a1d24; + --fragment-border-color: #3a4150; + --fragment-lineno-background-color: #262a35; + --fragment-lineno-foreground-color: rgba(255, 255, 255, 0.54); + --fragment-lineno-link-fg-color: #9fa8da; + --fragment-lineno-link-bg-color: #2e3442; + --fragment-lineno-link-hover-fg-color: #9fa8da; + --fragment-lineno-link-hover-bg-color: #3a4150; + --fragment-copy-ok-color: #4caf50; + + /* tooltips */ + --tooltip-foreground-color: rgba(255, 255, 255, 0.87); + --tooltip-background-color: rgba(26, 29, 36, 0.95); + --tooltip-arrow-background-color: #1a1d24; + --tooltip-border-color: rgba(76, 84, 104, 0.7); + --tooltip-doc-color: #b0bec5; + --tooltip-declaration-color: #66bb6a; + --tooltip-link-color: #9fa8da; + --tooltip-shadow: none; + + /* fonts (same stack as the MkDocs site) */ + --font-family-normal: Roboto, system-ui, -apple-system, 'Segoe UI', Ubuntu, 'Noto Sans', sans-serif; + --font-family-monospace: 'Roboto Mono', 'JetBrains Mono', Consolas, Monaco, monospace; + --font-family-nav: Roboto, system-ui, sans-serif; + --font-family-title: Roboto, system-ui, sans-serif; + --font-family-toc: Roboto, system-ui, sans-serif; + --font-family-search: Roboto, system-ui, sans-serif; + --font-family-tooltip: Roboto, sans-serif; + } +} + +/* ------------------------------------------------------------------ */ +/* Small Material structural tweaks (both schemes) */ +/* ------------------------------------------------------------------ */ + +/* elevation for the top app bar */ +#top { + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12); +} + +/* medium-weight titles, like Material headlines */ +#projectname { + font-weight: 500; +} + +#projectnumber { + color: var(--memdecl-template-color); +} + +h1.groupheader, +h2.groupheader, +h3.groupheader { + font-weight: 500; +} + +/* rounded search field and breadcrumb chip */ +#MSearchField { + border-radius: 4px; +} + +#nav-path ul { + border-radius: 4px; +} +} \ No newline at end of file