Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add JasonLo/skill-sommelier --skill "ss-make-slides"
Install specific skill from multi-skill repository
# Description
Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Use when the user wants to build a presentation, convert a PPT/PPTX to web, or create slides for a talk/pitch. Helps non-designers discover their aesthetic through visual exploration rather than abstract choices.
# SKILL.md
name: ss-make-slides
description: Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Use when the user wants to build a presentation, convert a PPT/PPTX to web, or create slides for a talk/pitch. Helps non-designers discover their aesthetic through visual exploration rather than abstract choices.
allowed-tools:
- Read
- Write
- Edit
- Bash
- WebFetch
Frontend Slides Skill
Create zero-dependency, animation-rich HTML presentations that run entirely in the browser.
When to Use
- Building a presentation from scratch
- Converting PowerPoint/PPTX to a web-based format
- Creating slides for a talk, pitch, or lecture
When NOT to Use
- Slidev/reveal.js projects β use those tools directly
- Documents or reports β this is for slide decks only
Core Philosophy
- Zero Dependencies β Single HTML files with inline CSS/JS. No npm, no build tools.
- Show, Don't Tell β Generate visual previews, not abstract choices.
- Distinctive Design β Avoid generic "AI slop" aesthetics.
- Production Quality β Well-commented, accessible, performant.
- Viewport Fitting (CRITICAL) β Every slide MUST fit exactly within the viewport. No scrolling. See
references/viewport-css.md.
CRITICAL: Viewport Fitting
Every slide must be fully visible without scrolling on any screen size.
- Each slide = exactly
100vh/100dvh,overflow: hidden - All typography uses
clamp()for responsive scaling - Content per slide respects density limits (max 4-6 bullets, max 6 cards)
- Breakpoints for heights: 700px, 600px, 500px
Full CSS architecture and checklist: references/viewport-css.md
Phase 0: Detect Mode
- Mode A: New Presentation β Phase 1
- Mode B: PPT Conversion β Phase 4
- Mode C: Enhancement β Read existing file, then enhance
Phase 1: Content Discovery (New Presentations)
Ask via AskUserQuestion:
- Purpose β Pitch deck / Teaching / Conference talk / Internal presentation
- Length β Short (5-10) / Medium (10-20) / Long (20+)
- Content readiness β All ready / Rough notes / Topic only
If user has content, ask them to share it.
Phase 2: Style Discovery
Two paths:
Option A: Guided Discovery (Default)
1. Ask mood: Impressed/Confident, Excited/Energized, Calm/Focused, Inspired/Moved (multiSelect, up to 2)
2. Generate 3 mini HTML previews in .claude-design/slide-previews/ based on mood
3. User picks favorite or mixes elements
Option B: Direct Selection β User picks from preset list, skip to Phase 3.
Available Presets
| Preset | Vibe | Best For |
|---|---|---|
| Bold Signal | Confident, high-impact | Pitch decks, keynotes |
| Electric Studio | Clean, professional | Agency presentations |
| Creative Voltage | Energetic, retro-modern | Creative pitches |
| Dark Botanical | Elegant, sophisticated | Premium brands |
| Notebook Tabs | Editorial, organized | Reports, reviews |
| Pastel Geometry | Friendly, approachable | Product overviews |
| Split Pastel | Playful, modern | Creative agencies |
| Vintage Editorial | Witty, personality-driven | Personal brands |
| Neon Cyber | Futuristic, techy | Tech startups |
| Terminal Green | Developer-focused | Dev tools, APIs |
| Swiss Modern | Minimal, precise | Corporate, data |
| Paper & Ink | Literary, thoughtful | Storytelling |
Mood β Preset Mapping
| Mood | Options |
|---|---|
| Impressed/Confident | Bold Signal, Electric Studio, Dark Botanical |
| Excited/Energized | Creative Voltage, Neon Cyber, Split Pastel |
| Calm/Focused | Notebook Tabs, Paper & Ink, Swiss Modern |
| Inspired/Moved | Dark Botanical, Vintage Editorial, Pastel Geometry |
Preview Requirements
Each preview: self-contained HTML, single title slide, animated, ~50-100 lines.
Never use: Purple gradients on white, Inter/Roboto/system fonts, standard blue primary, predictable hero layouts.
Instead use: Unique font pairings (Clash Display, Satoshi, Cormorant Garamond, DM Sans), cohesive color themes, atmospheric backgrounds, signature animations.
Phase 3: Generate Presentation
HTML Architecture
Single self-contained HTML file with:
- CSS Custom Properties β All theme values in
:rootfor easy customization - Mandatory viewport fitting CSS β See
references/viewport-css.md - SlidePresentation JS class β Keyboard nav, touch/swipe, mouse wheel, progress bar, nav dots
- Intersection Observer β Scroll-triggered
.visibleclass for animations - Accessibility β Semantic HTML, ARIA labels, reduced motion support
Animation patterns and effects: references/animation-patterns.md
Code Quality
- Every CSS/JS section has clear comments
- Semantic HTML (
<section>,<nav>,<main>) - Keyboard navigation works
@media (prefers-reduced-motion: reduce)support
Phase 4: PPT Conversion
- Extract β Use
python-pptxto extract text, images, notes - Confirm β Present extracted content structure to user
- Style β Proceed to Phase 2 for style selection
- Generate β Convert to chosen style, preserving all content and images
Phase 5: Delivery
- Clean up
.claude-design/slide-previews/if it exists - Open presentation with
open [filename].html - Provide summary with navigation instructions and customization tips
Troubleshooting
| Issue | Fix |
|---|---|
| Fonts not loading | Check Fontshare/Google Fonts URL and CSS font names |
| Animations not triggering | Verify Intersection Observer and .visible class |
| Scroll snap broken | Check scroll-snap-type on html and scroll-snap-align on slides |
| Mobile issues | Disable heavy effects at 768px, test touch events |
| Performance | Use will-change sparingly, prefer transform/opacity animations |
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.