orz-slides — layouts & syntax
A reference for the deck format: structure templates, a small column/row layout grammar, regions, floats, and per-slide options. Part of the orz editable-document family.
orz-slides-skills/SKILL.md) and describe what you want — “make this a two-column slide with a
figure on the right,” “turn these notes into a section divider then three bullet slides.” This
page is the reference the agent (and curious humans) can draw on; skim it, don't memorize it.
The quick way: the layout picker
In the editor, open the layout button (the grid icon) and pick a layout. On a blank slide it drops the skeleton straight in; on a slide that already has content it inserts the new layout and tucks your old content into a comment so you can copy-paste it into place. The picker offers the most common layouts:
Title · Section · Closing
Cover, divider, and thank-you slides — large centered or left-aligned type, no regions to fill.
Bullets · Outline
A titled slide with a list, or an agenda. The everyday content slide.
Two columns · Main + side · Three columns · Two rows · Quad
Multi-region layouts. Each region is filled with a <!-- @name --> marker.
Everything below is what those skeletons expand to — reach for it when you want a custom split, a floating figure, a background colour, or a template variant.
Deck settings
One <!-- deck --> block at the very top sets defaults for the whole deck.
<!-- deck title: My presentation theme: paper # paper · executive · chalk · sage · neon · poppy · architect … ratio: 16:9 # or 4:3 author: Dr. Yu Wang footer: My talk · 2026 # shown on normal slides (not title/closing) transition: fade # reveal.js transition: none · fade · slide · convex … -->
Structure templates
Templates are ready-made slides with fixed structure and several visual variants (add
v=2, v=3, …). The first # heading is the main line, ## the
subtitle, and any remaining text is the meta line.
| Template | Variants | For |
|---|---|---|
title | v=1–6 | Cover / title slide |
section | v=1–4 | Section divider |
outline | v=1–3 | Agenda / table of contents (a list) |
closing | v=1–3 | Thank-you / questions |
<!-- slide template=title v=2 --> # Controlled Polymerization ## RAFT vs ATRP **Dr. Yu Wang** · 2026 <!-- slide template=section --> # Part II — Methods <!-- slide template=outline --> ## Outline 1. Introduction 2. Methods 3. Results
Layout presets & regions
A normal slide’s first ## heading becomes its title. Add a preset to split the body into
named regions; fill each region with a <!-- @name --> marker. Text before the
first marker goes into the primary region.
| Preset | Regions | Default ratio |
|---|---|---|
| (none) | single body | — |
2col | left right | 1/1 |
3col | left mid right | 1/1/1 |
2row | top bottom | 1/1 |
main-side | main side | 2/1 |
quad | tl tr bl br | 2×2 |
Add a ratio after the preset, e.g. 2col 3/2 or main-side 1/2.
<!-- slide 2col 3/2 -->
## Results
<!-- @left -->
- Accuracy 92%
- Precision 88%
<!-- @right -->
{{smiles C(=S)(SC)SC}}
Custom splits (advanced)
For anything the presets don’t cover, write the split directly. col and row take a
track list (numbers become fr units; auto, %, and px also work)
and a { … } list of regions or nested splits — to any depth.
<!-- slide row auto/1 { header; col 1/1 { a; b } } -->
## Dashboard
<!-- @header -->
Top banner across the full width.
<!-- @a -->
Left metric.
<!-- @b -->
Right metric.
Floats place a free box anywhere over the slide (outside the grid):
<!-- @float left=58% top=22% w=36% h=44% z=2 --> > **Key takeaway:** narrow PDI across all methods.
Speaker notes never appear on the slide:
<!-- @notes --> Remember to mention the control experiment.
Worked examples
Real splits and what they produce. Each box mirrors the slide’s region grid; the source beside it is exactly what you write. (Drawn from the deck’s own layout test set.)
Header band over two columns
<!-- slide row auto/1 { head; col 1/1 { a; b } } -->
## Dashboard
<!-- @head -->
Full-width banner.
<!-- @a -->
Cell A
<!-- @b -->
Cell B
Three columns, the middle one split into two rows
<!-- slide col 1/1/1 { c1; row 1/1 { c2a; c2b }; c3 } -->
## Comparison
<!-- @c1 -->
Column one.
<!-- @c2a -->
Middle top.
<!-- @c2b -->
Middle bottom.
<!-- @c3 -->
Column three.
Sidebar + a main column with its own header
<!-- slide col 1/2 { side; row auto/1 { mainHead; mainBody } } -->
## Topic
<!-- @side -->
Nav / notes.
<!-- @mainHead -->
Main header.
<!-- @mainBody -->
Main body fills the rest.
A floating figure over two columns
<!-- slide 2col --> ## Result <!-- @left --> Background content. <!-- @right --> More content. <!-- @float left=58% top=22% w=36% h=44% --> > **Key takeaway** sits on top of the grid.
Per-slide options
Add these to any <!-- slide … --> marker.
| Option | Meaning |
|---|---|
bg=#0b3d2e | Slide background colour or gradient |
t=fade | Transition for this slide |
fit=scroll | Overflow handling: fit (default), scroll, off |
step | Reveal the slide’s items one click at a time |
class=… / id=… | Custom class or id on the slide |
v=2 | Template variant (with template=) |
<!-- slide 2col bg=#0b3d2e t=fade step -->
Footers & overflow
Footers. The deck’s footer: setting shows at the bottom of every normal
slide (title, section, and closing slides have none). Override it on one slide with a
<!-- @footer --> region:
<!-- slide --> ## A slide with its own footer Body content. <!-- @footer --> Custom footer — this slide only
Overflow. By default a slide’s content
scales down to fit so it never spills off the edge. Change that per slide with
fit=:
| Option | Behaviour |
|---|---|
fit=fit | Default — auto-scale the content down to fit the slide |
fit=scroll | Keep full size; the slide scrolls if it overflows |
fit=off | No scaling, no scroll — content may overflow (you size it yourself) |
Rich content in any region
Region content is orz-markdown, so the full plugin set works right inside a slide — diagrams, charts, chemistry, QR codes, and math:
| Write | Get |
|---|---|
{{mermaid …}} | Mermaid flowcharts & sequence diagrams |
{{chart …}} | Bar / line / pie charts |
{{smiles …}} | Chemical structures (SMILES) |
{{qr …}} | QR codes (click to enlarge) |
$…$ · $$…$$ | KaTeX math (incl. mhchem) |
{{youtube …}} · {{emoji …}} | Video embeds & emoji |
On dark themes (chalk, neon) diagrams and charts sit on a soft light panel so they stay legible.
Presenting
Speaker view — S
A second window with the current and next slide, your <!-- @notes --> speaker notes,
and a clock.
Timer — T
An on-deck elapsed-time timer to keep pace, toggled right on the deck.
Step-reveal & fragments
Add step to a slide marker to reveal its items one click at a time, or mark any element
with {{attrs[.fragment]}} for manual fragments.
Notes, numbers & ratio
<!-- @notes --> never shows on the slide; slide numbers appear while presenting; set
ratio: 16:9 or 4:3 in the deck block.