or `$block$`\n\n[diagram-latex](https://github.com/antfu/skills/blob/main/skills/slidev/references/diagram-latex.md)\n\n### Layout & Styling\n\nFeature\n\nUsage\n\nReference\n\nCanvas size\n\n`canvasWidth`, `aspectRatio`\n\n[layout-canvas-size](https://github.com/antfu/skills/blob/main/skills/slidev/references/layout-canvas-size.md)\n\nZoom slide\n\n`zoom: 0.8`\n\n[layout-zoom](https://github.com/antfu/skills/blob/main/skills/slidev/references/layout-zoom.md)\n\nScale elements\n\n`\u003cTransform :scale=\"0.5\">`\n\n[layout-transform](https://github.com/antfu/skills/blob/main/skills/slidev/references/layout-transform.md)\n\nLayout slots\n\n`::right::`, `::default::`\n\n[layout-slots](https://github.com/antfu/skills/blob/main/skills/slidev/references/layout-slots.md)\n\nScoped CSS\n\n`\u003cstyle>` in slide\n\n[style-scoped](https://github.com/antfu/skills/blob/main/skills/slidev/references/style-scoped.md)\n\nGlobal layers\n\n`global-top.vue`, `global-bottom.vue`\n\n[layout-global-layers](https://github.com/antfu/skills/blob/main/skills/slidev/references/layout-global-layers.md)\n\nDraggable elements\n\n`v-drag`, `\u003cv-drag>`\n\n[layout-draggable](https://github.com/antfu/skills/blob/main/skills/slidev/references/layout-draggable.md)\n\nIcons\n\n`\u003cmdi-icon-name />`\n\n[style-icons](https://github.com/antfu/skills/blob/main/skills/slidev/references/style-icons.md)\n\n### Animation & Interaction\n\nFeature\n\nUsage\n\nReference\n\nClick animations\n\n`v-click`, `\u003cv-clicks>`\n\n[core-animations](https://github.com/antfu/skills/blob/main/skills/slidev/references/core-animations.md)\n\nRough markers\n\n`v-mark.underline`, `v-mark.circle`\n\n[animation-rough-marker](https://github.com/antfu/skills/blob/main/skills/slidev/references/animation-rough-marker.md)\n\nDrawing mode\n\nPress `C` or config `drawings:`\n\n[animation-drawing](https://github.com/antfu/skills/blob/main/skills/slidev/references/animation-drawing.md)\n\nDirection styles\n\n`forward:delay-300`\n\n[style-direction](https://github.com/antfu/skills/blob/main/skills/slidev/references/style-direction.md)\n\nNote highlighting\n\n`[click]` in notes\n\n[animation-click-marker](https://github.com/antfu/skills/blob/main/skills/slidev/references/animation-click-marker.md)\n\n### Syntax Extensions\n\nFeature\n\nUsage\n\nReference\n\nMDC syntax\n\n`mdc: true` + `{style=\"color:red\"}`\n\n[syntax-mdc](https://github.com/antfu/skills/blob/main/skills/slidev/references/syntax-mdc.md)\n\nBlock frontmatter\n\n````yaml` instead of `---`\n\n[syntax-block-frontmatter](https://github.com/antfu/skills/blob/main/skills/slidev/references/syntax-block-frontmatter.md)\n\nImport slides\n\n`src: ./other.md`\n\n[syntax-importing-slides](https://github.com/antfu/skills/blob/main/skills/slidev/references/syntax-importing-slides.md)\n\nMerge frontmatter\n\nMain entry wins\n\n[syntax-frontmatter-merging](https://github.com/antfu/skills/blob/main/skills/slidev/references/syntax-frontmatter-merging.md)\n\n### Presenter & Recording\n\nFeature\n\nUsage\n\nReference\n\nRecording\n\nPress `G` for camera\n\n[presenter-recording](https://github.com/antfu/skills/blob/main/skills/slidev/references/presenter-recording.md)\n\nTimer\n\n`duration: 30min`, `timer: countdown`\n\n[presenter-timer](https://github.com/antfu/skills/blob/main/skills/slidev/references/presenter-timer.md)\n\nRemote control\n\n`slidev --remote`\n\n[presenter-remote](https://github.com/antfu/skills/blob/main/skills/slidev/references/presenter-remote.md)\n\nRuby text\n\n`notesAutoRuby:`\n\n[presenter-notes-ruby](https://github.com/antfu/skills/blob/main/skills/slidev/references/presenter-notes-ruby.md)\n\n### Export & Build\n\nFeature\n\nUsage\n\nReference\n\nExport options\n\n`slidev export`\n\n[core-exporting](https://github.com/antfu/skills/blob/main/skills/slidev/references/core-exporting.md)\n\nBuild & deploy\n\n`slidev build`\n\n[core-hosting](https://github.com/antfu/skills/blob/main/skills/slidev/references/core-hosting.md)\n\nBuild with PDF\n\n`download: true`\n\n[build-pdf](https://github.com/antfu/skills/blob/main/skills/slidev/references/build-pdf.md)\n\nCache images\n\nAutomatic for remote URLs\n\n[build-remote-assets](https://github.com/antfu/skills/blob/main/skills/slidev/references/build-remote-assets.md)\n\nOG image\n\n`seoMeta.ogImage` or `og-image.png`\n\n[build-og-image](https://github.com/antfu/skills/blob/main/skills/slidev/references/build-og-image.md)\n\nSEO tags\n\n`seoMeta:`\n\n[build-seo-meta](https://github.com/antfu/skills/blob/main/skills/slidev/references/build-seo-meta.md)\n\n### Editor & Tools\n\nFeature\n\nUsage\n\nReference\n\nSide editor\n\nClick edit icon\n\n[editor-side](https://github.com/antfu/skills/blob/main/skills/slidev/references/editor-side.md)\n\nVS Code extension\n\nInstall `antfu.slidev`\n\n[editor-vscode](https://github.com/antfu/skills/blob/main/skills/slidev/references/editor-vscode.md)\n\nPrettier\n\n`prettier-plugin-slidev`\n\n[editor-prettier](https://github.com/antfu/skills/blob/main/skills/slidev/references/editor-prettier.md)\n\nEject theme\n\n`slidev theme eject`\n\n[tool-eject-theme](https://github.com/antfu/skills/blob/main/skills/slidev/references/tool-eject-theme.md)\n\n### Lifecycle & API\n\nFeature\n\nUsage\n\nReference\n\nSlide hooks\n\n`onSlideEnter()`, `onSlideLeave()`\n\n[api-slide-hooks](https://github.com/antfu/skills/blob/main/skills/slidev/references/api-slide-hooks.md)\n\nNavigation API\n\n`$nav`, `useNav()`\n\n[core-global-context](https://github.com/antfu/skills/blob/main/skills/slidev/references/core-global-context.md)\n\n## Common Layouts\n\nLayout\n\nPurpose\n\n`cover`\n\nTitle/cover slide\n\n`center`\n\nCentered content\n\n`default`\n\nStandard slide\n\n`two-cols`\n\nTwo columns (use `::right::`)\n\n`two-cols-header`\n\nHeader + two columns\n\n`image` / `image-left` / `image-right`\n\nImage layouts\n\n`iframe` / `iframe-left` / `iframe-right`\n\nEmbed URLs\n\n`quote`\n\nQuotation\n\n`section`\n\nSection divider\n\n`fact` / `statement`\n\nData/statement display\n\n`intro` / `end`\n\nIntro/end slides\n\n## Resources\n\n- Documentation: [https://sli.dev](https://sli.dev)\n- Theme Gallery: [https://sli.dev/resources/theme-gallery](https://sli.dev/resources/theme-gallery)\n- Showcases: [https://sli.dev/resources/showcases](https://sli.dev/resources/showcases)","repositoryUrl":"https://github.com/antfu/skills","originalUrl":"https://skills.sh/antfu/skills/slidev","originalInstalls":1696,"platformInstalls":0,"isVerified":true,"importedBy":null,"createdAt":"2026-02-10T03:38:57.463Z","updatedAt":null,"deletedAt":null,"totalInstalls":1696}}
Web-based slides maker built on Vite, Vue, and Markdown. - Technical presentations with live code examples - Syntax-highlighted code snippets with animations
pnpm create slidev # Create project pnpm run dev # Start dev server pnpm run export # Export to PDF `## Basic Syntax` --- theme: default title: My Presentation --- # First Slide Content here --- # Second Slide More content <!-- Presenter notes go here -->
--- separates slideslineNumbers: true or {lines:true}{maxHeight:'100px'}::code-group (requires mdc: true)<<< ./file.ts {monaco-write}<<< @/snippets/file.js$inline$ or $block$canvasWidth, aspectRatiozoom: 0.8<Transform :scale="0.5">::right::, ::default::<style> in slideglobal-top.vue, global-bottom.vuev-drag, <v-drag><mdi-icon-name />v-click, <v-clicks>v-mark.underline, v-mark.circleC or config drawings:forward:delay-300[click] in notesmdc: true + {style="color:red"}instead of---`src: ./other.mdG for cameraduration: 30min, timer: countdownslidev --remotenotesAutoRuby:slidev exportslidev builddownload: trueseoMeta.ogImage or og-image.pngseoMeta:antfu.slidevprettier-plugin-slidevslidev theme ejectonSlideEnter(), onSlideLeave()$nav, useNav()covercenterdefaulttwo-cols::right::)two-cols-headerimage / image-left / image-rightiframe / iframe-left / iframe-rightquotesectionfact / statementintro / end