A world-class AgentSkill for producing professional HTML presentations in 36 themes, 15 full-deck templates, 31 page layouts, 47 animations (27 CSS + 20 canvas FX), and a true presenter mode with pixel-perfect previews + speaker script + timer — all pure
$ npx -y skills add lewislulu/html-ppt-skill --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: lewislulu/html-ppt-skill
What's inside
A world-class AgentSkill for producing professional HTML presentations in 36 themes, 15 full-deck templates, 31 page layouts, 47 animations (27 CSS + 20 canvas FX), and a true presenter mode with pixel-perfect previews + speaker script + timer — all pure static HTML/CSS/JS, no build step.
Author: lewis <sudolewis@gmail.com> License: MIT 中文文档: README.zh-CN.md

One command installs 36 themes × 20 canvas FX × 31 layouts × 15 full decks + presenter mode. Every preview above is a live iframe of a real template file rendering inside the deck — no screenshots, no mock-ups.
Press S on any deck to pop open a dedicated presenter window with four
draggable, resizable magnetic cards: current slide, next slide preview,
speaker script (逐字稿), and timer. Two windows stay in sync via
BroadcastChannel.

Why previews are pixel-perfect: each card is an <iframe> that loads the
same deck HTML with a ?preview=N query param. The runtime detects this and
renders only slide N with no chrome — so the preview uses the same CSS,
theme, fonts and viewport as the audience view. Colors and layout are
guaranteed identical.
Smooth (no-reload) navigation: on slide change, the presenter window
sends postMessage({type:'preview-goto', idx:N}) to each iframe. The iframe
just toggles .is-active between slides — no reload, no flicker.
Speaker script rules (3 golden):
See references/presenter-mode.md for the
full authoring guide, or copy the ready-made template at
templates/full-decks/presenter-mode-reveal/ which ships with full 150-300
word speaker scripts on every slide.
npx skills add https://github.com/lewislulu/html-ppt-skill
That registers the skill with your agent runtime. After install, any agent that supports AgentSkills can author presentations by asking things like:
"做一份 8 页的技术分享 slides,用 cyberpunk 主题" "turn this outline into a pitch deck" "做一个小红书图文,9 张,白底柔和风"
| Count | Where | |
|---|---|---|
| 🎤 Presenter mode | NEW | S key / ?preview=N |
| 🎨 Themes | 36 | assets/themes/*.css |
| 📑 Full-deck templates | 15 | templates/full-decks/<name>/ |
| 🧩 Single-page layouts | 31 | templates/single-page/*.html |
| ✨ CSS animations | 27 | assets/animations/animations.css |
| 💥 Canvas FX animations | 20 | assets/animations/fx/*.js |
| 🖼️ Showcase decks | 4 | templates/*-showcase.html |
| 📸 Verification screenshots | 56 | scripts/verify-output/ |
minimal-white, editorial-serif, soft-pastel, sharp-mono, arctic-cool,
sunset-warm, catppuccin-latte, catppuccin-mocha, dracula, tokyo-night,
nord, solarized-light, gruvbox-dark, rose-pine, neo-brutalism,
glassmorphism, bauhaus, swiss-grid, terminal-green, xiaohongshu-white,
rainbow-gradient, aurora, blueprint, memphis-pop, cyberpunk-neon,
y2k-chrome, retro-tv, japanese-minimal, vaporwave, midcentury,
corporate-clean, academic-paper, news-broadcast, pitch-deck-vc,
magazine-bold, engineering-whiteprint.

Each is a pure CSS-tokens file — swap one <link> to reskin the entire deck.
Browse them all in templates/theme-showcase.html (each slide rendered in an
isolated iframe so theme ≠ theme is visually guaranteed).

Eight extracted from real-world decks, seven generic scenario scaffolds:
Extracted looks
xhs-white-editorial — 小红书白底杂志风graphify-dark-graph — 暗底 + 力导向知识图谱knowledge-arch-blueprint — 蓝图 / 架构图风hermes-cyber-terminal — 终端 cyberpunkobsidian-claude-gradient — 紫色渐变卡testing-safety-alert — 红 / 琥珀警示风xhs-pastel-card — 柔和马卡龙图文dir-key-nav-minimal — 方向键极简Scenario decks
pitch-deck, product-launch, tech-sharing, weekly-report,
xhs-post (9-slide 3:4), course-module,
presenter-mode-reveal 🎤 — complete talk template with full 150-300
word speaker scripts on every slide, designed around the S key presenter modeEach is a self-contained folder with scoped .tpl-<name> CSS so multiple
decks can be previewed side-by-side without collisions. Browse the full
gallery in templates/full-decks-index.html.

cover · toc · section-divider · bullets · two-column · three-column · big-quote · stat-highlight · kpi-grid · table · code · diff · terminal · flow-diagram · timeline · roadmap · mindmap · comparison · pros-cons · todo-checklist · gantt · image-hero · image-grid · chart-bar · chart-line · chart-pie · chart-radar · arch-diagram · process-steps · cta · thanks
Every layout ships with realistic demo data so you can drop it into a deck and immediately see it render.

The big iframe is loading templates/single-page/<name>.html directly and cycling through all 31 layouts every 2.8 seconds.

CSS (lightweight) — directional fades, rise-in, zoom-pop, blur-in,
glitch-in, typewriter, neon-glow, shimmer-sweep, gradient-flow,
stagger-list, counter-up, path-draw, morph-shape, parallax-tilt,
card-flip-3d, cube-rotate-3d, page-turn-3d, perspective-zoom,
marquee-scroll, kenburns, ripple-reveal, spotlight, …
Canvas FX (cinematic) — particle-burst, confetti-cannon, firework,
starfield, matrix-rain, knowledge-graph (force-directed physics),
neural-net (signal pulses), constellation, orbit-ring, galaxy-swirl,
word-cascade, letter-explode, chain-react, magnetic-field,
data-stream, gradient-blob, sparkle-trail, shockwave,
typewriter-multi, counter-explosion. Each is a real hand-rolled canvas
module auto-initialised on slide enter via fx-runtime.js.
# Scaffold a new deck from the base template
./scripts/new-deck.sh my-talk
# Browse everything
open templates/theme-showcase.html # all 36 themes (iframe-isolated)
open templates/layout-showcase.html # all 31 layouts
open templates/animation-showcase.html # all 47 animations
open templates/full-decks-index.html # all 14 full decks
# Render any template to PNG via headless Chrome
./scripts/render.sh templates/theme-showcase.html
./scripts/render.sh examples/my-talk/index.html 12
← → Space PgUp PgDn Home End navigate
F fullscreen
S open presenter window (magnetic cards)
N quick notes drawer (bottom)
R reset timer (in presenter window)
O slide overview grid
T cycle themes (syncs to presenter)
A cycle a demo animation on current slide
#/N (URL) deep-link to slide N
?preview=N (URL) preview-only mode (single slide, no chrome)
html-ppt-skill/
├── SKILL.md agent-facing dispatcher
├── README.md this file
├── references/ detailed catalogs
│ ├── themes.md 36 themes with when-to-use
│ ├── layouts.md 31 layout types
│ ├── animations.md 27 CSS + 20 FX catalog
│ ├── full-decks.md 14 full-deck templates
│ └── authoring-guide.md full workflow
├── assets/
│ ├── base.css shared tokens + primitives
│ ├── fonts.css webfont imports
│ ├── runtime.js keyboard + presenter + overview
│ ├── themes/*.css 36 theme token files
│ └── animations/
│ ├── animations.css 27 named CSS animations
│ ├── fx-runtime.js auto-init [data-fx] on slide enter
│ └── fx/*.js 20 canvas FX modules
├── templates/
│ ├── deck.html minimal starter
│ ├── theme-showcase.html iframe-isolated theme tour
│ ├── layout-showcase.html all 31 layouts
│ ├── animation-showcase.html 47 animation slides
│ ├── full-decks-index.html 14-deck gallery
│ ├── full-decks/<name>/ 14 scoped multi-slide decks
│ └── single-page/*.html 31 layout files with demo data
├── scripts/
│ ├── new-deck.sh scaffold
│ ├── render.sh headless Chrome → PNG
│ └── verify-output/ 56 self-test screenshots
└── examples/demo-deck/ complete working deck
assets/base.css + the current theme file. Change one variable,
the whole deck reflows tastefully.<iframe> per slide so each preview is a real, independent render.MIT © 2026 lewis <sudolewis@gmail.com>.
.clawscan-allow
assets/
animations/
animations.css
fx/
fx-runtime.js
_util.js
chain-react.js
confetti-cannon.js
constellation.js
counter-explosion.js
data-stream.js
firework.js
galaxy-swirl.js
gradient-blob.js
knowledge-graph.js
letter-explode.js
magnetic-field.js
matrix-rain.js
neural-net.js
orbit-ring.js
particle-burst.js
shockwave.js
sparkle-trail.js
starfield.js
typewriter-multi.js
word-cascade.js
base.css
fonts.css
runtime.js
themes/
academic-paper.css
arctic-cool.css
aurora.css
bauhaus.css
blueprint.css
catppuccin-latte.css
catppuccin-mocha.css
corporate-clean.css
cyberpunk-neon.css
dracula.css
editorial-serif.css
engineering-whiteprint.css
glassmorphism.css
gruvbox-dark.css
japanese-minimal.css
magazine-bold.css
memphis-pop.css
midcentury.css
minimal-white.css
neo-brutalism.css
news-broadcast.css
nord.css
pitch-deck-vc.css
rainbow-gradient.css
retro-tv.css
rose-pine.css
sharp-mono.css
soft-pastel.css
solarized-light.css
sunset-warm.css
swiss-grid.css
terminal-green.css
tokyo-night.css
vaporwave.css
xiaohongshu-white.css
y2k-chrome.css
docs/
readme/
_theme-cell.html
animations.png
hero.gif
layouts-live.gif
layouts.png
montage-animations.html
montage-layouts.html
montage-templates.html
montage-themes.html
presenter-mode.png
templates.png
themes.png
examples/
demo-deck/
index.html
LICENSE
README.md
README.zh-CN.md
references/
animations.md
authoring-guide.md
full-decks.md
layouts.md
presenter-mode.md
themes.md
scripts/
new-deck.sh
render.sh
verify-output/
animation-showcase/
animation-showcase_01.png
animation-showcase_02.png
animation-showcase_03.png
animation-showcase_04.png
animation-showcase_05.png
animation-showcase_06.png
animation-showcase_07.png
animation-showcase_08.png
animation-showcase_09.png
animation-showcase_10.png
animation-showcase_11.png
animation-showcase_12.png
animation-showcase_13.png
animation-showcase_14.png
animation-showcase_15.png
animation-showcase_16.png
animation-showcase_17.png
animation-showcase_18.png
animation-showcase_19.png
animation-showcase_20.png
theme-showcase/
theme-showcase_01.png
theme-showcase_02.png
theme-showcase_03.png
theme-showcase_04.png
theme-showcase_05.png
theme-showcase_06.png
theme-showcase_07.png
theme-showcase_08.png
theme-showcase_09.png
theme-showcase_10.png
theme-showcase_11.png
theme-showcase_12.png
theme-showcase_13.png
theme-showcase_14.png
theme-showcase_15.png
theme-showcase_16.png
theme-showcase_17.png
theme-showcase_18.png
theme-showcase_19.png
theme-showcase_20.png
theme-showcase_21.png
theme-showcase_22.png
theme-showcase_23.png
theme-showcase_24.png
theme-showcase_25.png
theme-showcase_26.png
theme-showcase_27.png
theme-showcase_28.png
theme-showcase_29.png
theme-showcase_30.png
theme-showcase_31.png
theme-showcase_32.png
theme-showcase_33.png
theme-showcase_34.png
theme-showcase_35.png
theme-showcase_36.png
SKILL.md
templates/
.DS_Store
animation-showcase.html
deck.html
full-decks/
full-decks-index.html
course-module/
index.html
README.md
style.css
dir-key-nav-minimal/
index.html
README.md
style.css
graphify-dark-graph/
index.html
README.md
style.css
hermes-cyber-terminal/
index.html
README.md
style.css
knowledge-arch-blueprint/
index.html
README.md
style.css
obsidian-claude-gradient/
index.html
README.md
style.css
pitch-deck/
index.html
README.md
style.css
presenter-mode-reveal/
index.html
README.md
style.css
product-launch/
index.html
README.md
style.css
tech-sharing/
index.html
README.md
style.css
testing-safety-alert/
index.html
README.md
style.css
weekly-report/
index.html
README.md
style.css
xhs-pastel-card/
index.html
README.md
style.css
xhs-post/
index.html
README.md
style.css
xhs-white-editorial/
index.html
README.md
style.css
layout-showcase.html
single-page/
arch-diagram.html
big-quote.html
bullets.html
chart-bar.html
chart-line.html
chart-pie.html
chart-radar.html
code.html
comparison.html
cover.html
cta.html
diff.html
flow-diagram.html
gantt.html
image-grid.html
image-hero.html
kpi-grid.html
mindmap.html
process-steps.html
pros-cons.html
roadmap.html
section-divider.html
stat-highlight.html
table.html
terminal.html
thanks.html
three-column.html
timeline.html
toc.html
todo-checklist.html
two-column.html
theme-showcase.htmlFAQ
html-ppt-skill is a Claude Code plugin with 1 hand-picked skill for content work, indexed on Flowy. Install it with the command on its page. It includes html-ppt-skill. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.