# presentation-builder > This skill should be used when building professional PowerPoint presentations, creating slide decks with icons or AI-generated images, capturing application screenshots for appendices, or converting HTML slides to PPTX format. Integrates Go Bananas for hero image generation, react-icons with Sharp for icon rendering, Playwright for authenticated screenshot capture, and pptxgenjs for final PPTX output. Use for: "create presentation", "build pptx", "PowerPoint presentation", "create slide deck", "add screenshots to slides", "generate presentation images", "HTML to PowerPoint", "icons for slides", "capture app screenshots for presentation", "Go Bananas presentation images", "Sharp image processing". - Author: Davendra Patel - Repository: davendra/presentation-builder - Version: 20260123101848 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/davendra/presentation-builder - Web: https://mule.run/skillshub/@@davendra/presentation-builder~presentation-builder:20260123101848 --- --- name: presentation-builder description: | This skill should be used when building professional PowerPoint presentations, creating slide decks with icons or AI-generated images, capturing application screenshots for appendices, or converting HTML slides to PPTX format. Integrates Go Bananas for hero image generation, react-icons with Sharp for icon rendering, Playwright for authenticated screenshot capture, and pptxgenjs for final PPTX output. Use for: "create presentation", "build pptx", "PowerPoint presentation", "create slide deck", "add screenshots to slides", "generate presentation images", "HTML to PowerPoint", "icons for slides", "capture app screenshots for presentation", "Go Bananas presentation images", "Sharp image processing". --- # Presentation Builder Build professional PowerPoint presentations with automated screenshot capture, icons, AI-generated images, and HTML-to-PPTX conversion. ## Core Workflow 1. **Plan slides** - Define structure (main content + optional appendix screenshots) 2. **Generate visuals** - Use Go Bananas for hero images, Sharp for processing 3. **Create icons** - Render react-icons as PNG with Sharp 4. **Capture screenshots** - Use Playwright for authenticated app screenshots 5. **Create HTML slides** - Use 720pt x 405pt (16:9) template 6. **Build PPTX** - Convert HTML to PowerPoint with pptxgenjs --- ## Quick Start Commands This plugin provides 4 slash commands for common tasks: | Command | Description | |---------|-------------| | `/new-presentation` | Scaffold a new presentation project with folders, scripts, and sample files | | `/build-presentation` | Build PPTX from HTML slides in the current project | | `/capture-screenshots` | Configure and run Playwright screenshot capture | | `/render-icons` | Generate PNG icons from react-icons library | --- ## Icons with React-Icons + Sharp **CRITICAL**: Icons must be rasterized to PNG before use in slides. HTML slides cannot render SVG directly. To render icons: 1. Create a rendering script using react-icons + Sharp 2. Export icons as PNG to `assets/icons/` 3. Reference PNGs in HTML slides See [icons-guide.md](references/icons-guide.md) for complete rendering script, icon library reference, and batch processing patterns. **Usage in HTML slides:** ```html ``` --- ## Go Bananas Image Generation (Optional) If Go Bananas MCP is available, use it for professional hero images, backgrounds, and visual elements. The plugin works without Go Bananas - you can use any images. ```javascript generate_image({ prompt: "Professional sports apparel manufacturing, athletic jerseys on production line, modern factory with red accent lighting, cinematic wide shot", aspect_ratio: "16:9", n: 3 // Generate options for user approval }) ``` **Best practices:** - Always use `16:9` aspect ratio for slide backgrounds - Generate 2-3 options before applying - Include brand colors in prompt (e.g., "red accent lighting") - Use descriptive, industry-specific prompts See [go-bananas-guide.md](references/go-bananas-guide.md) for prompt templates, style modifiers, and post-processing workflow. --- ## Sharp Image Processing Use Sharp for post-processing images before adding to slides. **Common operations:** - Darken backgrounds for text readability - Add vignette effect (fade edges) - Apply color tints/brand overlays - Blur backgrounds - Resize to slide dimensions (1920x1080) **Example - Darken for text overlay:** ```javascript await sharp('hero-image.jpg') .resize(1920, 1080, { fit: 'cover' }) .composite([{ input: Buffer.from(` `), blend: 'over' }]) .jpeg({ quality: 90 }) .toFile('hero-darkened.jpg'); ``` See [sharp-guide.md](references/sharp-guide.md) for vignette effects, gradient overlays, color tints, and batch processing. --- ## Screenshot Capture Use Playwright for authenticated app screenshots. See `scripts/capture-screenshots.js` for a complete template. **Key patterns:** ```javascript const { chromium } = require('playwright'); const VIEWPORT = { width: 1920, height: 1080 }; // Wait for dynamic content await page.goto(url, { waitUntil: 'networkidle' }); await delay(5000); // Extra delay for data-heavy pages // Login flow await page.fill('input[type="email"]', email); await page.fill('input[type="password"]', password); await page.click('button[type="submit"]'); await page.waitForURL(/\/dashboard/); ``` See [screenshots-guide.md](references/screenshots-guide.md) for authentication flows, handling dynamic content, and batch capture scripts. --- ## HTML Slide Template Standard slide dimensions: **720pt x 405pt** (16:9 ratio) **Appendix screenshot slide:** ```html

