html-slides
Used when the user asks to "create HTML slides", "generate an HTML presentation", "make animated slides", "build interactive…
Used when the user asks to "create a PowerPoint", "generate PPTX slides", "make a PowerPoint presentation", "build a .pptx deck", "create editable slides", "PptxGenJS", "editable presentation", "corporate deck", "slide deck for sharing", or when the output format is PPTX for any
Claude Code
$ npx -y skills add proyecto26/slides-ai-plugin --skill pptx-slides --agent claude-code
Codex
$ npx skills add proyecto26/slides-ai-plugin --skill pptx-slides -a codex -y
Cursor
$ npx skills add proyecto26/slides-ai-plugin --skill pptx-slides -a cursor -y
Gemini CLI
$ npx skills add proyecto26/slides-ai-plugin --skill pptx-slides -a gemini-cli -y
GitHub Copilot
$ npx skills add proyecto26/slides-ai-plugin --skill pptx-slides -a github-copilot -y
OpenCode
$ npx skills add proyecto26/slides-ai-plugin --skill pptx-slides -a opencode -y
Windsurf
$ npx skills add proyecto26/slides-ai-plugin --skill pptx-slides -a windsurf -y
name: pptx-slides description: Used when the user asks to "create a PowerPoint", "generate PPTX slides", "make a PowerPoint presentation", "build a .pptx deck", "create editable slides", "PptxGenJS", "editable presentation", "corporate deck", "slide deck for sharing", or when the output format is PPTX for any presentation task. Also triggers on "export to PowerPoint", "pitch deck PPTX", "offline presentation", or when the context implies an editable/corporate format. Generates OOXML-compliant .pptx files with PptxGenJS, precise layout, text measurement, and overlap validation. version: 0.4.0
Generate professional, editable PowerPoint presentations using PptxGenJS (Node.js). Produces OOXML-compliant `.pptx` files with precise layout, text measurement, and overlap validation.
Every PPTX generation script imports the bundled TypeScript helper modules via bun:
import pptxgen from 'pptxgenjs';
import * as h from '${CLAUDE_PLUGIN_ROOT}/skills/pptx-slides/scripts/main.ts';
const pptx = new pptxgen();
pptx.layout = 'LAYOUT_16x9'; // 10" × 5.625"Run generation scripts with bun (no build step needed):
npx -y bun ${CLAUDE_PLUGIN_ROOT}/skills/pptx-slides/scripts/main.ts theme listDependencies (`skia-canvas`, `fontkit`, `linebreak`, `prismjs`) are auto-installed by bun on first run — no manual install step needed.
| Module | Key Exports | Purpose | |--------|-------------|---------| | **text** | `autoFontSize()`, `calcTextBoxHeightSimple()`, `scale()` | Font-aware text measurement via skia-canvas, adaptive sizing | | **theme** | `createTheme()`, `PRESETS`, `sectionBackground()` | Design token system with 12 curated presets | | **layout** | `warnIfSlideHasOverlaps()`, `alignSlideElements()`, `distributeSlideElements()` | Overlap detection, bounds checking, positioning | | **layout_builders** | `addFeatureGrid()`, `addCardRow()`, `addTimeline()`, `addMetricsRow()`, `addComparisonTable()` | High-level component builders | | **decorative** | `addStaircase()`, `addSectionBadge()`, `addProgressBar()`, `addSlideNumber()` | Visual personality elements | | **validation** | `validateDeck()` | Consolidated pre-save quality validation | | **code** | `codeToRuns()` | Prism.js syntax highlighting to PptxGenJS text runs | | **image** | `getImageDimensions()`, `imageSizingCrop()`, `imageSizingContain()` | Binary dimension detection and aspect-ratio sizing | | **svg** | `svgToDataUri()` | SVG sanitization and base64 data URI encoding | | **util** | `safeOuterShadow()`, `normalizeColor()`, `inchesToEmu()` | Shadow effects, color/unit conversion |
Pick a curated preset or create a custom theme:
// Use a preset
const theme = h.createTheme(h.PRESETS.darkMonospace);
// Or customize
const theme = h.createTheme({
accent: 'ff6b35',
font: { heading: 'Poppins', body: 'Inter' },
});**Available presets**: darkMonospace, swissModern, boldSignal, darkBotanical, cleanCorporate, neonCyber, warmMinimal, vintageEditorial, terminalGreen, gradientWave, midnightBlue, paperInk.
For mixed-background decks, define a section map:
const sectionMap = { '0': 'brand', '1-3': 'light', '4-8': 'default' };
const colors = { brand: theme.accent, light: theme.bg.secondary, default: theme.bg.primary };
slide.background = { color: h.sectionBackground(slideIndex, sectionMap, colors) };Use `scale()` instead of hardcoded font sizes — the PPTX equivalent of CSS `clamp()`:
const titleSize = h.scale(theme.size.title.min, theme.size.title.max, { bullets: 0, textLength: title.length });
const bodySize = h.scale(theme.size.body.min, theme.size.body.max, { bullets: 5, textLength: 800 });For precise text box fitting, use `autoFontSize()` with skia-canvas measurement:
const opts = h.autoFontSize('Long paragraph text...', 'Arial', { w: 8, h: 3, minFontSize: 14, maxFontSize: 28 });
slide.addText(text, { x: 1, y: 1.5, ...opts });1. **Plan layout** — Map content outline to slide types from `references/slide-patterns.md` 2. **Select theme** — Pick preset or define custom theme tokens 3. **Generate slides** — Build with helpers: `addFeatureGrid()`, `addCardRow()`, etc. 4. **Validate** — Run `h.validateDeck(pptx)` before saving 5. **Fix issues** — Adjust based on validation report, re-validate 6. **Deliver** — Provide `.pptx` file with speaker notes on every content slide
Run `h.validateDeck(pptx)` before saving every deck. It checks:
Turn any idea, outline, or existing deck into a professional presentation — straight from Claude Code.
Used when the user asks to "create HTML slides", "generate an HTML presentation", "make animated slides", "build interactive…
Used when the user asks to "create slides", "make a presentation", "build a deck", "design slides", "generate a pitch deck",…
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…
AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…
Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…
Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Use when the user wants to…