Furo
A clean, minimal, and customizable Sphinx documentation theme
Repository Health
Technical Analysis
Furo is a clean and customizable theme for the Sphinx documentation system. It is intentionally minimal, keeping the focus on content while providing a modern, responsive three-column layout that adapts to phones, tablets, and desktops.
Furo ships with a built-in light and dark mode that respects the reader’s system preference, and it is theming-friendly, exposing CSS variables so authors can adjust colors and fonts without forking templates. It is one of the most popular modern Sphinx themes for Python and open-source project documentation.
What You Get
- A responsive three-column documentation layout that adapts to any screen size
- Built-in light and dark modes that follow the reader’s system preference
- CSS-variable theming for colors and fonts without editing templates
- A minimal, content-first design registered automatically as a Sphinx theme
Common Use Cases
- Giving Python library and project documentation a clean, modern look
- Providing readers with an accessible dark mode out of the box
- Customizing documentation branding through CSS variables and theme options
Under The Hood
Architecture - Furo is packaged under src/furo, with the compiled theme templates and static assets under src/furo/theme and the source styles/scripts under src/furo/assets. It registers itself with Sphinx as an HTML theme and layers Jinja templates over Sphinx’s base to produce its three-column structure, while a small Python layer wires in theme options and context. The visual system is driven by CSS custom properties, which is what makes color/font theming possible without template overrides.
Tech Stack - Unusually for a Sphinx theme, Furo has a real frontend build: styles are authored in Sass and bundled via webpack with PostCSS (see webpack.config.js, postcss.config.js, and package.json), then shipped as compiled assets. The Python side is packaged via pyproject.toml, and development tasks are orchestrated with nox (noxfile.py).
Code Quality - The repository includes a tests/ directory, a nox-based automation setup, and a documented docs site, reflecting a well-maintained project. Its dual Python + JavaScript toolchain is cleanly separated between authored assets and the compiled theme distributed to users.
API Design - For end users the API is declarative: set html_theme = 'furo' and optionally supply html_theme_options (for example to tweak sidebar behavior or announcement banners) plus CSS-variable overrides for colors and fonts. Dark mode works with zero configuration, so the default experience is excellent while deeper customization remains straightforward.