Appendix - Section Name

Slide Title

Description of what this screenshot shows

``` See [slide-templates.md](references/slide-templates.md) for title slides, content slides, feature cards with icons, stats slides, and more. --- ## Build Script Pattern This plugin bundles `html2pptx.js` - copy it to your presentation project: ```javascript const pptxgen = require('pptxgenjs'); const html2pptx = require('./html2pptx.js'); const path = require('path'); const slides = [ 'slide01-title.html', 'slide02-content.html', 'slide31-appendix-dashboard.html', ]; async function buildPresentation() { const pptx = new pptxgen(); pptx.layout = 'LAYOUT_16x9'; pptx.title = 'Presentation Title'; const slidesDir = path.join(__dirname, 'slides'); for (const slideFile of slides) { await html2pptx(path.join(slidesDir, slideFile), pptx); } await pptx.writeFile({ fileName: 'output.pptx' }); } buildPresentation(); ``` --- ## Directory Structure ``` presentation/ ├── build-presentation.js # Main build script ├── html2pptx.js # HTML-to-PPTX converter (bundled in plugin) ├── package.json # Dependencies ├── slides/ │ ├── slide01-title.html │ ├── slide02-content.html │ └── slide31-appendix-*.html └── assets/ ├── hero-image.jpg # Go Bananas generated ├── hero-darkened.jpg # Sharp processed ├── icons/ │ ├── icon-orders.png │ └── icon-dashboard.png └── screenshot-*.png ``` --- ## Bundled Themes This plugin includes 4 professional color themes: | Theme | Primary | Secondary | Accent | |-------|---------|-----------|--------| | Corporate Blue | #1e3a5f (navy) | #f8fafc (light gray) | #3b82f6 (blue) | | Modern Red | #E31B23 (red) | #1e293b (dark gray) | #fbbf24 (amber) | | Tech Green | #10b981 (teal) | #0f172a (dark) | #06b6d4 (cyan) | | Warm Orange | #f97316 (orange) | #fef3c7 (cream) | #78350f (brown) | See `examples/themes/` for CSS files you can copy into your project. --- ## Dependencies ```bash npm install pptxgenjs playwright sharp react react-dom react-icons ``` --- ## Reference Documentation | Guide | Description | When to Read | |-------|-------------|--------------| | [html2pptx-guide.md](references/html2pptx-guide.md) | HTML-to-PPTX conversion details | Building presentations | | [icons-guide.md](references/icons-guide.md) | React icons library & rendering | Adding icons to slides | | [sharp-guide.md](references/sharp-guide.md) | Image processing operations | Processing backgrounds | | [go-bananas-guide.md](references/go-bananas-guide.md) | AI image generation prompts | Creating hero images | | [screenshots-guide.md](references/screenshots-guide.md) | Playwright screenshot capture | Capturing app screenshots | | [slide-templates.md](references/slide-templates.md) | Complete HTML slide templates | Creating slide content | ### Bundled Scripts | Script | Purpose | |--------|---------| | `scripts/capture-screenshots.js` | Playwright screenshot template with auth | | `scripts/render-icons.js` | React icons to PNG batch converter | | `scripts/process-images.js` | Sharp image processing utilities | | `scripts/html2pptx.js` | HTML-to-PPTX converter |