Generate YouTube-optimized gradient-based black presentations with professional animations, keyboard-interactive bullets, and soft audio feedback. Creates production-ready HTML files with SDD aesthetic.
HTML Presenter Skill - YouTube Presentation Generator
Generate production-ready YouTube presentations with gradient-based black aesthetic, center-aligned content, keyboard-interactive elements, and professional animations.
Pre-Generation Interview (MANDATORY)
Before generating ANY content, the agent MUST ask the user the following questions interactively using the vscode_askQuestions tool. Do NOT skip this step or assume defaults.
Step 0: Gather Requirements
Questions to ask (in this order):
Topic: "What is the presentation about?"
Folder Name: "What should the project folder be named? (e.g., spring-ai-chatclient, mcp-overview)"
Audience Level: "Who is the audience? (BEGINNER / INTERMEDIATE / EXPERT)"
Presenter Name: "Name for the title slide? (leave blank to skip)"
Key Content: "What are the main points or concepts to cover?"
Workflow Diagrams: "Do you need animated workflow/system design diagrams? (YES / NO)"
Animated GIFs: (Only if workflow diagrams = YES) "Do you already have animated GIF assets for the diagrams, or should I help you create them using Draw.io XML?"
Optional follow-ups:
Documentation URLs for content research
Style preferences (must comply with black aesthetic)
Specific slide structures or examples
📁 Folder-Based Output Structure (MANDATORY)
Every presentation MUST be generated inside its own project folder. Never output a loose HTML file.
Folder Structure
<folder-name>/
├── index.html # Main presentation file
├── images/ # All image assets
│ ├── workflow-diagram.gif # Animated GIF exports from Draw.io
│ ├── architecture.gif # System design animated exports
│ └── ... # Any other image assets
├── drawio/ # Draw.io XML source files (if applicable)
│ ├── workflow-diagram.drawio # Editable diagram source
│ ├── architecture.drawio # Editable diagram source
│ └── ...
Folder Rules
Folder is created inside the workspace root (or user-specified path)
Folder name comes from the user interview (Step 0, question 2)
images/ directory is always created (even if empty initially)
drawio/ directory is created only when workflow diagrams are needed
The HTML file references images using relative paths: images/filename.gif
Shared Feedback Reference (MANDATORY)
Presentation feedback is stored OUTSIDE generated project folders
Use a shared file at .github/skills/HTML_presentation/presentation-feedback.md
This file accumulates reusable lessons across presentations
Before generating ANY new presentation, the agent MUST read this shared feedback file first
New review feedback from the current project must be appended to the shared feedback file after each pause point
🎯 Core Design Principles (MANDATORY)
1. Gradient-Based Black Theme (🔥 NON-NEGOTIABLE)
Pure black background (#000000) on every slide
Purple/magenta gradients at TOP-LEFT and BOTTOM-RIGHT corners
Gradient specifications:
Top-left purple: rgba(139, 0, 255, 0.4)
Top-left magenta: rgba(217, 70, 239, 0.35)
Bottom-right: rgba(50, 20, 80, 0.3)
Gradients must be PROMINENT and VISIBLE
No light mode, no alternatives, no toggle switches
2. Center-Aligned Content (CRITICAL)
All content vertically and horizontally centered
Symmetric positioning around slide midpoint
Gradients frame content like a stage
Never offset or asymmetrically positioned
3. Text Containment & Typography (MANDATORY)
All text center-aligned and contained within boundaries
Container: 85% max-width
Paragraphs: 88% max-width
Headings: 95% max-width
All text includes: word-wrap: break-word; overflow-wrap: break-word;
Font scaling using clamp() for responsiveness
4. Icon-First Design
Prefer icons over generic shapes
Use Font Awesome CDN or SVG
Each concept gets an associated icon
Icons are focal points; text supports icons
5. Interactive Elements (MANDATORY)
ALL feature cards and bullet points are TAB-focusable (tabindex="0")
Styled with gradient borders and smooth transitions
Exactly ONE element highlighted at a time when selected
TAB focus MUST also move the selected/highlighted state to the newly focused element
If a slide has multiple tabbable items, pressing TAB must advance selection to the next item in order
Professional, minimal appearance that frames content
Keeps all content centered and readable
🎞️ Animation Rules
Fade-in elements
Slide-in components
Flow animations (SVG paths)
Highlight active nodes
Smooth easing (cubic-bezier)
📎 Style Rules
Max 3 primary colors
Minimal text
Clean spacing
Smooth animations
Principle: Show > Tell
Implementation Steps (STEP-WISE GENERATION)
Generation MUST proceed step by step. After each major step, save progress and ask for user feedback before continuing. Do NOT generate the entire presentation in one shot.
Step 0: Review Shared Feedback Before Starting
Read .github/skills/HTML_presentation/presentation-feedback.md before planning or generating anything
Extract reusable constraints, repeated corrections, and visual preferences from prior projects
Apply those lessons to the current presentation from the start
If the file does not exist yet, create it from the shared feedback template and continue
Step 1: Create Project Folder & Structure
Create the project folder with the name from the interview
Ask them to review and adjust the diagram if needed
3. Export as Animated GIF
Guide the user through export:
In Draw.io: File → Export as → Animated GIF (if supported)
OR: File → Export as → GIF/PNG for static, then animate in the HTML presentation instead
Alternative: Export as SVG and use CSS/JS animation in the HTML directly
Save the exported file to: <folder>/images/<diagram-name>.gif
4. Confirm & Reference
Ask user to confirm the GIF is saved in the images/ folder
Ask user for the exact filename
Reference in the HTML: <img src="images/<diagram-name>.gif" alt="Workflow Diagram" />
Fallback: Inline SVG Animation
If the user prefers not to use Draw.io or cannot export animated GIFs:
Generate the diagram directly as inline SVG in the HTML
Use the existing System Design Diagram Engine with animated dotted connectors
This is the default behavior for simple diagrams
🎬 Visual Storytelling Engine (CRITICAL)
Each concept must follow:
Introduce → minimal concept
Build → add components
Animate → show interactions
Highlight → active component
Explain → short supporting text
Slides must feel like progressive thinking, not static content.
🔵 System Design Diagram Engine (MANDATORY)
At least 1–2 slides must include animated system design diagrams.
Premium Diagram Style (MANDATORY WHEN USER ASKS FOR THIS LOOK)
Match this visual logic: dark canvas, large title, strong focal blocks, clean negative space, and obvious left-to-right or looped flow
Prefer a few large blocks over many small blocks
Diagram blocks should feel like product cards, not plain rectangles
Use glow-backed blocks with strong contrast and restrained neon accents
When a presentation opens with a workflow or system diagram, the startup motion should feel mechanical and sequential, like interlocking cogs engaging one stage at a time
Keep blocks visually separated with generous whitespace so connectors live in the gaps only
The overall composition must remain readable from a video thumbnail or paused frame
The motion must feel continuous and premium, not busy or technical for its own sake
Loop diagrams should use a clean return path outside the main horizontal lane
If there is a loop-back path, route it around the content, not through the middle of the node labels
Labels such as tool invocation text or protocol notes may sit near connectors, but must never collide with the animated path
When the user wants lighter or more abstract visuals, icon-only nodes are allowed and should be preferred over forcing card blocks
Requirements:
Use SVG (preferred)
Nodes = services/components and may be represented as boxed nodes or icon-only nodes
Arrows = connections
Every diagram node MUST include an icon, whether the node is boxed or icon-only
Icons must be semantic to the node type, not decorative placeholders
If the node is boxed, icon placement must stay inside the node with safe padding and must not overlap node text
If the node is icon-only, keep a safe label gap below or beside the icon and avoid overlap with connectors
Node layout order should usually be: icon first, title second, supporting label third
Text inside diagram nodes must remain fully contained; shrink text before allowing overflow
Node icons should be visually prominent, roughly 18-28% of the boxed node height, or visually dominant if icon-only
Node text should usually sit below the icon in a vertically centered stack, but icon-only diagrams may place short labels beside the icon when cleaner
Primary node titles should be short, ideally 1-3 words
Supporting labels should be optional and lower contrast
If an external system sits outside the main loop, place it at the diagram edge with a smaller icon-first treatment
Do not force a rectangle or card around every node if the diagram reads better with standalone icons
MUST include:
Moving dotted line or balls (not both, moving dotted line preferred) representing data flow
Startup animation for workflow-first slides should feel like staged mechanical engagement rather than a soft ambient fade
If moving dotted line is used, it MUST run only in the gap between two connected components
NEVER draw the animated dotted line underneath, behind, or through a node block
Each relationship must have its own connector segment; do not use one long animated line behind multiple blocks
Every animated connector MUST terminate visually at the destination node using an arrowhead or equivalent directional ending
It must be immediately clear which node is the source and which node is the destination
The animation must loop continuously to show ongoing flow
The currently targeted destination node must be highlighted with glow or slight scale while its connector is active
The flow must not overlap text, icons, labels, or other important elements
The flow must be clearly visible against the background and must not blend into the glass window or node fills
The flow speed must be moderate and readable for YouTube capture, not too fast and not too slow
The dotted line size and spacing must be large enough to read on video, but not so large that it overwhelms the diagram
Continuous looping animation
Clear direction of flow
Active node highlighting (glow or scale)
Prefer moving dotted segments over moving balls for premium animated diagrams
Dotted segments should look like traveling packets, not a static dashed border
Dotted motion should have enough contrast that the viewer notices it immediately without searching
Connectors should usually be horizontal or gently curved; avoid jagged routing
Use one animation rhythm across the full diagram so multiple segments feel coordinated
When several connectors animate at once, stagger them slightly instead of making them identical clones
Diagram Layout Rules (STRICT)
Main lane diagrams should usually follow a left-to-right reading order
Keep at least 24-40px of clear space between block edge and connector animation path on 1080p layouts
Connector animation must sit centered in the gap between nodes
Use arrowheads that are large enough to survive YouTube compression
Do not let arrowheads touch the target block; leave a small landing gap
If there is a bottom loop, route it below the blocks with a broad rounded corner path
Loop-back connectors should return to the source-side component cleanly without crossing the main lane
Decorative glows should sit behind blocks, not behind animated connector segments
Node block sizes should be consistent across siblings unless one block is intentionally emphasized
For icon-only diagrams, keep at least 24-40px between the icon edge and connector animation path
For icon-only diagrams, labels must sit outside the connector lane and remain readable at recording size
Diagram Visual Hierarchy (STRICT)
Title or section heading above the diagram
Main nodes as the strongest visual elements, whether boxed or icon-only
Animated dotted connectors as secondary motion cues
Small labels and annotations as tertiary elements
Never let annotations overpower the blocks or the direction of flow
If a diagram contains both a main path and a side path, the main path should be visually dominant
document.querySelectorAll('.feature-card, .provider-item').forEach((element) => {
element.addEventListener('click', function() {
playClickSound();
// Remove from ALL interactive elements
document.querySelectorAll('.feature-card, .provider-item').forEach(el => {
el.classList.remove('selected');
});
// Add ONLY to clicked element
this.classList.add('selected');
});
});
Do NOT:
❌ Pre-select first element
❌ Add .selected class by default
❌ Highlight multiple elements
❌ Keep previous selection when clicking new element
After each pause point, collect and store user feedback in the shared external file .github/skills/HTML_presentation/presentation-feedback.md.
Feedback File Format
# Presentation Feedback Knowledge Base
## How To Use
- Read this file before starting any new presentation
- Apply repeated corrections proactively
- Append new project feedback after each review round
---
## Project: <Topic>
## Folder: <folder-name>
## Date: <Date>
---
### Round 1 — Outline Review
**Date:** <timestamp>
**User Feedback:**
> <user's verbatim feedback>
**Actions Taken:**
- <what was changed based on feedback>
---
### Round 2 — Initial Slides Review
**Date:** <timestamp>
**User Feedback:**
> <user's verbatim feedback>
**Actions Taken:**
- <what was changed>
---
### Round N — Final Review
...
---
## Reusable Guidance
- <patterns that should influence the next presentation>
Feedback Rules
ALWAYS read .github/skills/HTML_presentation/presentation-feedback.md before starting another presentation
ALWAYS ask for feedback after each step's pause point
ALWAYS log feedback verbatim in the shared feedback file
ALWAYS log what actions were taken in response
ALWAYS re-read the shared feedback file before starting the next step to ensure accumulated feedback is respected
If the user says "looks good" or "no changes", still log it as confirmation
If the same issue appears in multiple rounds, flag it and prioritize fixing it
At the end of the project, review the shared feedback file for patterns that should be incorporated into this SKILL file
Learning from Feedback
After completing a presentation, if recurring feedback patterns emerge (e.g., "text too small", "diagrams too busy"), the agent should suggest updating this SKILL.md to prevent the issue in future presentations.
Example Usage
User asks:
Create a YouTube presentation on Spring AI ChatClient API. 12 slides, intermediate level, presenter Kumar Pallav