Slides & theming
Every doc is a slide deck — one slide per heading — and six themes that restyle everything, diagrams included.
Slides: one heading, one slide
Any doc renders as a deck with avo slides. Each # or ## heading
starts a new slide and becomes its title. Everything until the next
heading — prose and blocks — stays on that slide. (### and deeper stay in
the slide body.)
# Why now
A sentence of context, then any blocks under this heading.
```drivers
items:
- { title: Slow, body: "p95 hit 2.4s.", icon: clock, accent: amber }
```
# The fix
Next heading → next slide.A normal doc already presents cleanly. To write for slides, keep each heading to one idea: a title plus one strong visual reads better than dense prose.
Layout
Slides lay themselves out: light slides center, full slides top-align, and a slide with substantial prose plus a diagram automatically goes side by side — message left, exhibit right. Diagrams render borderless on the stage, without the card frame pages use.
The text a deck needs
Three things a stage handles differently from a page:
- The action title gets a supporting line. A block's
ledepins under the slide title at a fixed size — the sentence that turns a title into an argument, immune to the fitter that scales the exhibit. - Provenance goes in the footer.
{source: …}on the heading lands beside the deck title and page number, where every consulting exhibit carries it. Under the block it would shrink with the exhibit. - Body copy runs at presentation size — 19px prose, 17.5px list items,
19.5px in a
{split}message column — with the measure still capped, because long lines are harder to follow on a screen, not easier.
A deck with two or more divider bands also grows a tracker in the slide
header: the parts of the deck with the current one lit, so the room always
knows where it is.
Blocks are re-laid-out for the stage, not shrunk onto it: tables and card
layouts take the full slide width with presentation-size type, stacked cards
(slo, okr, stories, envelope, trace) turn into a row across the
stage, and every small label — chips, captions, eyebrows — sits at a
readable floor rather than the size a printed page wants.
Four markers on a heading override the automatics (they're stripped from the displayed title):
| Marker | Effect |
|---|---|
## Title {top} | Force top alignment |
## Title {center} | Force centering |
## Title {bottom} | Force bottom alignment |
## Title {split} | Force the two-column layout — prose left, one visual right |
## Title {source: internal QA, Oct 2026} | Print a source line in the slide footer (and under the heading on the page) |
Good to know
- The
metablock becomes the cover slide. Every other slide gets a footer with the deck title and page number. - Long sections split automatically across slides, keeping their title.
avo buildrenders both views of every doc — the page and a deck — linked by a Doc | Slides toggle. No extra command.
Presentation-style decks
For an executive deck, give every slide the same shape: a claim, one exhibit, a takeaway.
- Write titles as sentences. "Checkout latency is costing us
conversions" — the slide then proves it, and the block's
ledebecomes the supporting line under it. - Open with
scqa— situation, complication, question, answer. The executive summary in the order that argues. - Compare options with
harvey— Harvey balls beat a table of numbers in front of a steering committee, and the weighted footer is computed. - Defend the plan with
scenarios— base, upside and downside against the same drivers. - Use
{split}. Short prose left, exactly one block right. The block is the evidence. - Open each part with a
dividerblock — a clean full-width break. - Give the key metric its own slide with a
bignumberblock. - Close with
takeaways— the 2–4 things the room should remember. - Check a block both ways with
avo comparebefore you build a deck around it — the page card and the slide side by side.
Need the deck as a file? avo pptx writes PowerPoint —
picture-perfect by default, or --editable for native text, tables, and
charts.
The six themes
Set a theme with avo theme:
| Theme | Look |
|---|---|
textbook | Warm classic (default) — cream paper, navy and terracotta |
minimal | Clean white, near-black text, one blue accent |
soft | Modern light — indigo accent, rounded surfaces |
dark | Full dark mode |
teal | Teal with an amber highlight |
slate | Slate gray with a teal highlight |
Themes are CSS-variable overrides, so diagrams recolor along with the text — nothing needs to be regenerated.
Custom themes
A theme file starts from a base theme and overrides any color or font:
avo theme new sunset # scaffold a theme to fill in
avo theme install ./my.theme.json # add a theme file
avo theme use sunset # activate it for this projectThe easiest way to design one is the theme generator on this site: pick colors over a live document and download the file. Full command list: CLI · Config.