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/