# 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
Description of what this screenshot shows