Loading...
Searching...
No Matches
doxyYoda — A Modern Doxygen Theme

Overview

doxyYoda is a modern Doxygen theme that replaces the default table-based layout with CSS Grid, a Solarized color palette, and full dark mode support.

It is built with Sass, managed via Pixi, and draws inspiration from Shibuya and m.css.

This site is itself the demo — every page you see is rendered by doxyYoda. Browse the Modules for class hierarchies and graphs, or read on for the feature tour.

Key Features

Feature Description
Solarized palette Warm, low-contrast colors that are easy on the eyes — light and dark variants
Dark mode Toggle with the ☾ button, or let your OS decide via prefers-color-scheme
CSS Grid layout Responsive layout with optimal reading width — no tables
Frosted glass navbar Sticky translucent navigation bar with backdrop-filter
Foldable code blocks Inline source is wrapped in <details> — stays out of your way until needed
Copy to clipboard One-click copying on every code block
MathJax 3 Beautiful math rendering: \( e^{i\pi} + 1 = 0 \)
Modern admonitions Color-coded notes, warnings, todos, bugs — 10 types
Graphviz diagrams Inheritance graphs, collaboration diagrams, include graphs
Pixi build system Reproducible builds — pixi run demo and you're done

Live Examples

The best way to see doxyYoda in action is to explore this site:

Class Hierarchies & Graphs

The Geometry Shapes module defines a Shape base class with Circle, Rectangle, Square, and Triangle. Open any class page to see:

  • Inheritance diagrams — rendered via Graphviz (SVG, interactive)
  • Collaboration graphs — showing member relationships
  • Member documentation — parameters, return values, pre/post conditions
  • Inline source — foldable, with copy button and syntax highlighting

Try it: geometry::Shape, geometry::Circle, geometry::Square

Templates & Containers

The Container Utilities module demonstrates template documentation:

Grouped Functions

The Algorithms module shows grouped free functions:

Mathematics

The yoda::Vec2 class and yoda::lerp function demonstrate MathJax rendering. Here's the Gaussian integral:

\[ \int_{-\infty}^{\infty} e^{-x^2} \, dx = \sqrt{\pi} \]

Admonitions

doxyYoda styles all 10 Doxygen admonition types with distinct colors:

Note
This is a note — informational context and tips.
Warning
This is a warning — things that can go wrong.
Attention
Pay attention — critical information.
Todo
A todo item — tracked in the global Todo List.
Bug
A known bug — tracked in the global Bug List.
Deprecated
This API is deprecated — please migrate.
Precondition
Precondition: \( x > 0 \)
Postcondition
Postcondition: the return value is non-negative.
Invariant
The container size never exceeds capacity.

See the Feature Tour for the full set including @test.

Code Blocks

A C++ snippet with syntax highlighting, copy button, and folding:

template <typename T>
T sum(const std::vector<T>& values) {
T total{};
for (const auto& v : values) {
total += v;
}
return total;
}

A shell snippet:

git clone https://github.com/HaoZeke/doxyYoda
cd doxyYoda
pixi run demo

Quick Start

Try the Demo

git clone https://github.com/HaoZeke/doxyYoda
cd doxyYoda
pixi run demo
# Open demo/build/html/index.html

Integrate into Your Project

Add to your Doxyfile:

HTML_HEADER = path/to/doxyYoda/src/html/header.html
HTML_FOOTER = path/to/doxyYoda/src/html/footer.html
HTML_EXTRA_STYLESHEET = path/to/doxyYoda/src/styles/doxyYoda.css
LAYOUT_FILE = path/to/doxyYoda/src/xml/doxyYoda.xml

See the Customization Guide for detailed instructions.

Typography

doxyYoda uses a carefully curated font stack:

Role Font Source
Body text Crimson Text Google Fonts
Headings Maiden Orange Google Fonts
Code Hack jsDelivr CDN
Serif (optional) Vollkorn Google Fonts

All fonts are loaded via CDN — no local installation needed.

SCSS Architecture

src/styles/scss/
+-- main.scss # Entry point (@use imports)
+-- _variables.scss # CSS custom properties (light + dark)
+-- _base.scss # Reset and global styles
+-- _fonts.scss # Font imports (CDN)
+-- _colors.scss # Color application
+-- _layout.scss # CSS Grid (rgoswami.me pattern)
+-- _typography.scss # Headings, links, member docs
+-- _code.scss # Code blocks, syntax, copy button
+-- _doxynav.scss # Navbar, sidebar, breadcrumbs
+-- _directives.scss # Admonitions (note, warning, etc.)
+-- _tooltip.scss # PowerTip tooltips

Dark Mode

doxyYoda supports dark mode through two mechanisms:

  1. Automatic: respects prefers-color-scheme: dark from your OS
  2. Manual toggle: click the &#9790; button in the navbar

The preference persists in localStorage. The entire color system uses CSS custom properties, so the switch is instant with no flash of unstyled content.

License

Apache License 2.0. See the GitHub repository for details.

Acknowledgments

Created by Rohit Goswami as part of SymEngine's Google Season of Docs 2020. Inspired by m.css by Vladimír Vondruš and Shibuya by Hsiaoming Yang.