Themes — Light/Dark Mode and Document Typography Themes
Rho has two layers of "theme," and they govern different things: the app theme (light / dark) dresses the application shell; document themes dress a single document — its typefaces, palette, and page rhythm. The first is your preference. The second is the author's voice: a document with
theme:in its frontmatter looks the same in anyone's Rho.
App theme: Light / Dark
| How to switch | Where |
|---|---|
| Ctrl+Shift+T | One keystroke, any time |
| Settings › Appearance | The Light / Dark segmented control |
| Command Palette | Ctrl+Shift+P, search theme |
Your choice is remembered across launches. The switch is instant and global — including Mermaid diagrams and Vega charts inside documents, which re-render to match, so you never get white-background charts stranded on a dark page.
Font size
Not strictly a theme, but it's the same question — "is this comfortable to read?":
- Range 12–28px, steps of 2, default 16.
- Ctrl+= bigger / Ctrl+- smaller / Ctrl+0 back to default.
- Or move your mouse toward the document's top-right corner and the floating − / + control fades in.
Font size scales the document body only; the app chrome (side bars, menus) stays put.
Document themes: one frontmatter line, a whole new character
Add one line to the YAML frontmatter at the top of a document:
---
theme: kami-parchment
---
The whole document instantly wears a complete typographic design — typefaces, palette, spacing, rules, the works. Six ship built in:
| Theme | Character |
|---|---|
kami-parchment |
Ink on warm paper: a single serif carrying every level, ink-blue accents — reads like a printed little magazine |
magazine-poster |
Magazine poster: big headlines, bold contrast, layout tension |
eng-runbook |
Engineering runbook: calm, monospaced, information density first |
data-report |
Data report: a chart-friendly, formal report voice |
web-proto-editorial |
Editorial prototype: modern web-magazine typesetting |
animal-crossing-cozy |
Cozy and rounded: soft corners and an easygoing palette |
A few things worth knowing:
- The theme travels with the document, not with you.
theme:is part of the document's frontmatter — share the file, switch machines, the look holds. - It styles the document body only; the app shell (side bars, tabs, settings) is untouched.
- Fonts work offline: theme typefaces ship inside the app, never fetched from the network — a Rho document renders identically with the cable unplugged.
- Typos can't break anything: an unknown
theme:value is quietly ignored and the document falls back to default styling. In any other Markdown reader it's just one harmless frontmatter line.
How themes work (and custom themes)
Under the hood, each document theme is a preset of CSS custom properties — a full set of design variables for background, text, accent, font stacks, radius, column width — applied to the document rendering area. That's why switching is so clean: the values change, the document's structure doesn't.
Custom themes aren't open yet — theme: recognizes only the six built-ins above. The CSS-variable architecture is exactly the door being kept open for them; stay tuned.
While we're here: layout full-width mode
Frontmatter has one more layout-related key:
---
layout: canvas
---
By default a document renders as a centered reading column (about A4 feel); layout: canvas (or freeform) renders it edge to edge — good for wide tables, big charts, and dashboard-like content. theme and layout combine freely.
Quick reference
| To do | How |
|---|---|
| Switch light / dark | Ctrl+Shift+T, or Settings › Appearance |
| Adjust font size | Ctrl+= / Ctrl+- / Ctrl+0, or the top-right floating control |
| Give a document a typography theme | theme: <name> in frontmatter (6 built-ins) |
| Full-width layout | layout: canvas in frontmatter |
| Edit frontmatter | Edit mode → slide the bottom-right Raw switch to source mode |