What is frontend-slides?
Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Zero dependencies — single HTML files with inline CSS/JS.
MoizIbnYousaf/marketing-cli
Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Zero dependencies — single HTML files with inline CSS/JS. Use when the user wants a presentation, pitch deck, conference talk slides, HTML slideshow, slide deck, investor deck, demo day slides, keynote-style presentation, or says 'make slides', 'presentation', 'pitch deck', 'conference talk', 'convert my PPT', 'HTML slides', 'talk slides', or wants beautiful animated slides without PowerPoint. Also
npx skills add https://github.com/MoizIbnYousaf/marketing-cli --skill "skills/frontend-slides"Quick start
Install it or open the source, trigger it with a clear task, then follow the source workflow.
npx skills add https://github.com/MoizIbnYousaf/marketing-cli --skill "skills/frontend-slides"Use frontend-slides to help me with: [describe your task]. Before you begin, tell me what input you need, the steps you will follow, and the expected output.
5 key workflow steps, examples, and cautions are distilled below.
Continue to the workflowDirect answers
Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Zero dependencies — single HTML files with inline CSS/JS.
It is relevant to workflows involving Engineering, Design.
SkillSignal detected this source-specific command: npx skills add https://github.com/MoizIbnYousaf/marketing-cli --skill "skills/frontend-slides". Inspect the repository and command before running it.
The upstream source does not declare a dedicated Agent platform.
Static analysis detected write-files signals. Review the cited source lines before installing; these signals are not a security audit.
This page combines upstream documentation with deterministic repository, quality, and static-risk signals. It is not described as a manual test or security review.
SkillSignal brief
Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Zero dependencies — single HTML files with inline CSS/JS.
Useful in these contexts
Core capabilities
Distilled from the source
About 9 min · 13 sections
Use when the user wants a presentation, pitch deck, conference talk slides, HTML slideshow, slide deck, investor deck, demo day slides, keynote-style presentation, or says 'make slides', 'presentation', 'pitch deck', 'c…
Phase 0: Detect Mode
Phase 1: Content Discovery (New Presentations)
Phase 2: Style Discovery
Phase 3: Generate Presentation
Phase 4: PPT Conversion
Quality breakdown
Based on traceable docs and repository signals; stars are not treated as quality.
Compare before choosing
These links are selected from shared tasks, functions, stacks, platforms, and same-name variants. Compare the source owner, documentation, permissions, and maintenance signals.
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.
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.
Open Design as a worked AI-workflow example: how local agents read your files and design on your desktop — concretely. Built as a decision-grade AI literacy deck for teams new to AI, leadership.
Generate animation-rich HTML presentations with visual style previews. Useful for online keynotes, embedded talks, and interactive briefs.
从零开始或通过转换PowerPoint文件创建令人惊艳、动画丰富的HTML演示文稿。当用户想要构建演示文稿、将PPT/PPTX转换为网页格式,或为演讲/推介创建幻灯片时使用。帮助非设计师通过视觉探索而非抽象选择发现他们的美学。
Create zero-dependency, animation-rich HTML presentations that run entirely in the browser.
brand/creative-kit.md — Brand colors, fonts, logo pathsbrand/voice-profile.md — Copy tone for slide textbrand/creative-kit.md for brand colors and fonts. If found, use them as defaults in Phase 2 style selection — suggest presets that complement the brand palette, or offer a "Brand Custom" option that uses their exact colors/fonts.brand/voice-profile.md for copy tone. If found, use it to guide slide copy style (formal vs. conversational vs. bold) throughout Phases 1 and 3.You tend to converge toward generic, "on distribution" outputs. In frontend design, this creates what users call the "AI slop" aesthetic. Avoid this: make creative, distinctive frontends that surprise and delight.
Focus on:
Avoid generic AI-generated aesthetics:
Interpret creatively and make unexpected choices that feel genuinely designed for the context. Vary between light and dark themes, different fonts, different aesthetics. You still tend to converge on common choices (Space Grotesk, for example) across generations. Avoid this: it is critical that you think outside the box!
These invariants apply to EVERY slide in EVERY presentation:
.slide must have height: 100vh; height: 100dvh; overflow: hidden;clamp(min, preferred, max) — never fixed px/remmax-height constraintsmax-height: min(50vh, 400px)prefers-reduced-motion support-clamp(), -min(), -max() are silently ignored) — use calc(-1 * clamp(...)) insteadWhen generating, read viewport-base.css and include its full contents in every presentation.
| Slide Type | Maximum Content |
|---|---|
| Title slide | 1 heading + 1 subtitle + optional tagline |
| Content slide | 1 heading + 4-6 bullet points OR 1 heading + 2 paragraphs |
| Feature grid | 1 heading + 6 cards maximum (2x3 or 3x2) |
| Code slide | 1 heading + 8-10 lines of code |
| Quote slide | 1 quote (max 3 lines) + attribution |
| Image slide | 1 heading + 1 image (max 60vh height) |
Content exceeds limits? Split into multiple slides. Never cram, never scroll.
Determine what the user wants:
When enhancing existing presentations, viewport fitting is the biggest risk:
max-height: min(50vh, 400px). If slide already has max content, split into two slides.slide has overflow: hidden, new elements use clamp(), images have viewport-relative max-height, content fits at 1280x720When adding images to existing slides: Move image to new slide or reduce other content first. Never add images without checking if existing content already fills the viewport.
Ask ALL questions in a single AskUserQuestion call so the user fills everything out at once:
Question 1 — Purpose (header: "Purpose"): What is this presentation for? Options: Pitch deck / Teaching-Tutorial / Conference talk / Internal presentation
Question 2 — Length (header: "Length"): Approximately how many slides? Options: Short 5-10 / Medium 10-20 / Long 20+
Question 3 — Content (header: "Content"): Do you have content ready? Options: All content ready / Rough notes / Topic only
Question 4 — Inline Editing (header: "Editing"): Do you need to edit text directly in the browser after generation? Options:
Remember the user's editing choice — it determines whether edit-related code is included in Phase 3.
If user has content, ask them to share it.
If user selected "No images" → skip to Phase 2.
If user provides an image folder:
Logo in previews: If a usable logo was identified, embed it (base64) into each style preview in Phase 2 — the user sees their brand styled three different ways.
This is the "show, don't tell" phase. Most people can't articulate design preferences in words.
Ask how they want to choose (header: "Style"):
If direct selection: Show preset picker and skip to Phase 3. Available presets are defined in STYLE_PRESETS.md.
Ask (header: "Vibe", multiSelect: true, max 2): What feeling should the audience have? Options:
Based on mood, generate 3 distinct single-slide HTML previews showing typography, colors, animation, and overall aesthetic. Read STYLE_PRESETS.md for available presets and their specifications.
| Mood | Suggested Presets |
|---|---|
| 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 |
Save previews to .claude-design/slide-previews/ (style-a.html, style-b.html, style-c.html). Each should be self-contained, ~50-100 lines, showing one animated title slide.
Open each preview automatically for the user.
Ask (header: "Style"): Which style preview do you prefer? Options: Style A: [Name] / Style B: [Name] / Style C: [Name] / Mix elements
If "Mix elements", ask for specifics.
Generate the full presentation using content from Phase 1 (text, or text + curated images) and style from Phase 2.
If images were provided, the slide outline already incorporates them from Step 1.2. If not, CSS-generated visuals (gradients, shapes, patterns) provide visual interest — this is a fully supported first-class path.
Before generating, read these supporting files:
Key requirements:
<style> block/* === SECTION NAME === */ comment blockWhen converting PowerPoint files:
python scripts/extract-pptx.py <input.pptx> <output_dir> (install python-pptx if needed: pip install python-pptx)slides.json — Structured slide data (titles, bullets, notes)assets/ — Extracted images.claude-design/slide-previews/ if it existsopen [filename].html to launch in browser:root CSS variables for colors, font link for typography, .reveal class for animations[name].html # Self-contained presentation (all CSS/JS inline)
[name]-assets/ # Images (only if images were provided)
If style previews were generated, they were in .claude-design/slide-previews/ and have been cleaned up.
| File | Purpose | When to Read |
|---|---|---|
| STYLE_PRESETS.md | 12 curated visual presets with colors, fonts, and signature elements | Phase 2 (style selection) |
| viewport-base.css | Mandatory responsive CSS — copy into every presentation | Phase 3 (generation) |
| html-template.md | HTML structure, JS features, code quality standards | Phase 3 (generation) |
| animation-patterns.md | CSS/JS animation snippets and effect-to-feeling guide | Phase 3 (generation) |
| scripts/extract-pptx.py | Python script for PPT content extraction | Phase 4 (conversion) |