Percerno Skillsbeta
← everything it can do · slides

Make Revealjs Presentation PPTX

Creates or updates a RevealJS HTML presentation by copying a bundled template and customizing it with user-specific content, styling, and slide structure.

2 uses this weeksource pamelafoxlicence MIT
Quality gate: PASS · makes it possible · measured 2026-10-23
Delivered a valid file in 2 of 2 requests; the bare model cannot produce this file type.
2/2 requests produced a file that opens
Security scan: clean · 2026-10-24 · 2 files · ran in sandbox
no network calls, shell tricks, credential access or instruction tampering found in its files.

Try asking

Say it in your own words; the assistant finds this recipe by itself. Examples:

“Lav et RevealJS-præsentationsmateriale til min tale om 'AI i praksis'.”
“Jeg har en udkast i notes.md, kan du lave det om til HTML-slides?”
“Opret et slid-deck til vores interne workshop om sikkerhed, brug den standard skabelon.”
“Create a RevealJS deck for my talk on 'Async Patterns in Node.js' using the standard template.”
“I have an outline in outline.md, please convert it into a RevealJS presentation.”
“Make a slide deck for the Q3 sales review, keep it simple and use the default fonts.”
Try this skill from Claude, ChatGPT or a chat on your own page. Free plan, no credit card.Get started free

Good for

revealjspresentationhtmlslidestemplatedeckwebconference

Not for

Do not use this skill for creating PowerPoint (.pptx), Keynote, or PDF presentations, as it strictly outputs HTML. It is not for generic web page development or non-presentation HTML tasks, nor for building RevealJS decks from scratch without using the provided bundled template.

Details

When it is the right choice

Use this skill when the user wants to create a new RevealJS-based slide deck or convert an outline into HTML slides using the repository's specific house template. It is also appropriate for updating existing RevealJS decks within this project context, including adjusting fonts, colors, or adding specific slide types like dividers or code blocks.

The full recipe the assistant reads

Make a RevealJS presentation

Use this skill when the user wants a RevealJS-based slide deck or wants to start a new talk from the repository's house template.

Default approach

Start from the bundled template asset instead of rebuilding the RevealJS shell from scratch:

  • Template asset: ./assets/index.html
  • Copy that file to the requested output path, then edit the copied file.
  • Keep the RevealJS CDN includes and Reveal.initialize(...) block unless the user explicitly asks to change them.

What to customize first

After copying the template, replace these placeholders before expanding the deck:

  • Talk Title
  • Conference Name · Month Year
  • Your Name
  • Role · Company · website.example
  • Example links like filename.html and example.com/...

Then rewrite or remove the example slides so the deck matches the user's topic.

Template conventions

  • The template is intentionally simple and close to stock RevealJS.
  • Section divider slides use class="heading-only".
  • Code slides are just normal sections with a <pre><code> block.
  • If a code badge or copy-button plugin is in use and should be suppressed for one slide, add class="no-code-badge" to that section.

Customization tips

Body font

Change the body font in the .reveal rule near the top of the template:

.reveal {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

Examples:

  • Minimal/system default: keep the existing stack
  • Sans-serif web font: font-family: 'Work Sans', sans-serif;
  • Serif deck: font-family: 'Source Serif 4', serif;

If using a web font, also add the corresponding <link rel="stylesheet"> in <head>.

Heading font

Change headings separately in:

.reveal h1,
.reveal h2,
.reveal h3 {
  font-family: inherit;
}

Examples:

  • Match body text: keep inherit
  • Distinct headings: font-family: 'Roboto', sans-serif;
  • Editorial style: font-family: 'Fraunces', serif;

Text sizing

Adjust the default body sizing here:

.reveal p,
.reveal li,
.reveal td,
.reveal th {
  font-size: 1em;
}

Increase or decrease that font-size when the user wants a generally larger or smaller deck.

Code block styling

Global code block styling lives in:

.reveal pre { ... }
.reveal pre code { ... }

Adjust those rules for larger code, different padding, or lighter/heavier borders.

Divider slides

The divider slide look is controlled by section.heading-only and the underline rule:

.reveal section.heading-only h1::after,
.reveal section.heading-only h2::after,
.reveal section.heading-only h3::after { ... }

Remove that block if the user wants divider slides to look more like plain RevealJS headings.

Color contrast

If the user customizes colors, keep text/background combinations at accessible contrast.

  • Prefer dark text on a light background or light text on a dark background.
  • Be especially careful with body text, slide numbers, links, and code blocks.
  • Recheck contrast after changing theme colors, background fills, or heading styles.

Accessibility

Preserve accessibility basics when creating or customizing decks.

  • Keep text/background contrast accessible, especially after theme changes.
  • Make sure links have discernible text.
  • Make sure images have alt text if they convey meaning.
  • Treat plugin-generated UI separately from slide content when reviewing issues. RevealMenu currently has a known accessibility issue: its generated menu trigger may lack a discernible accessible name. If the user keeps the plugin, note that this can remain as an axe violation even when the slide content itself is fine.

Example axe-core audit

If the user asks for an accessibility review in VS Code, open the deck in the integrated browser and run axe-core on the rendered page.

Example Playwright snippet:

await page.addScriptTag({
  url: 'https://cdnjs.cloudflare.com/ajax/libs/axe-core/4.10.2/axe.min.js'
});

const results = await page.evaluate(async () => {
  return await window.axe.run(document, {
    runOnly: {
      type: 'tag',
      values: ['wcag2a', 'wcag2aa']
    }
  });
});

When reporting results:

  • Separate actual violations from incomplete checks.
  • Call out the exact HTML or selector for each real issue.
  • Distinguish between deck-author issues and plugin-generated issues.
  • If contrast checks are inconclusive because Reveal overlays or transforms confuse axe, say that clearly instead of reporting them as confirmed failures.

Editing guidance

  • Prefer plain sections, headings, lists, tables, images, and code blocks over custom layout systems.
  • Do not add extra decorative CSS unless the user asks for a stronger visual style.
  • Keep the deck black-on-white by default unless the user wants a themed presentation.

Validation

After creating or editing the deck:

  1. Validate the HTML file for diagnostics.
  2. Open it in the integrated browser.
  3. If the user asks for accessibility review, run an axe audit on the rendered page and report actual violations separately from inconclusive checks.
Files in this skill (3)
  • LICENSE
  • SKILL.md
  • assets/index.html
Where it comes from

Vendored from pamelafox/presentation-skills, commit 2b809b3a8d2f, path .agents/skills/make-revealjs-presentation, licence MIT. The upstream licence file ships inside the skill.