| name | slidev |
| description | Create and present web-based slides for developers using Markdown, Vue components, code highlighting, animations, and interactive features. Use when building technical presentations, conference talks, or teaching materials. |
Slidev - Presentation Slides for Developers
Web-based slides maker built on Vite, Vue, and Markdown.
When to Use
- Technical presentations with live code examples
- Syntax-highlighted code snippets with animations
- Interactive demos (Monaco editor, runnable code)
- Mathematical equations (LaTeX) or diagrams (Mermaid, PlantUML)
- Record presentations with presenter notes
- Export to PDF, PPTX, or host as SPA
Quick Start
pnpm create slidev
pnpm run dev
pnpm run export
Basic Syntax
---
theme: default
title: My Presentation
---
# First Slide
Content here
---
# Second Slide
More content
<!--
Presenter notes go here
-->
--- separates slides
- First frontmatter = headmatter (deck config)
- HTML comments = presenter notes
Core References
| Topic | Description | Reference |
|---|
| Markdown Syntax | Slide separators, frontmatter, notes, code blocks | core-syntax |
| Animations | v-click, v-clicks, motion, transitions | core-animations |
| Headmatter | Deck-wide configuration options | core-headmatter |
| Frontmatter | Per-slide configuration options | core-frontmatter |
| CLI Commands | Dev, build, export, theme commands | core-cli |
| Components | Built-in Vue components | core-components |
| Layouts | Built-in slide layouts | core-layouts |
| Exporting | PDF, PPTX, PNG export options | core-exporting |
| Hosting | Build and deploy to various platforms | core-hosting |
| Global Context | $nav, $slidev, composables API | core-global-context |
Feature Reference
Code & Editor
Diagrams & Math
Layout & Styling
Animation & Interaction
Syntax Extensions
Presenter & Recording
Export & Build
Editor & Tools
Lifecycle & API
Common Layouts
| Layout | Purpose |
|---|
cover | Title/cover slide |
center | Centered content |
default | Standard slide |
two-cols | Two columns (use ::right::) |
two-cols-header | Header + two columns |
image / image-left / image-right | Image layouts |
iframe / iframe-left / iframe-right | Embed URLs |
quote | Quotation |
section | Section divider |
fact / statement | Data/statement display |
intro / end | Intro/end slides |
Resources
Template Components
Custom components provided by this presentation template (in components/ and react-components/). Detailed docs with advanced examples are in docs/components/.
React Components
React components are supported via slidev-addon-react (already configured in headmatter).
To add a React component:
- Create
.jsx/.tsx in react-components/
- Register in
react-components/index.ts: export default { MyComponent }
- Use in slides:
<React is="MyComponent" :someProp="value" />
Props: primitives passed directly (title="Hello"), objects/arrays use Vue binding (:config="{ theme: 'dark' }").
Figure
Image or video with caption, credits, and optional progress bar. See docs/components/figure.md for advanced usage.
| Prop | Type | Default | Description |
|---|
src | String | (required) | Image/video source URL |
caption | String | '' | Caption text below media |
captionType | String | text | text (plain) or template (slot-based rich caption) |
credits | String | '' | Inline credits text appended to caption |
creditsCiteKey | String | '' | BibTeX cite key for inline citation credit |
type | String | image | image or video |
autostart | Boolean | false | Auto-play video (with pauseStart delay) |
repeat | Boolean | false | Loop video (pauses on first/last frames) |
progress | Boolean | false | Show video progress bar |
pauseStart | Number | 1500 | Ms to pause on first frame before playing |
pauseEnd | Number | 2000 | Ms to pause on last frame before looping |
color | String | light | Caption color scheme |
class | String | '' | Tailwind classes |
<Figure src="/images/result.png" caption="Figure 1: Results" class="w-4/5" color="emerald-light" />
<Figure src="/images/diagram.png" caption="Architecture" creditsCiteKey="smith2023" class="w-2/3" />
<Figure type="video" src="/videos/demo.mp4" caption="Video 1" class="w-2/3" progress autostart repeat />
<Figure src="/images/chart.png" captionType="template">
<template #caption>
<p>Results from <strong>Experiment 1</strong>. See <Cite citeKey="jones2024" /> for details.</p>
</template>
</Figure>
PlotlyFigure
Interactive Plotly chart from JSON ({ "data": [...], "layout": {...} }). See docs/components/plotlyfigure.md for advanced usage.
| Prop | Type | Default | Description |
|---|
src | String | (required) | URL to Plotly JSON file |
caption | String | '' | Caption text |
height | String | null | Plot height |
fontSize | Number | 12 | Font size for labels |
color | String | light | Caption color scheme |
class | String | '' | Tailwind classes |
<PlotlyFigure src="/figure.json" caption="Interactive chart" class="w-2/3" height="400px" />
Cite / BiblioList
In-text citations with hover tooltips and formatted bibliography. See docs/components/cite.md and docs/components/bibliolist.md for advanced usage.
Requires biblio config in headmatter:
biblio:
numericalRefs: false
defaultBibFile: "/reference.bib"
Recent studies <Cite citeKey="smith2023" /> show improvement.
<Cite citeKey="smith2023">Smith et al. (2023)</Cite> found...
# References
<BiblioList />
BiblioList props: showAll (Boolean), itemsPerPage (Number), title (String).
ExportLinks
Auto-detected PDF/PPTX download overlay. See docs/components/exportlinks.md for CI integration details. No props: <ExportLinks />