--- name: slidev description: Markdown-based presentation slides powered by Vue and Vite. Use when creating slide decks, technical presentations, conference talks, or any presentation that benefits from code highlighting, diagrams, and web technologies. --- # Slidev Slidev renders Markdown files as interactive slide presentations. Supports Vue components, UnoCSS styling, Shiki code highlighting, Mermaid diagrams, and LaTeX math. ## Quick Start ```bash # Create new project pnpm create slidev # Or with npm (downloads each time, slower) npm init slidev@latest # Dev server slidev --open # Export to PDF slidev export # Build static SPA slidev build ``` Entry file defaults to `slides.md`. Pass different file: `slidev other.md`. ## Slide Structure Slides separated by `---` with blank lines before/after: ```md --- theme: seriph title: My Presentation fonts: sans: Inter mono: Fira Code --- # Slide 1: Title Slide Content here. --- # Slide 2 More content. --- layout: center class: text-center --- # Centered Slide This slide uses the `center` layout. ``` ### Headmatter (First Slide) Configures entire deck: | Field | Purpose | Example | |-------|---------|---------| | `theme` | Theme package or name | `seriph`, `default`, `apple-basic` | | `title` | Presentation title | `My Talk` | | `fonts` | Google Fonts auto-import | `{ sans: Inter, mono: Fira Code }` | | `aspectRatio` | Slide ratio | `16/9` (default), `4/3` | | `canvasWidth` | Canvas width in px | `980` (default) | | `themeConfig` | Theme-specific config | `{ primary: '#5d8392' }` | | `transition` | Default slide transition | `slide-left`, `fade` | | `mdc` | Enable MDC syntax | `true` | ### Per-Slide Frontmatter ```md --- layout: two-cols class: my-class background: /image.png transition: fade clicks: 5 --- ``` ### Speaker Notes Comments at the END of a slide become presenter notes: ```md # My Slide Content visible to audience. ``` ## Code Blocks Shiki syntax highlighting with language tag: ````md ```ts const greeting = 'Hello, Slidev!' ``` ```` ### Line Highlighting ```md ```ts {2,3} // Highlight lines 2-3 ```ts {1-3,5} // Highlight 1-3 and 5 ```ts {1|3|5-7} // Click-stepped: 1, then 3, then 5-7 ```ts {*|1|3}{lines:true} // With line numbers ``` ### Options ```md ```ts {lines:true} // Show line numbers ```ts {startLine:5} // Start numbering at 5 ```ts {maxHeight:'200px'} // Scrollable with max height ```ts twoslash // TwoSlash integration ``` For live code editing, see `references/monaco.md`. ## Styling ### UnoCSS Classes ```md