revealjs-presenter
Generate RevealJS HTML presentations with reliable layout, professional typography, and effective visual communication. Use when creating slide decks, pitch presentations, technical talks, or any reveal.js output.
By jwynia · 377 installs
npx skills add jwynia/agent-skills --skill revealjs-presenter
Source repository · Upstream listing
RevealJS Presenter Skill
When to Use This Skill
Use this skill when:
Creating a RevealJS presentation from content/outline
Converting document content into slide format
Building a pitch deck, technical talk, or educational presentation
User requests "slides," "presentation," "deck," or mentions RevealJS
This skill produces a single self contained HTML file with embedded CSS and CDN references.
Part 1: RevealJS Foundation
1.1 Required Configuration
Always initialize RevealJS with these settings:
Why these values:
center: true — Let RevealJS handle vertical centering. Do not fight this with flexbox on sections.
width: 1920, height: 1080 — Standard HD ratio. Content scales automatically.
margin: 0.08 — Provides breathing room at viewport edges.
transition: 'fade' — Professional, non distracting. Avoid 'zoom', 'convex', etc.
1.2 Base HTML Structure
1.3 Base CSS Reset
Apply these styles to normalize RevealJS behavior:
Part 2: Theme Selection
Themes are complete specifications. Before generating any slides, read the appropriate theme file from the themes/ directory. Themes control both visual styling AND content strategy.
2.1 What Themes Control
Each theme file specifies:
1. CSS Variables — Colors, typography sizes, spacing, fonts
2. Typography Application — How CSS variables apply to elements
3. Word Limits — Maximum words per slide type
4. Slide Type Preferences — Which types to prefer, use sparingly, or avoid
5. Content Rhythm — Impact vs information slide ratios
6. Structure Rules — Max bullets, card counts, splitting guidance
2.2 Default Theme
Use themes/bold.md unless the user specifies otherwise.
2.3 How to Apply a Theme
1. Read the entire theme file before generating slides
2. Follow the theme's Content Strategy section for word limits and slide type choices
3. Include all CSS from the theme's variables and typography sections
4. Combine with the base CSS reset from Part 1.3
2.4 Available Themes
Theme File Content Approach
Bold themes/bold.md Minimal words, dramatic impact, simple structures, 40%+ impact slides
Corporate themes/corporate.md Information dense, detailed content, complex structures allowed
Future themes may include minimal.md (clean, understated design).
Part 3: Core Components
3.1 The Bar (Accent Element)
A horizontal bar used as a visual anchor and section indicator.
Usage:
3.2 Content Container
For slides that need width constraint:
3.3 Card Component
3.4 Grid Layouts
3.5 Slide Footer
A persistent footer element for branding or context. Placed outside the slides container.
HTML placement (before the reveal div):
When to use: Corporate presentations, conference talks, any context where persistent branding helps.
Mistakes: Too much information, large font size, distracting from content.
Part 4: Slide Types
Each slide type includes: HTML structure, when to use, and common mistakes.
4.1 Title Slide
The opening slide. Sets tone and context.
When to use: Opening slide only.
Mistakes: Too much text, including agenda, adding logos/footer clutter.
4.2 Section Break
Transitions between major sections. Creates visual pause and establishes section identity through color.
Color rotation for visual rhythm:
Vary section break backgrounds to create distinct visual identities for each major topic. Suggested rotation:
Section Background Bar Accent
1 (Problem/Context) var( bg dark) bar accent 3
2 (Solution) var( accent 1) bar accent 2
3 (Details) var( accent 2) default
4 (Future/CTA) var( bg dark) bar accent 2
Example with accent background:
When to use: Between major sections (3 5 per presentation typically).
Mistakes: Using for every topic change, adding content beyond the section name, using the same color for all section breaks.
4.3 Single Word / Phrase
Maximum impact. One idea, massive type.
When to use: Emphasizing a key concept, creating a moment, transitional pause.
Mistakes: Overuse (more than 2 3 per presentation), using for concepts that need explanation.
4.4 Hero Stat
The dramatic data moment. ONE number dominates.
When to use: Your most important data point. Usually only 1 2 per presentation.
Mistakes: Using hero treatment for every stat, burying in other content.
4.5 Standard Stat
Prominent data, but not the hero moment.
When to use: Supporting data points, secondary metrics.
Mistakes: Making all stats the same size, no context labels.
4.6 Stat Cluster
2 3 related statistics shown together for comparison.
When to use: Comparing related metrics, showing before/after, dashboard style summary.
Mistakes: More than 3 stats, mixing unrelated data.
4.7 Quote
Attributed quotation with visual emphasis.
When to use: Expert authority, memorable phrases, user testimonials.
Mistakes: Long quotes (aim for under 20 words), missing attribution.
4.8 Single Assertion (Impact Statement)
A dramatic statement that deserves its own slide. Uses impact typography with optional inline highlights.
With hero treatment:
With context label:
When to use: Thesis statements, paradigm shifts, key assertions that define your argument. The moments where you want the audience to pause and absorb a single idea.
Mistakes: Overuse (2 4 per presentation max), adding supporting text, using for minor points, forgetting highlights for emphasis.
4.9 Assertion + Evidence
The workhorse slide. Clear claim supported by visual proof.
When to use: Most content slides. Default choice when presenting information.
Mistakes: Burying assertion in body text, no visual evidence, bullet lists instead of visuals.
4.10 Card Grid (2 4 items)
Multiple items with equal visual weight.
When to use: Features, benefits, options, categories—items with equal importance.
Mistakes: More than 4 items (split into multiple slides), walls of text in cards.
4.11 Timeline / Phases
Sequential progression over time.
When to use: Project phases, historical progression, step by step processes.
Mistakes: More than 5 phases (simplify or split), too much detail per phase.
4.12 Comparison (A vs B)
Direct contrast between two options or states.
When to use: Problem/solution, old/new, us/them comparisons.
Mistakes: Unfair comparisons, too much text, more than 2 items.
4.13 Icon Grid
Concept cluster with visual anchors. Icons provide scannable landmarks.
When to use: Principles, values, feature categories—abstract concepts that benefit from visual anchors.
Mistakes: Generic icons that don't aid understanding, too many items.
4.14 Code Block
For technical presentations. Syntax highlighting required.
CSS for code blocks:
When to use: Technical talks, API demos, implementation examples.
Mistakes: Too much code (max ~15 lines), no syntax highlighting, showing boilerplate.
4.15 Image with Caption
Full or large image with minimal text.
When to use: Product screenshots, photos, diagrams that need to dominate.
Mistakes: Small images with lots of surrounding text, poor image quality.
4.16 Breath Slide
Minimal content. Creates pause, lets audience process.
When to use: After dense sections, before major transitions, emphasizing key messages.
Mistakes: Adding more content, using too frequently.
4.17 Closing / CTA
Final slide. Clear next step.
When to use: Final slide.
Mistakes: No clear CTA, too much contact info, "Questions?" as the only content.
Part 5: Inline Visualizations
For presentation specific diagrams that don't require external tools.
5.1 Process Flow (Horizontal)
5.2 Simple Bar Chart (SVG)
5.3 Concept Relationship (Hub and Spoke)
5.4 When to Use External Tools
Use inline SVG/HTML for:
Simple process flows (3 5 steps)
Basic bar/line comparisons
Concept diagrams (hub spoke, venn like)
Icon based illustrations
Use external tools (Chart.js, D3, Mermaid) for:
Data with more than 5 7 points
Interactive visualizations
Complex relationships
Precise data representation
Part 6: Universal Content Principles
These principles apply regardless of theme. For specific word limits, slide type preferences, and rhythm rules, consult the theme file (Part 2).
6.1 One Concept Per Slide
Every slide should answer: "What is the ONE thing I want them to take from this?"
If you can't answer in one sentence, split the slide.
6.2 Assertion Evidence Structure
Replace bullet points with:
1. Assertion: Complete sentence stating the point (as headline)
2. Evidence: Visual that supports the assertion
Instead of:
Use three separate slides:
"Development time drops 50% with automated tooling" + chart
"Defect rates decreased after implementation" + data
"Total cost of ownership reduced by $2M annually" + comparison
6.3 Slide Count Guidance
1 slide per minute of speaking time is a rough maximum
20 minute talk = 15 25 slides typical
More slides with less content each is better than fewer dense slides
Section breaks and breath slides count toward total
6.4 Progressive Disclosure
For complex information, reveal sequentially using RevealJS fragments:
6.5 Word Limits and Rhythm
Consult the theme file for specific word limits per slide type and content rhythm rules. These vary significantly between themes:
Bold theme: Strict limits (~12 words for assertions), 40%+ impact slides
Corporate theme: Generous limits (~50 words for assertion+evidence), information dense
Part 7: Anti Patterns
7.1 Presentation Anti Patterns
The Data Dump
Every slide full of data without interpretation.
Fix: One insight per slide. State conclusion first.
The Script Reader
Slides contain the speaker's full script as bullet points.
Fix: Slides show what you can't say; you say what you can't show.
The Template Trap
Generic template applied without considering how design serves message.
Fix: Start from communication need, not template options.
The Animation Circus
Transitions and effects on everything.
Fix: Animation only for progressive disclosure or emphasis. Default to none.
Bullet Point Disease
Every slide is a bullet list.
Fix: Use assertion evidence structure. If you need a list, question whether it needs to be a slide.
7.2 RevealJS Specific Anti Patterns
Fighting the Framework
Adding flexbox centering when center: true is set, or vice versa.
Fix: Choose one approach. This skill uses center: true with section level text alignment.
Viewport Unit Escalation
Using vw units for font sizes without upper bounds, leading to absurdly large text.
Fix: Always use clamp() with rem based maximums: clamp(4rem, 10vw, 8rem) .
Fixed Pixel Dimensions
Hardcoding pixel values for fonts and spacing that don't scale.
Fix: Use CSS variables with clamp() for responsive sizing.
Ignoring Slide Dimensions
Forgetting that RevealJS scales content to fit configured dimensions.
Fix: Design for 1920×1080. Test at multiple window sizes.
Background Color Inline Styles
Using style="background: color" on sections instead of data background color .
Fix: Use data background color="var( bg dark)" for RevealJS to handle properly.
Typography Utility Specificity
Creating utility classes like .stat , .label , .lead without sufficient specificity.
Problem: .reveal p has higher specificity (class + element) than .stat alone (just class), so typography utilities on <p elements get overridden.
Fix: Always prefix typography utilities with .reveal : use .reveal .stat , .reveal .label , .reveal .lead , etc. This ensures they override the base .reveal p styles.
Color Utility Specificity
Creating color ut