slidev/skills/slidev-mastery/SKILL.md
This skill should be used when the user asks to "create slides with Slidev", "use Slidev syntax", "add Slidev components", "configure Slidev theme", "export Slidev presentation", or mentions Slidev-specific features like layouts, animations, Monaco editor, or code highlighting. Provides comprehensive Slidev expertise for markdown-based presentations.
npx skillsauth add rhuss/cc-slidev Slidev MasteryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Slidev is a presentation framework for developers that uses markdown with Vue components. Create beautiful, interactive slides using familiar syntax with powerful features like live coding, diagrams, and animations.
Evidence-based design: This skill incorporates research-based best practices for accessible, effective presentations. See references/presentation-best-practices.md for full guidelines.
Separate slides with --- on its own line:
# First Slide
Content here
---
# Second Slide
More content
You can split your presentation into multiple markdown files using the src frontmatter option. This allows for better organization and reusability:
# Normal slide
---
src: ./slides/introduction.md
---
---
# Another normal slide
---
src: ./slides/conclusion.md
---
Benefits of modular slide structure:
microservices-benefits.md) instead of numberssrc includes in master file without renaming filesExample structure:
presentation/
├── slides.md # Master file with includes
├── slides/
│ ├── 01-title.md # Slide 1: Title
│ ├── 02-hook.md # Slide 2: Opening hook
│ ├── 03-problem-statement.md # Slide 3: Problem introduction
│ ├── 04-architecture-overview.md # Slide 4: Architecture slide
│ ├── 18-conclusion.md # Conclusion
│ └── 19-questions.md # Q&A
└── public/images/
File naming: Individual slides use numeric prefix (01-, 02-, etc.) plus descriptive name for easy ordering in directory listings while maintaining meaningful names.
Master file example with slide number comments:
---
theme: default
title: My Presentation
---
---
src: ./slides/01-title.md
---
<!-- Slide 1: Title -->
---
src: ./slides/02-hook.md
---
<!-- Slide 2: Opening Hook -->
---
src: ./slides/03-problem-statement.md
---
<!-- Slide 3: Problem Statement -->
Note: Comments must come AFTER the closing --- (not inside frontmatter block) per Slidev specs.
Frontmatter merging: You can override frontmatter from external files:
---
src: ./slides/content.md
layout: two-cols # Overrides layout in content.md
---
Configure presentation globally in frontmatter at the top of slides.md:
---
theme: default
background: https://source.unsplash.com/collection/94734566/1920x1080
class: text-center
highlighter: shiki
lineNumbers: false
drawings:
persist: false
transition: slide-left
title: Welcome to Slidev
---
Key frontmatter fields:
theme: Visual theme (default, seriph, apple-basic, etc.)background: Global background image or colorhighlighter: Code highlighting engine (shiki or prism)lineNumbers: Show line numbers in code blockstransition: Slide transition effecttitle: Presentation title for metadataConfigure individual slides with frontmatter after ---:
---
layout: center
background: './images/background.jpg'
class: 'text-white'
---
# Centered Slide
With custom background
Slidev provides built-in layouts for different slide types:
default - Standard layout with title and content:
# Title
Content here
center - Centered content:
---
layout: center
---
# Centered Title
cover - Cover slide for presentation start:
---
layout: cover
background: './bg.jpg'
---
# Presentation Title
Subtitle or author
intro - Introduction slide:
---
layout: intro
---
# Topic
Brief description
image-right - Content on left, image on right:
---
layout: image-right
image: './diagram.png'
---
# Content
Text goes here
image-left - Image on left, content on right:
---
layout: image-left
image: './photo.jpg'
---
# Content
Text goes here
two-cols - Two column layout:
---
layout: two-cols
---
# Left Column
Content for left
::right::
# Right Column
Content for right
quote - Large quote display:
---
layout: quote
---
# "Innovation distinguishes between a leader and a follower."
Steve Jobs
fact - Emphasize key fact or statistic:
---
layout: fact
---
# 95%
User satisfaction rate
\```python
def hello():
print("Hello, World!")
\```
Highlight specific lines with {line-numbers}:
\```python {2-3}
def process():
important_line()
another_important()
return result
\```
Enable line numbers for a code block:
\```python {1|2|3} {lines:true}
first_line()
second_line()
third_line()
\```
Enable live code editing with Monaco:
\```python {monaco}
def editable():
return "Users can edit this code"
\```
Reveal content incrementally with v-click:
- First point
- <v-click>Second point (appears on click)</v-click>
- <v-click>Third point (appears on next click)</v-click>
Show content after specific click:
<div v-after="2">
Appears after 2 clicks
</div>
Use click counters for complex animations:
<div v-click="1">First</div>
<div v-click="2">Second</div>
<div v-click="3">Third</div>
Embed mermaid diagrams directly:
\```mermaid
graph LR
A[Start] --> B[Process]
B --> C[End]
\```
Supported diagram types:
graph LR, graph TDsequenceDiagramclassDiagramstateDiagram-v2erDiagramganttApply custom colors to mermaid diagrams:
\```mermaid
%%{init: {'theme':'base', 'themeVariables': { 'primaryColor':'#3b82f6'}}}%%
graph TD
A[Blue themed]
\```

With custom size:
<img src="./image.jpg" class="w-50 mx-auto" />
Per-slide background:
---
background: './images/slide-bg.jpg'
---
Add notes visible only in presenter mode:
# Slide Title
Content visible to audience
<!--
These are presenter notes
Only visible in presenter mode
Press 'p' to toggle presenter view
-->
Arrows:
<Arrow x1="100" y1="100" x2="200" y2="200" />
YouTube:
<Youtube id="video-id" width="500" height="300" />
Tweet:
<Tweet id="tweet-id" />
Create reusable Vue components in components/ directory:
<!-- components/CustomButton.vue -->
<template>
<button class="custom-btn">
<slot />
</button>
</template>
<style scoped>
.custom-btn {
background: #3b82f6;
color: white;
padding: 1rem 2rem;
border-radius: 0.5rem;
}
</style>
Use in slides:
<CustomButton>Click me</CustomButton>
Set in frontmatter:
---
theme: seriph
---
Popular themes:
default - Clean, minimalseriph - Elegant serif fontsapple-basic - Apple keynote styleshibainu - Playful, colorfulbricks - Modern, structuredAdd custom CSS in frontmatter or separate style.css:
---
---
<style>
h1 {
color: #3b82f6;
}
.custom-class {
background: linear-gradient(45deg, #3b82f6, #8b5cf6);
}
</style>
slidev export slides.md --output presentation.pdf
slidev export slides.md --format pptx
slidev export slides.md --format png --output slides/
slidev slides.md
Opens at http://localhost:3030 with hot reload.
slidev build slides.md
Generates static HTML in dist/ directory.
Press p during presentation to enter presenter mode with notes and preview.
One idea per slide (Critical):
Meaningful titles (Critical):
Minimal text (Critical):
Visual over text:
Cognitive load management:
v-clickProgressive disclosure - Use v-click for complex ideas:
- Key point 1
- <v-click>Key point 2 (reveals on click)</v-click>
- <v-click>Key point 3 (reveals next)</v-click>
Prevents audience from reading ahead while you explain
presentation/
├── slides.md # Main presentation
├── public/ # Static assets
│ └── images/
├── components/ # Custom Vue components
└── styles/ # Custom CSS
Font requirements (from research):
Configure in frontmatter or custom CSS:
---
theme: default
---
<style>
/* Accessibility-focused defaults */
h1 { font-size: 3rem; } /* ~48pt */
h2 { font-size: 2rem; } /* ~32pt */
h3 { font-size: 1.5rem; } /* ~24pt */
p, li { font-size: 1.25rem; } /* ~20pt */
body {
font-family: 'Helvetica Neue', Arial, sans-serif;
}
</style>
Color requirements:
Test contrast:
# Online tools
# - WebAIM Contrast Checker
# - Colorblind Web Page Filter
Layout requirements:
Keyboard navigation:
Recommended accessible theme:
---
theme: default # Good contrast, clean design
# OR create custom theme with accessibility defaults
---
---
layout: cover
background: './background.jpg'
---
# Presentation Title
## Subtitle
Author Name · Date
# Agenda
- <v-click>Introduction</v-click>
- <v-click>Main Topics</v-click>
- <v-click>Conclusion</v-click>
- <v-click>Q&A</v-click>
---
layout: two-cols
---
# Before
\```python
old_code()
\```
::right::
# After
\```python
improved_code()
\```
---
layout: image-right
---
# Architecture
\```mermaid
graph TD
A[Client]
B[Server]
A --> B
\```
::right::
Key points:
- Client initiates
- Server responds
- Simple flow
--- separators)shiki or prism)npx playwright installnpm install slidev-theme-nameFor more advanced features and detailed API documentation, consult Slidev official documentation at https://sli.dev
data-ai
This skill should be used when the user asks to "create mermaid diagram", "add visuals to slides", "suggest stock photos", "generate AI image prompts", "create diagram for presentation", "design visual theme", or needs guidance on diagram types, color palettes, image selection, or AI image generation prompting for presentations.
testing
This skill should be used when the user asks to "analyze slide quality", "review slide", "check slide design", "optimize slide", "improve slide content", "assess slide clarity", or needs evidence-based quality evaluation using the 12-point checklist for presentation slides.
development
--- name: Slide Management description: **MANDATORY USE - ALWAYS INVOKE THIS SKILL** when the user mentions ANY of these actions: "delete slide", "remove slide", "add slide", "insert slide", "create new slide", "new slide between", "get rid of slide", "fix gaps", "renumber slides", OR when they confirm/answer questions about slide deletion/addition (e.g., "yes delete slide 6", "add a slide after 5"). **CRITICAL - NEVER manually edit slides.md or rename slide files yourself** - this skill uses th
content-media
This skill should be used when the user asks to "design a presentation", "structure presentation content", "improve presentation flow", "create presentation outline", "make slides more engaging", or needs guidance on storytelling, visual hierarchy, audience engagement, or presentation best practices.