Configure and style Quarto RevealJS presentations with dtslides.

Install

mkdir -p .claude/skills/dtslides && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/10705" && unzip -o skill.zip -d .claude/skills/dtslides && rm skill.zip

Installs to .claude/skills/dtslides

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Format and style Quarto RevealJS presentations using the dtslides extension. Use this skill whenever the user asks to change the appearance, layout, typography, colors, or styling of their Quarto slides — including adding CSS classes, adjusting font sizes, creating section dividers, formatting callouts, customizing SCSS variables, or applying any visual change to a .qmd presentation file. Also triggers for questions about slide types, emphasis spans, column layouts, code block display, or any dtslides feature. Always consult this skill before suggesting raw CSS or RevealJS hacks — the extension provides purpose-built classes that should be used first.
659 charsno explicit “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • Format RevealJS slides
  • Apply CSS classes
  • Create column layouts
  • Add callouts
  • Customize SCSS variables

How it works

It applies purpose-built CSS classes and SCSS variables to Quarto RevealJS presentations.

Inputs & outputs

You give it
Slide styling request
You get back
Formatted .qmd file

When to use dtslides

  • Style presentation layout
  • Add custom CSS classes
  • Create section dividers

About this skill

dtslides Formatting Skill

Guide for formatting and styling Quarto RevealJS slides using the dtslides extension (both Academic and UNM themes).

Official References

All reference files are bundled in references/. Read the relevant file before answering — do not guess syntax. GitHub links are provided for context.

Local fileGitHub URLWhat it covers
references/REFERENCE.mdhttps://github.com/Data-Wise/dtslides/blob/main/REFERENCE.mdAll user-facing CSS classes
references/getting-started.qmdhttps://github.com/Data-Wise/dtslides/blob/main/getting-started.qmdInstallation, SCSS customisation, CSS specificity
references/example.qmdhttps://github.com/Data-Wise/dtslides/blob/main/example.qmdUNM theme feature showcase
references/example-academic.qmdhttps://github.com/Data-Wise/dtslides/blob/main/example-academic.qmdAcademic theme full showcase
references/example-long.qmdhttps://github.com/Data-Wise/dtslides/blob/main/example-long.qmdComprehensive layout & code demos
references/example-refs.bibhttps://github.com/Data-Wise/dtslides/blob/main/example-refs.bibCitation / bibliography usage

When the user's request maps to a specific file above, read it first so your response matches live, tested syntax.


Decision Tree

  1. Changing how a slide looks overall (dense content, scrollable, image-focused) → Slide types
  2. Inline text emphasis or colourEmphasis spans
  3. Making text or a block larger / smallerFont sizing
  4. Aligning contentAlignment
  5. Adding a callout boxCallouts
  6. Buttons or badgesButtons and badges
  7. Overriding fonts, colours, or spacing globallySCSS customisation
  8. Setting up the presentation for the first timeSetup

Setup

Installing

quarto add Data-Wise/dtslides

Requires Quarto >= 1.6.0. Commit the _extensions/ folder to version control.

Choosing a theme

Academic theme — neutral navy/slate palette, suitable for any institution:

format:
  dtslides-revealjs:
    slide-number: c/t

UNM theme — institutional branding:

format:
  dtslides-unm-revealjs:
    slide-number: c/t

