Set Up the /presentation Skill
A Claude Code slash command that generates self-contained HTML slide decks. One file, zero dependencies, any browser.
What You're Building
The /presentation skill is a custom slash command for Claude Code. When you type /presentation in a Claude Code session, it generates a complete HTML slide deck from a content brief.
1
Single HTML File
No PowerPoint, no Canva, no external dependencies beyond Google Fonts
12
Slide Components
Title, cards, flow diagrams, comparison tables, stat rows, and more
5
Colour Presets
Or provide your own custom hex codes
The output file includes:
- ▸ Scroll-snap navigation between slides
- ▸ Click-to-advance and keyboard arrow controls
- ▸ Fixed navigation dots
- ▸ Responsive layout for any screen size
- ▸ Print-to-PDF support (Ctrl+P, landscape, one slide per page)
Before You Start
Claude Code installed and authenticated
Claude Code is Anthropic's CLI tool. You need it installed and logged in. This is what runs the skill.
A text editor
You'll be creating markdown and HTML files. VS Code, Notepad++, or any text editor works.
Setup Procedure
Create the directory structure
Claude Code looks for slash commands in a commands folder inside ~/.claude/. Create two directories:
mkdir -p ~/.claude/commands mkdir -p ~/.claude/templates
Windows paths: C:\Users\YourName\.claude\commands\ and C:\Users\YourName\.claude\templates\
Create the boilerplate template
Create a file called presentation-boilerplate.html in ~/.claude/templates/.
This is the component library — a single HTML file that contains the full <style> block with CSS custom properties, every slide layout pattern, the <nav class="nav-dots"> element, and the <script> block for navigation. Claude reads this file at runtime and uses its patterns to assemble your slides.
Your boilerplate should define these slide components:
Title slide
Headline, subtitle, optional tags
Cards (2, 3, or 4 column)
Big number/icon + heading + body
Two-column split
Side-by-side cards or lists
Comparison table
Before/after with rationale column
Flow diagram (3–5 steps)
Horizontal process with arrows
Loop/cycle diagram
6-step circular process
Outcome list
Numbered items with heading + detail
Stat row
Big numbers with labels
Issue / question list
Numbered badges with descriptions
Gap badges
Metrics with left accent border
Big question
Single provocative italic question
Closing slide
Summary statement or call to action
Tip: Don't know where to start? Open a Claude Code session and ask: "Create me a presentation boilerplate HTML file with scroll-snap navigation, 12 slide component types, CSS custom properties for theming, and print-to-PDF support." Save the output to ~/.claude/templates/presentation-boilerplate.html.
Each slide in the boilerplate uses a data-slide attribute with a sequential index, a .slide-number div with a zero-padded number (01, 02, etc.), and a background class like .slide--primary, .slide--secondary-1, or .slide--grey.
Create the skill file
Create ~/.claude/commands/presentation.md. This is the instruction file Claude follows when you invoke the command.
Start the file with a pointer to your boilerplate:
# Presentation Builder Load the boilerplate template before proceeding: - `~/.claude/templates/presentation-boilerplate.html`
Then define the workflow. The skill file should instruct Claude to follow these five steps:
Step 1: Parse the brief
Extract from the user's input:
- ▸ Topic — what is the presentation about?
- ▸ Audience — who will see it?
- ▸ Slide count — how many? (default 8–12)
- ▸ Content outline — any specific points or structure
If the user typed /presentation with no arguments, ask for details interactively — one question, not five.
Step 2: Clarify colours (mandatory)
Present two options:
Option A — Choose a preset palette:
Option B — Custom colours: Ask for 5 hex codes:
- Primary (dark background) — title slides, key sections
- Accent (highlights) — emphasis, bullet markers, active nav dots
- Secondary 1 (alternate dark bg) — secondary sections
- Secondary 2 (tertiary dark bg) — variant slides
- Secondary 3 (supporting colour) — additional backgrounds, flow icons
Claude auto-derives --accent-light, --support-light, --grey-bg (#F2F2F2), and --primary-90 from these.
Step 3: Clarify structure (if needed)
If the brief already implies a clear structure, skip this. Otherwise, recommend slide types from the component library based on the content. Don't list all 12 mechanically — use judgement.
Step 4: Build the HTML
Instruct Claude to:
- ▸ Copy the full
<style>block from the boilerplate, substituting chosen colours into the CSS custom properties - ▸ Include the
<nav class="nav-dots">element (always) - ▸ Assemble slides using only the component patterns from the boilerplate
- ▸ Copy the full
<script>block exactly — do not modify the JavaScript - ▸ Only include slide types actually used — no empty templates
- ▸ Alternate dark and light backgrounds for visual rhythm
Step 5: Save and confirm
Ask the user where to save. Default to the current directory with a kebab-case filename (e.g., q1-board-update.html). Report: file path, slide count, colour palette used, and a reminder to open in browser.
Optional: Add a brand logo
If you want your logo on the title and closing slides, convert it to a base64 data URI and save it as a text file in your templates folder (e.g., ~/.claude/templates/my-logo-b64.txt).
Add a step in your skill file that reads this file and inserts an <img> tag as the first child inside the slide section:
<img src="[DATA_URI]" alt="Your Brand"
height="80"
style="width: auto; flex-shrink: 0;
align-self: flex-start;
margin-bottom: 20px;"> Why base64? The output is a single self-contained HTML file. No external image references means it works offline, in email attachments, and prints cleanly to PDF.
Test it
Open Claude Code and run:
/presentation "Test Deck" 4 slides for myself
Claude should:
- ▸ Ask you to choose a colour palette
- ▸ Generate a 4-slide HTML file
- ▸ Save it and tell you the file path
Open the file in your browser. Check that:
- ▸ Arrow keys navigate between slides
- ▸ Navigation dots appear and are clickable
- ▸ Ctrl+P shows a landscape print preview with one slide per page
Usage Examples
/presentation "Q1 Board Update" 8 slides for executive team
/presentation SIA system design review for the project team
/presentation
(no arguments — Claude asks you for details interactively)
Want More Resources Like This?
Unleash AI members get access to frameworks, templates, live workshops, and hands-on guidance — all included.
Join Unleash AI