Theme Gallery#
A visual showcase of the theme’s configurable options. Each section below shows what the option controls and how to set it.
Colour Schemes#
The color_scheme option controls how *emphasis* and **strong** text
are rendered. Three schemes ship with the theme.
Default — Emerald / Rose#
html_theme_options = {"color_scheme": "default"}
The default scheme uses Emerald (#059669) for emphasis and Rose
(#e11d48) for strong. Here’s how they look in context:
The Bellman equation provides a recursive decomposition of the value function \(V(x)\) into a flow payoff and a continuation value.
Element |
Light Mode |
Dark Mode |
|---|---|---|
Emphasis |
|
|
Strong |
|
|
Links |
|
|
Academic — Slate / Burgundy#
html_theme_options = {"color_scheme": "academic"}
A subdued palette inspired by printed textbooks:
Element |
Light Mode |
Dark Mode |
|---|---|---|
Emphasis |
|
|
Strong |
|
|
Minimal — No Colour Emphasis#
html_theme_options = {"color_scheme": "minimal"}
Emphasis and strong inherit the normal text colour. Relies purely on italic/bold styling — suitable for print-style documents.
Dark Mode#
The dark_mode option controls the theme toggle behaviour.
"auto" (Default)Respects the OS / browser prefers-color-scheme setting. The toggle button
cycles: auto → light → dark → auto.
"toggle"Starts in light mode. The toggle button switches between light and dark.
User preference is saved in localStorage.
"light"Forces light mode. The toggle button is hidden.
"dark"Forces dark mode. The toggle button is hidden.
html_theme_options = {"dark_mode": "auto"} # or "toggle", "light", "dark"
Dark Mode Palette#
The dark theme uses a Zinc-based palette for a warm neutral feel:
Token |
Value |
Usage |
|---|---|---|
|
|
Page background |
|
|
Cards, code blocks |
|
|
Hover states |
|
|
Borders |
|
|
Body text |
|
|
Secondary text |
Table of Contents#
The right-hand-side table of contents panel has three options:
html_theme_options = {
"toc_sticky": True, # Pins the ToC while scrolling
"toc_autoexpand": True, # Auto-expand/collapse sections on scroll
"toc_collapsible": True, # Allow collapsing the ToC panel entirely
}
Scroll-spy — highlights the current section as you scroll
Auto-expand — nested subsections expand/collapse to match scroll position
Sticky — the panel stays fixed as content scrolls
Collapsible — click the panel header to collapse (content area expands)
Typography#
The theme ships with three font stacks loaded via Google Fonts CDN:
Role |
Font |
Fallback |
|---|---|---|
Headings |
Inter |
system-ui, sans-serif |
Body |
Source Serif 4 |
Georgia, serif |
Code |
JetBrains Mono |
Fira Code, Consolas, monospace |
Disable CDN loading if you prefer system fonts or self-hosted:
html_theme_options = {"google_fonts": False}
Primary Colour — Indigo#
The primary colour (links, active states, focus rings) is Indigo:
Token |
Light |
Dark |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
To change the primary colour, override the CSS custom properties:
:root {
--st-color-primary: #059669;
--st-color-link: #059669;
--st-color-link-hover: #047857;
}
Code Blocks#
html_theme_options = {"code_style": "theme"} # or "pygments"
"theme"— the theme provides its own syntax colours (optimised for both light and dark mode)"pygments"— falls back to the Pygments style set inconf.py
CSS Custom Properties — Full List#
All visual properties can be overridden. Add a custom CSS file:
html_static_path = ["_static"]
html_css_files = ["custom.css"]
Then in _static/custom.css:
:root {
/* Layout */
--st-content-max-width: 52rem;
--st-toc-width: 16rem;
--st-topbar-height: 2.5rem;
/* Colours */
--st-color-primary: #2563eb;
--st-color-em: #0d9488;
--st-color-strong: #d97706;
/* Typography */
--st-font-heading: 'Poppins', sans-serif;
--st-font-body: 'Lora', serif;
--st-font-code: 'Fira Code', monospace;
}
See the Configuration page for the complete options table
and PLAN.md Appendix B for all --st-* tokens.