视觉画布设计
canvas-design
基于设计原则创作静态视觉作品,用于海报与品牌图形。
or `$block$` | [diagram-latex](references/diagram-latex.md) |\n\n### Layout & Styling\n\n| Feature | Usage | Reference |\n|---------|-------|-----------|\n| Canvas size | `canvasWidth`, `aspectRatio` | [layout-canvas-size](references/layout-canvas-size.md) |\n| Zoom slide | `zoom: 0.8` | [layout-zoom](references/layout-zoom.md) |\n| Scale elements | `\u003cTransform :scale=\"0.5\">` | [layout-transform](references/layout-transform.md) |\n| Layout slots | `::right::`, `::default::` | [layout-slots](references/layout-slots.md) |\n| Scoped CSS | `\u003cstyle>` in slide | [style-scoped](references/style-scoped.md) |\n| Global layers | `global-top.vue`, `global-bottom.vue` | [layout-global-layers](references/layout-global-layers.md) |\n| Draggable elements | `v-drag`, `\u003cv-drag>` | [layout-draggable](references/layout-draggable.md) |\n| Icons | `\u003cmdi-icon-name />` | [style-icons](references/style-icons.md) |\n\n### Animation & Interaction\n\n| Feature | Usage | Reference |\n|---------|-------|-----------|\n| Click animations | `v-click`, `\u003cv-clicks>` | [core-animations](references/core-animations.md) |\n| Rough markers | `v-mark.underline`, `v-mark.circle` | [animation-rough-marker](references/animation-rough-marker.md) |\n| Drawing mode | Press `C` or config `drawings:` | [animation-drawing](references/animation-drawing.md) |\n| Direction styles | `forward:delay-300` | [style-direction](references/style-direction.md) |\n| Note highlighting | `[click]` in notes | [animation-click-marker](references/animation-click-marker.md) |\n\n### Syntax Extensions\n\n| Feature | Usage | Reference |\n|---------|-------|-----------|\n| MDC syntax | `mdc: true` + `{style=\"color:red\"}` | [syntax-mdc](references/syntax-mdc.md) |\n| Block frontmatter | `` ```yaml `` instead of `---` | [syntax-block-frontmatter](references/syntax-block-frontmatter.md) |\n| Import slides | `src: ./other.md` | [syntax-importing-slides](references/syntax-importing-slides.md) |\n| Merge frontmatter | Main entry wins | [syntax-frontmatter-merging](references/syntax-frontmatter-merging.md) |\n\n### Presenter & Recording\n\n| Feature | Usage | Reference |\n|---------|-------|-----------|\n| Recording | Press `G` for camera | [presenter-recording](references/presenter-recording.md) |\n| Timer | `duration: 30min`, `timer: countdown` | [presenter-timer](references/presenter-timer.md) |\n| Remote control | `slidev --remote` | [presenter-remote](references/presenter-remote.md) |\n| Ruby text | `notesAutoRuby:` | [presenter-notes-ruby](references/presenter-notes-ruby.md) |\n\n### Export & Build\n\n| Feature | Usage | Reference |\n|---------|-------|-----------|\n| Export options | `slidev export` | [core-exporting](references/core-exporting.md) |\n| Build & deploy | `slidev build` | [core-hosting](references/core-hosting.md) |\n| Build with PDF | `download: true` | [build-pdf](references/build-pdf.md) |\n| Cache images | Automatic for remote URLs | [build-remote-assets](references/build-remote-assets.md) |\n| OG image | `seoMeta.ogImage` or `og-image.png` | [build-og-image](references/build-og-image.md) |\n| SEO tags | `seoMeta:` | [build-seo-meta](references/build-seo-meta.md) |\n\n### Editor & Tools\n\n| Feature | Usage | Reference |\n|---------|-------|-----------|\n| Side editor | Click edit icon | [editor-side](references/editor-side.md) |\n| VS Code extension | Install `antfu.slidev` | [editor-vscode](references/editor-vscode.md) |\n| Prettier | `prettier-plugin-slidev` | [editor-prettier](references/editor-prettier.md) |\n| Eject theme | `slidev theme eject` | [tool-eject-theme](references/tool-eject-theme.md) |\n\n### Lifecycle & API\n\n| Feature | Usage | Reference |\n|---------|-------|-----------|\n| Slide hooks | `onSlideEnter()`, `onSlideLeave()` | [api-slide-hooks](references/api-slide-hooks.md) |\n| Navigation API | `$nav`, `useNav()` | [core-global-context](references/core-global-context.md) |\n\n## Common Layouts\n\n| Layout | Purpose |\n|--------|---------|\n| `cover` | Title/cover slide |\n| `center` | Centered content |\n| `default` | Standard slide |\n| `two-cols` | Two columns (use `::right::`) |\n| `two-cols-header` | Header + two columns |\n| `image` / `image-left` / `image-right` | Image layouts |\n| `iframe` / `iframe-left` / `iframe-right` | Embed URLs |\n| `quote` | Quotation |\n| `section` | Section divider |\n| `fact` / `statement` | Data/statement display |\n| `intro` / `end` | Intro/end slides |\n\n## Resources\n\n- Documentation: https://sli.dev\n- Theme Gallery: https://sli.dev/resources/theme-gallery\n- Showcases: https://sli.dev/resources/showcases\n","licenseDocuments":[]}}
slidev【文档与办公】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.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Web-based slides maker built on Vite, Vue, and Markdown.
pnpm create slidev # Create project
pnpm run dev # Start dev server
pnpm run export # Export to PDF
---
theme: default
title: My Presentation
---
# First Slide
Content here
---
# Second Slide
More content
<!--
Presenter notes go here
-->
--- separates slides| 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 | Usage | Reference |
|---|---|---|
| Line highlighting | ```ts {2,3} | code-line-highlighting |
| Click-based highlighting | ```ts {1|2-3|all} | code-line-highlighting |
| Line numbers | lineNumbers: true or {lines:true} | code-line-numbers |
| Scrollable code | {maxHeight:'100px'} | code-max-height |
| Code tabs | ::code-group (requires mdc: true) | code-groups |
| Monaco editor | ```ts {monaco} | editor-monaco |
| Run code | ```ts {monaco-run} | editor-monaco-run |
| Edit files | <<< ./file.ts {monaco-write} | editor-monaco-write |
| Code animations | ````md magic-move | code-magic-move |
| TypeScript types | ```ts twoslash | code-twoslash |
| Import code | <<< @/snippets/file.js | code-import-snippet |
| Feature | Usage | Reference |
|---|---|---|
| Mermaid diagrams | ```mermaid | diagram-mermaid |
| PlantUML diagrams | ```plantuml | diagram-plantuml |
| LaTeX math | $inline$ or $block$ | diagram-latex |
| Feature | Usage | Reference |
|---|---|---|
| Canvas size | canvasWidth, aspectRatio | layout-canvas-size |
| Zoom slide | zoom: 0.8 | layout-zoom |
| Scale elements | <Transform :scale="0.5"> | layout-transform |
| Layout slots | ::right::, ::default:: | layout-slots |
| Scoped CSS | <style> in slide | style-scoped |
| Global layers | global-top.vue, global-bottom.vue | layout-global-layers |
| Draggable elements | v-drag, <v-drag> | layout-draggable |
| Icons | <mdi-icon-name /> | style-icons |
| Feature | Usage | Reference |
|---|---|---|
| Click animations | v-click, <v-clicks> | core-animations |
| Rough markers | v-mark.underline, v-mark.circle | animation-rough-marker |
| Drawing mode | Press C or config drawings: | animation-drawing |
| Direction styles | forward:delay-300 | style-direction |
| Note highlighting | [click] in notes | animation-click-marker |
| Feature | Usage | Reference |
|---|---|---|
| MDC syntax | mdc: true + {style="color:red"} | syntax-mdc |
| Block frontmatter | ```yaml instead of --- | syntax-block-frontmatter |
| Import slides | src: ./other.md | syntax-importing-slides |
| Merge frontmatter | Main entry wins | syntax-frontmatter-merging |
| Feature | Usage | Reference |
|---|---|---|
| Recording | Press G for camera | presenter-recording |
| Timer | duration: 30min, timer: countdown | presenter-timer |
| Remote control | slidev --remote | presenter-remote |
| Ruby text | notesAutoRuby: | presenter-notes-ruby |
| Feature | Usage | Reference |
|---|---|---|
| Export options | slidev export | core-exporting |
| Build & deploy | slidev build | core-hosting |
| Build with PDF | download: true | build-pdf |
| Cache images | Automatic for remote URLs | build-remote-assets |
| OG image | seoMeta.ogImage or og-image.png | build-og-image |
| SEO tags | seoMeta: | build-seo-meta |
| Feature | Usage | Reference |
|---|---|---|
| Side editor | Click edit icon | editor-side |
| VS Code extension | Install antfu.slidev | editor-vscode |
| Prettier | prettier-plugin-slidev | editor-prettier |
| Eject theme | slidev theme eject | tool-eject-theme |
| Feature | Usage | Reference |
|---|---|---|
| Slide hooks | onSlideEnter(), onSlideLeave() | api-slide-hooks |
| Navigation API | $nav, useNav() | core-global-context |
| 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 |