Getting started
Cheatsheet · your first deck in 5 components
The five elements you actually need for a 10-minute talk. Copy, paste, ship. Read the full Component library page later, when you know what to look for.
Rikiki has 36 components but you do not need them on day one. Pick these five, give your talk, come back later for the rest. Each example below is self-contained · drop it inside <deck-root> in the order that fits your story.
1 · Cover
The opening slide. Title, optional sub-title, optional brand + speaker. It comes first.
<deck-cover brand="my-talk · 2026" speaker="Jane">
<h1>Hello, <span class="accent">world</span>.</h1>
<p class="sub">A 12-min talk about the thing.</p>
</deck-cover>2 · Section
Use this every time you want a chapter break. With nav="2d" on<deck-root> it also tells the framework where the 2D navigation columns are · ←/→ jumps from one<deck-section> to the next, ↑/↓ walks the slides inside. Without it, arrows stay linear.
<deck-section num="02">
<h1>Why this matters</h1>
</deck-section>3 · Hero with code
The workhorse · a title, a one-line lead, then one focal block (code, diagram, big number). Most body slides take this shape.
<deck-feature eyebrow="Module">
<h1 slot="title">The whole point</h1>
<p slot="lead" class="lead">One sentence that frames the slide.</p>
<deck-code lang="ts" hero>
const greet = (name: string) => `Hello, ${name}`;
</deck-code>
</deck-feature>4 · Split for comparison
Two columns · before / after, problem / fix, A / B. Pass cols="1-1"for equal columns or "1-2" for an asymmetric split.
<deck-split cols="1-1">
<h1 slot="title">Two takes</h1>
<deck-card slot="left" color="red">
<h3>Before</h3>
<p>Bundler explodes.</p>
</deck-card>
<deck-card slot="right" color="green">
<h3>After</h3>
<p>Ship plain HTML.</p>
</deck-card>
</deck-split>5 · Hook for the punch line
Close on a dark slide with one big sentence the audience leaves with. Use it once or twice per deck · it loses weight when it is everywhere.
<deck-takeaway kicker="Take-home">
<deck-punch size="display">Source = output.</deck-punch>
<p class="caption on-dark">A deck is a folder.</p>
</deck-takeaway>Putting it together
That is a complete deck. Save it as index.html, serve the folder as in Getting started, give the talk. Speaker notes go in a <deck-notes> inside a slide; pressing P opens a second window that shows them next to the current and next slide.
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="rikiki/themes/rikiki.css">
<script type="module" src="rikiki/dist/index.js"></script>
</head>
<body>
<deck-root>
<deck-cover brand="my-talk · 2026" speaker="Jane">
<h1>Hello, <span class="accent">world</span>.</h1>
<p class="sub">A 12-min talk about the thing.</p>
</deck-cover>
<deck-section num="02">
<h1>Why this matters</h1>
</deck-section>
<deck-feature eyebrow="Module">
<h1 slot="title">The whole point</h1>
<p slot="lead" class="lead">One sentence that frames the slide.</p>
<deck-code lang="ts" hero>
const greet = (name: string) => `Hello, ${name}`;
</deck-code>
</deck-feature>
<deck-split cols="1-1">
<h1 slot="title">Two takes</h1>
<deck-card slot="left" color="red">
<h3>Before</h3>
<p>Bundler explodes.</p>
</deck-card>
<deck-card slot="right" color="green">
<h3>After</h3>
<p>Ship plain HTML.</p>
</deck-card>
</deck-split>
<deck-takeaway kicker="Take-home">
<deck-punch size="display">Source = output.</deck-punch>
<p class="caption on-dark">A deck is a folder.</p>
</deck-takeaway>
</deck-root>
</body>
</html>Next
When you outgrow these five:
- Anatomy of a slide · the three layers every slide is built from.
- For a callout / warning box ·
<deck-callout> - For a big metric on the cover ·
<deck-stat> - For markdown body text ·
<deck-md> - For a flowchart ·
<deck-mermaid> - For speaker notes and the presenter window ·
<deck-notes>, then press P - The full reference · Component library