Slide Types {#slide-types}

Apply as a class on the slide heading: ## Title {.class-name}

ClassEffect
.small-slideReduced font size — good for dense content
.tiny-slideEven smaller — good for reference tables
.quote-slideCentred text with styled blockquote
.image-slideMinimal chrome, image-focused
.section-slideLarge centred heading — use on # level headings for section dividers
.slide-codeOptimised for code-heavy slides
.large-image-slideFull-height image display (80vh max)
.scrollableEnable vertical scrolling on the slide

Examples:

# Methods {.section-slide}

## Full Regression Output {.small-slide}

## Appendix Data {.tiny-slide}

## Long Content {.scrollable}

Emphasis Spans {#emphasis-spans}

Inline markup: [text]{.class}

ClassEffect
.alertBold, alert colour, tinted background
.fgBold, accent foreground colour
.bgWhite text on accent background
.highlightYellow/gold highlighted text
.noteItalic, tinted background
.warningBold, warning colour, tinted background

Examples:

The result is [statistically significant]{.alert} with [p < 0.001]{.highlight}.

See the [important caveat]{.warning} before drawing conclusions.

Use [custom colour]{.fg style="--col: #e64173"} with an inline style override.

Font Sizing {#font-sizing}

Apply to a slide heading or a ::: div to scale all content inside:

ClassScaleScales headings too
.largest1.50×Yes
.larger1.20×Yes
.large1.25×Yes
.small0.80×Yes
.smaller0.64×Yes
.smallest0.51×Yes

Example — apply to a block:

::: {.small}
This entire block is smaller, including any code inside it.
:::

Alignment {#alignment}

Horizontal text

ClassEffect
.leftLeft-aligned
.centerCentred
.rightRight-aligned

Vertical (grid-based)

ClassEffect
.v-centerCentred vertically
.v-topTop-aligned
.v-bottomBottom-aligned

Callouts {#callouts}

Custom callouts (dtslides-specific)

::: {.callout-example}
Worked example content.
:::

::: {.callout-question}
A question to pose to the audience.
:::

::: {.callout-insight}
Key takeaway or insight.
:::
ClassLabelColour
.callout-exampleExampleGreen (success)
.callout-questionQuestionPrimary (navy/cherry)
.callout-insightInsightBlue (info/turquoise)

Standard Quarto callouts

.callout-note, .callout-warning, .callout-tip, .callout-important, .callout-caution are all automatically re-styled by dtslides.


Buttons and Badges {#buttons-and-badges}

[[Jump to Slide]{.button}](#target-id)

Version label: [v1.1.0]{.badge}   [New]{.badge-secondary}
ClassEffect
.buttonAccent-coloured link button with icon
.badgePrimary-coloured inline label
.badge-primarySame as .badge
.badge-secondaryLighter variant

Columns and Layouts

::::: {.columns}
:::: {.column width="50%"}
Left content
::::
:::: {.column width="50%"}
Right content
::::
:::::

For side-by-side code and output, use the chunk option:

#| output-location: column

For tabsets:

::: {.panel-tabset}
### Tab 1
Content A
### Tab 2
Content B
:::

Code Blocks

No classes needed — styling is applied automatically:

  • Source code blocks: Fira Code font with syntax highlighting
  • R console output: lighter background with an accent-coloured left border
  • Side-by-side layout: use output-location: column in chunk options

Tables

No classes needed. Tables get automatic styling:

  • Striped alternating rows
  • Uppercase header text
  • No hover effect (keeps presentations clean)

SCSS Customisation {#scss-customisation}

Quarto's YAML-level font options (mainfont, fontsize, monofont) are silently ignored for RevealJS. All typography and colour overrides must go through SCSS.

Workflow

  1. Create custom.scss alongside your .qmd file
  2. Reference it in the YAML front matter:
format:
  dtslides-revealjs:
    theme: [custom.scss]
    slide-number: c/t

Key SCSS variables

/*-- scss:defaults --*/

// --- Fonts ---
$font-family-sans-serif: "Georgia", serif;
$font-family-heading:    "Playfair Display", serif;
$font-family-monospace:  "JetBrains Mono", monospace;

// --- Sizes ---
$font-size-root:              36px;
$presentation-h2-font-size:   1.4em;
$code-block-font-size:        0.7em;

// --- Colours ---
$primary: #2C3E50;
$accent:  #E74C3C;

// --- Spacing ---
$line-height-body: 1.6;

// --- Code blocks ---
$code-block-bg: #f5f5f5;

The extension uses !default on all key variables, so your overrides take precedence.

CSS specificity

When writing rule overrides, prefix with .reveal to win over RevealJS defaults:

/* Headings */
.reveal h2 { color: #2C3E50; }

/* Quarto callouts */
.reveal div.callout-note { border-color: #007bff; }

/* List items */
.reveal .slide ul li { margin-bottom: 0.5em; }

Citations and Bibliography

Add a bibliography: key and a reference section slide:

---
bibliography: references.bib
---
## References
::: {#refs}
:::

Inline citations: @box1976 or [@efron1993]. See example-refs.bib for the bib file format.


Quick Patterns

Dense content slide

## Full Regression Output {.small-slide}
- Lots of output...

Section divider

# Methods {.section-slide}

Emphasis in text

The result is [statistically significant]{.alert} with [p < 0.001]{.highlight}.

Font size for a block

::: {.small}
This entire block is smaller, including any code inside it.
:::

Cross-reference button

## Results
[[See Methods]{.button}](#methods-slide)

## Methods {#methods-slide}

Fragment / incremental reveal

::: {.fragment}
1. First step
:::
::: {.fragment}
2. Second step
:::

::: {.incremental}
- auto-fragmented bullet 1
- auto-fragmented bullet 2
:::

When not to use it

  • Raw CSS hacks
  • RevealJS hacks

Prerequisites

Quartodtslides extension

Limitations

  • Requires Quarto >= 1.6.0
  • Limited to dtslides

How it compares

It provides a structured styling interface, avoiding the need for low-level CSS hacks.

Compared to similar skills

dtslides side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
dtslides (this skill)03moReviewIntermediate
latex-posters227moReviewIntermediate
code-card-news-generator09moReviewBeginner
paper2poster-poster02moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

latex-posters

davila7

Create professional research posters in LaTeX using beamerposter, tikzposter, or baposter. Support for conference presentations, academic posters, and scientific communication. Includes layout design, color schemes, multi-column formats, figure integration, and poster-specific best practices for visual communication.

2273

code-card-news-generator

bear2u

Generate code explanation cards with syntax highlighting for tutorials and education. Creates title cards and explanation cards with Korean descriptions and code examples.

01

paper2poster-poster

Paper2Poster

Use when the user wants to turn an academic paper into a conference poster, poster outline, poster copy deck, poster layout brief, poster.yaml style draft, or Paper2Poster-ready generation package. Trigger for paper-to-poster requests involving PDF papers, arXiv links, manuscripts, PPTX posters, con

00

create-section

JanDeDobbeleer

Use when creating a new section for the AI Workshop presentation. Guides through title slide setup, layout choices, and content gathering. Activates when user wants to add a new topic section to the slideshow.

00

paper-2-web

bg-szy

This skill should be used when converting academic papers into promotional and presentation formats including interactive websites (Paper2Web), presentation videos (Paper2Video), and conference posters (Paper2Poster). Use this skill for tasks involving paper dissemination, conference preparation, cr

00

pptx

Young-Z

Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks

00

Search skills

Search the agent skills registry