This skill helps you get started with Slidev, the presentation framework for developers. You'll learn how to create a new project, understand the basic syntax, and run your first presentation.
When to Use This Skill
-
Creating a new Slidev presentation from scratch
-
Setting up Slidev for the first time
-
Understanding basic Slidev concepts
-
Converting an existing presentation to Slidev
-
Quickly scaffolding a presentation structure
Prerequisites
-
Node.js: Version 18.0 or higher
-
Package Manager: npm, pnpm, or yarn
-
Text Editor: VS Code recommended (with Slidev extension)
Creating a New Project
Option 1: Using npm init (Recommended)
npm init slidev@latest
This interactive command will:
-
Ask for your project name
-
Create the project directory
-
Install dependencies
-
Start the dev server
Option 2: Manual Setup
# Create project directory
mkdir my-presentation
cd my-presentation
# Initialize package.json
npm init -y
# Install Slidev
npm install @slidev/cli @slidev/theme-default
# Create slides file
touch slides.md
Add scripts to package.json:
{
"scripts": {
"dev": "slidev --open",
"build": "slidev build",
"export": "slidev export"
}
}
Your First Presentation
Create slides.md with this content:
---
theme: default
title: My First Presentation
info: |
## My First Slidev Presentation
Created with Slidev
class: text-center
drawings:
persist: false
transition: slide-left
---
# Welcome to Slidev
Presentation slides for developers
<div class="pt-12">
<span @click="$slidev.nav.next" class="px-2 py-1 rounded cursor-pointer" hover="bg-white bg-opacity-10">
Press Space for next page <carbon:arrow-right class="inline"/>
</span>
</div>
---
# What is Slidev?
Slidev is a slides maker and presenter designed for developers
- 📝 **Markdown-based** - focus on content with Markdown
- 🎨 **Themable** - themes can be shared and installed
- 🧑💻 **Developer Friendly** - code highlighting, live coding
- 🤹 **Interactive** - embed Vue components
- 🎥 **Recording** - built-in recording and camera view
- 📤 **Portable** - export to PDF, PPTX, or host online
---
layout: center
---
# Thank You!
[Documentation](https://sli.dev) · [GitHub](https://github.com/slidevjs/slidev)
Running Your Presentation
# Start development server
npm run dev
# Or directly with npx
npx slidev
Your presentation will be available at http://localhost:3030
Essential Keyboard Shortcuts
| Space / →
| Next slide/animation
| ←
| Previous slide/animation
| ↑ / ↓
| Navigate slides (skip animations)
| o
| Overview mode
| d
| Toggle dark mode
| f
| Fullscreen
| g
| Go to slide
| Esc
| Exit overview/fullscreen
Slide Separator
Use --- (three dashes) surrounded by blank lines to separate slides:
# Slide 1
Content for slide 1
---
# Slide 2
Content for slide 2
---
# Slide 3
Content for slide 3
Frontmatter Configuration
The first slide's frontmatter configures the entire presentation:
---
# Presentation metadata
theme: seriph # Theme name
title: My Presentation # Browser tab title
info: | # Presentation info
## About
Description here
# Appearance
colorSchema: auto # auto, light, or dark
class: text-center # CSS classes for first slide
background: /image.jpg # Background image
# Features
drawings:
persist: false # Save drawings between reloads
transition: slide-left # Default transition
highlighter: shiki # Code highlighter
# Export
exportFilename: slides # Export filename
download: true # Show download button
---
Adding Layouts
Specify layouts per slide using frontmatter:
---
layout: cover
background: https://cover.sli.dev
---
# Cover Slide
---
layout: two-cols
---
# Left Column
Content here
::right::
# Right Column
Content here
---
layout: center
---
# Centered Content
Adding Code Blocks
# Code Example
\`\`\`typescript
interface User {
id: number
name: string
email: string
}
function greet(user: User): string {
return `Hello, ${user.name}!`
}
\`\`\`
Adding Speaker Notes
Add HTML comments at the end of a slide for speaker notes:
# My Slide
Important content here
<!--
Speaker notes go here.
- Remember to mention X
- Demo the feature Y
-->
Best Practices
-
Start Simple: Begin with basic Markdown, add features gradually
-
One Idea Per Slide: Keep slides focused
-
Use Layouts: Leverage built-in layouts for consistent design
-
Version Control: Commit
slides.mdto Git -
Test Export Early: Verify PDF export works before presenting
Common Mistakes to Avoid
❌ Missing blank lines around separators
# Slide 1
---
# Slide 2
✓ Correct separator syntax
# Slide 1
---
# Slide 2
❌ Invalid frontmatter indentation
---
theme:seriph # Missing space after colon
---
✓ Correct frontmatter
---
theme: seriph
---
Output Format
When creating a new Slidev presentation, provide:
PROJECT STRUCTURE:
- slides.md (main presentation file)
- package.json (with dev/build/export scripts)
- Optional: public/ directory for assets
FIRST SLIDE FRONTMATTER:
---
theme: [recommended theme]
title: [presentation title]
---
SUGGESTED SLIDE STRUCTURE:
1. Title/Cover slide
2. Introduction/Agenda
3. Main content slides
4. Summary/Conclusion
5. Thank you/Contact slide
NEXT STEPS:
- Run `npm run dev` to start
- Edit slides.md to add content
- Use `o` key for overview