Agent skill
creating-revealjs-presentations
Creates, customizes, and troubleshoots Quarto Reveal.js presentations with proper SCSS theming, layout patterns, and extensions. Use when authoring .qmd slides or styling with SCSS.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/design/creating-revealjs-presentations
SKILL.md
Purpose
Guide the agent to write production-ready Quarto Reveal.js slides in a single pass:
- Correct YAML configuration
- SCSS theme customization (variables + rules)
- Layout patterns (columns, absolute positioning, backgrounds)
- Extension usage (Font Awesome, embedio, editable)
- Accessibility and maintainability
When to Use This Skill
Use when:
- Creating new
.qmdpresentation files - Writing or modifying SCSS themes for Reveal.js
- Adding extensions (icons, embeds, interactive elements)
- Troubleshooting slide rendering issues
- Converting content into slide format
Do NOT use when:
- Working with Quarto documents that are NOT presentations
- The task involves only HTML/PDF/DOCX output formats
Inputs and Outputs
Inputs:
- User's content requirements (topic, structure, style preferences)
- Existing .qmd files or SCSS to modify
- Design constraints (colors, fonts, branding)
Outputs:
.qmdfiles with proper YAML frontmatter- SCSS files with
/*-- scss:defaults --*/and/*-- scss:rules --*/sections - Extension installation commands when needed
Behavior and Guidelines
YAML Configuration
- Theme layering: Use
theme: [default, styles/custom.scss]— later entries override earlier ones. - Scroll View: Enable with
scroll-view: truefor Reveal.js v5 (Quarto 1.6+). - Title slide backgrounds: Use
title-slide-attributes:withdata-prefixed keys.
SCSS Structure
- Two required sections:
/*-- scss:defaults --*/for variables (colors, fonts, sizes)/*-- scss:rules --*/for CSS rules
- Override specificity: Prefix rules with
.reveal .slideto beat built-in styles. - Background image paths: Use
url("../../../../../assets/...")from compiled CSS location (5 levels up).
Layout Patterns
- Columns: Use
:::: {.columns}with::: {.column width="X%"}children. - Fit text: Wrap with
::: r-fit-textfor auto-sizing headlines. - Stack: Use
.r-stackto overlay elements revealed sequentially. - Absolute positioning: Add
{.absolute top="X" left="Y"}to images/divs. - Vertical center: Use
.centerclass for vertical centering.
Advanced Features
- Fragments: 20+ animation effects (
fade-*,highlight-*,grow, etc.) withfragment-indexordering. - Auto-animate: Automatic transitions between slides using
data-idmatching. - Vertical slides: Create slide stacks with navigation modes (linear/vertical/grid).
- Parallax backgrounds: Scrolling background images for depth effect.
- Presentation sizing: Control dimensions, margins, and scaling.
Extensions
- Font Awesome:
quarto add quarto-ext/fontawesome→{{< fa icon >}} - embedio:
quarto add coatless-quarto/embedio→{{< revealjs file="..." >}} - editable:
quarto add EmilHvitfeldt/quarto-revealjs-editable→ drag/resize in preview
Accessibility
- Background images cannot have alt text — add visible text descriptions.
- Use
title="..."in Font Awesome shortcodes. - Ensure color contrast (avoid pure black/white).
Step-by-Step Procedure
-
Clarify requirements: Ask about topic, slide count, style preferences, required extensions.
-
Set up YAML frontmatter:
- Define
format: revealjswith theme, transitions, slide-number - Add
execute: echo: falsefor code-heavy slides - Reference
reference.md§ Minimal YAML Template
- Define
-
Create SCSS theme (if customizing):
- Define color palette in
scss:defaults($body-bg, $body-color, $link-color) - Add font family and size variables
- Write rules in
scss:ruleswith.reveal .slideprefix
- Define color palette in
-
Author slide content:
- Use
##for slide breaks (or---for untitled slides) - Apply layout patterns from reference
- Add speaker notes with
::: {.notes}
- Use
-
Install extensions (if needed):
- Provide
quarto addcommands - Show YAML activation (
revealjs-plugins,filters)
- Provide
-
Validate:
- Check
quarto previewruns without errors - Verify Scroll View (
Rkey) and Print View (?view=print)
- Check
-
Summarize what was created and any assumptions made.
Use of Reference Files
Load specific modules from resources/ based on task:
| Module | When to Load |
|---|---|
resources/yaml-config.md |
YAML frontmatter, sizing, navigation |
resources/scss-theming.md |
Theme customization, variables |
resources/layout.md |
Column, stack, positioning patterns |
resources/animation.md |
Fragments, auto-animate effects |
resources/extensions.md |
FontAwesome, embedio, editable |
resources/advanced.md |
Parallax, vertical slides, templates |
resources/troubleshooting.md |
Debugging rendering issues |
Examples
Example 1 – New presentation with custom theme
- User goal: "Create slides for a tech talk with dark theme and code highlighting"
- Expected behavior:
- Generate YAML with
theme: [default, styles/dark.scss] - Create SCSS with dark $body-bg, light $body-color
- Enable
code-line-numbers: true,code-overflow: wrap - Provide slide structure with
##headers
- Generate YAML with
Example 2 – Add icons and embeds
- User goal: "Add GitHub icon and embed another slide deck"
- Expected behavior:
- Provide
quarto add quarto-ext/fontawesomecommand - Show
{{< fa brands github >}}syntax - Provide
quarto add coatless-quarto/embediocommand - Show
{{< revealjs file="other.html" >}}syntax
- Provide
Example 3 – Fix background image not showing
- User goal: "My SCSS background-image doesn't work"
- Expected behavior:
- Diagnose path issue (CSS compiles to deep directory)
- Suggest
url("../../../../../assets/images/bg.jpg")path - Explain the 5-level depth from
_output/index_files/libs/revealjs/dist/theme/
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?