html-ppt
HTML PPT Studio — author professional static HTML presentations in many styles, layouts, and animations, all driven by templates. Use when the user asks for a presentation, PPT, slides, keynote, deck, slideshow, "幻灯片", "演讲稿", "做一份 PPT", "做一份 slides", a reveal-style HTML deck, a 小红书 图文, or any kind of multi-slide pitch/report/sharing document that should look tasteful and be usable with keyboard navigation. Triggers include keywords like "presentation", "ppt", "slides", "deck", "keynote", "reveal", "slideshow", "幻灯片", "演讲稿", "分享稿", "小红书图文", "talk slides", "pitch deck", "tech sharing", "technical presentation".
- License 许可
- MIT
- 最近更新
- 2026-09-18
- Stars
- ★ 234
- Forks
- 36
01 前言 Front Matter
- name
- html-ppt
- description
- HTML PPT Studio — author professional static HTML presentations in many styles, layouts, and animations, all driven by templates. Use when the user asks for a presentation, PPT, slides, keynote, deck, slideshow, "幻灯片", "演讲稿", "做一份 PPT", "做一份 slides", a reveal-style HTML deck, a 小红书 图文, or any kind of multi-slide pitch/report/sharing document that should look tasteful and be usable with keyboard navigation. Triggers include keywords like "presentation", "ppt", "slides", "deck", "keynote", "reveal", "slideshow", "幻灯片", "演讲稿", "分享稿", "小红书图文", "talk slides", "pitch deck", "tech sharing", "technical presentation".
02 资源文件 224
- 其他.clawscan-allow623 B
- 资产文件assets/animations/animations.css7.9 KB
- 脚本assets/animations/fx-runtime.js3.1 KB
- 脚本assets/animations/fx/_util.js1.9 KB
- 脚本assets/animations/fx/chain-react.js1.4 KB
- 脚本assets/animations/fx/confetti-cannon.js1.5 KB
- 脚本assets/animations/fx/constellation.js1.3 KB
- 脚本assets/animations/fx/counter-explosion.js2.3 KB
- 脚本assets/animations/fx/data-stream.js1.5 KB
- 脚本assets/animations/fx/firework.js1.6 KB
- 脚本assets/animations/fx/galaxy-swirl.js1.0 KB
- 脚本assets/animations/fx/gradient-blob.js1.4 KB
- 脚本assets/animations/fx/knowledge-graph.js2.4 KB
- 脚本assets/animations/fx/letter-explode.js2.0 KB
- 脚本assets/animations/fx/magnetic-field.js1.3 KB
- 脚本assets/animations/fx/matrix-rain.js1.1 KB
- 脚本assets/animations/fx/neural-net.js2.6 KB
- 脚本assets/animations/fx/orbit-ring.js1.3 KB
- 脚本assets/animations/fx/particle-burst.js1.2 KB
- 脚本assets/animations/fx/shockwave.js1.3 KB
- 脚本assets/animations/fx/sparkle-trail.js1.9 KB
- 脚本assets/animations/fx/starfield.js990 B
- 脚本assets/animations/fx/typewriter-multi.js2.1 KB
- 脚本assets/animations/fx/word-cascade.js1.6 KB
- 资产文件assets/base.css8.0 KB
- 资产文件assets/fonts.css889 B
- 脚本assets/runtime.js36.2 KB
- 资产文件assets/themes/academic-paper.css1.2 KB
- 资产文件assets/themes/arctic-cool.css673 B
- 资产文件assets/themes/aurora.css1.1 KB
- 资产文件assets/themes/bauhaus.css719 B
- 资产文件assets/themes/blueprint.css956 B
- 资产文件assets/themes/catppuccin-latte.css663 B
- 资产文件assets/themes/catppuccin-mocha.css660 B
- 资产文件assets/themes/corporate-clean.css949 B
- 资产文件assets/themes/cyberpunk-neon.css1.3 KB
- 资产文件assets/themes/dracula.css650 B
- 资产文件assets/themes/editorial-serif.css863 B
- 资产文件assets/themes/engineering-whiteprint.css1.3 KB
- 资产文件assets/themes/glassmorphism.css1.1 KB
- 资产文件assets/themes/gruvbox-dark.css635 B
- 资产文件assets/themes/japanese-minimal.css1004 B
- 资产文件assets/themes/magazine-bold.css1.1 KB
- 资产文件assets/themes/memphis-pop.css967 B
- 资产文件assets/themes/midcentury.css920 B
- 资产文件assets/themes/minimal-white.css760 B
- 资产文件assets/themes/neo-brutalism.css792 B
- 资产文件assets/themes/news-broadcast.css1.1 KB
- 资产文件assets/themes/nord.css628 B
- 资产文件assets/themes/pitch-deck-vc.css1.2 KB
- 资产文件assets/themes/rainbow-gradient.css839 B
- 资产文件assets/themes/retro-tv.css1.2 KB
- 资产文件assets/themes/rose-pine.css634 B
- 资产文件assets/themes/sharp-mono.css739 B
- 资产文件assets/themes/soft-pastel.css665 B
- 资产文件assets/themes/solarized-light.css645 B
- 资产文件assets/themes/sunset-warm.css675 B
- 资产文件assets/themes/swiss-grid.css929 B
- 资产文件assets/themes/terminal-green.css836 B
- 资产文件assets/themes/tokyo-night.css635 B
- 资产文件assets/themes/vaporwave.css1.2 KB
- 资产文件assets/themes/xiaohongshu-white.css757 B
- 资产文件assets/themes/y2k-chrome.css1.3 KB
- 参考文档docs/readme/_theme-cell.html2.6 KB
- 资产文件docs/readme/animations.png600.1 KB
- 资产文件docs/readme/hero.gif2.3 MB
- 资产文件docs/readme/layouts-live.gif555.8 KB
- 资产文件docs/readme/layouts.png114.7 KB
- 参考文档docs/readme/montage-animations.html4.6 KB
- 参考文档docs/readme/montage-layouts.html3.1 KB
- 参考文档docs/readme/montage-templates.html3.2 KB
- 参考文档docs/readme/montage-themes.html2.9 KB
- 资产文件docs/readme/presenter-mode.png503.3 KB
- 资产文件docs/readme/templates.png289.7 KB
- 资产文件docs/readme/themes.png245.3 KB
- 参考文档examples/demo-deck/index.html8.7 KB
- 许可证LICENSE1.1 KB
- 参考文档README.md10.4 KB
- 参考文档README.zh-CN.md11.0 KB
- 参考文档references/animations.md7.5 KB
- 参考文档references/authoring-guide.md5.0 KB
- 参考文档references/full-decks.md8.4 KB
- 参考文档references/layouts.md3.9 KB
- 参考文档references/presenter-mode.md9.7 KB
- 参考文档references/themes.md5.1 KB
- 脚本scripts/new-deck.sh1.3 KB
- 脚本scripts/render.sh1.7 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_01.png68.5 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_02.png59.4 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_03.png50.5 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_04.png63.9 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_05.png315.8 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_06.png120.2 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_07.png140.5 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_08.png207.3 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_09.png115.3 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_10.png88.3 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_11.png62.9 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_12.png59.8 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_13.png69.0 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_14.png80.3 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_15.png170.1 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_16.png248.1 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_17.png64.2 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_18.png189.7 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_19.png70.5 KB
- 脚本scripts/verify-output/animation-showcase/animation-showcase_20.png89.3 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_01.png78.6 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_02.png94.6 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_03.png91.1 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_04.png67.5 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_05.png84.4 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_06.png87.2 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_07.png82.3 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_08.png87.1 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_09.png75.8 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_10.png81.2 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_11.png78.1 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_12.png80.0 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_13.png79.2 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_14.png79.6 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_15.png68.8 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_16.png88.2 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_17.png72.5 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_18.png69.5 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_19.png119.3 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_20.png82.2 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_21.png81.9 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_22.png82.5 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_23.png80.2 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_24.png69.7 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_25.png152.3 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_26.png94.6 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_27.png90.9 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_28.png77.4 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_29.png120.0 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_30.png80.0 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_31.png81.7 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_32.png73.7 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_33.png77.4 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_34.png83.2 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_35.png102.2 KB
- 脚本scripts/verify-output/theme-showcase/theme-showcase_36.png78.1 KB
- 参考文档templates/animation-showcase.html7.5 KB
- 参考文档templates/deck.html3.2 KB
- 参考文档templates/full-decks-index.html4.4 KB
- 参考文档templates/full-decks/course-module/index.html9.8 KB
- 参考文档templates/full-decks/course-module/README.md627 B
- 其他templates/full-decks/course-module/style.css4.3 KB
- 参考文档templates/full-decks/dir-key-nav-minimal/index.html6.0 KB
- 参考文档templates/full-decks/dir-key-nav-minimal/README.md1021 B
- 其他templates/full-decks/dir-key-nav-minimal/style.css4.7 KB
- 参考文档templates/full-decks/graphify-dark-graph/index.html10.9 KB
- 参考文档templates/full-decks/graphify-dark-graph/README.md937 B
- 其他templates/full-decks/graphify-dark-graph/style.css5.0 KB
- 参考文档templates/full-decks/hermes-cyber-terminal/index.html11.5 KB
- 参考文档templates/full-decks/hermes-cyber-terminal/README.md1016 B
- 其他templates/full-decks/hermes-cyber-terminal/style.css5.7 KB
- 参考文档templates/full-decks/knowledge-arch-blueprint/index.html11.5 KB
- 参考文档templates/full-decks/knowledge-arch-blueprint/README.md933 B
- 其他templates/full-decks/knowledge-arch-blueprint/style.css4.9 KB
- 参考文档templates/full-decks/obsidian-claude-gradient/index.html7.5 KB
- 参考文档templates/full-decks/obsidian-claude-gradient/README.md901 B
- 其他templates/full-decks/obsidian-claude-gradient/style.css6.0 KB
- 参考文档templates/full-decks/pitch-deck/index.html7.9 KB
- 参考文档templates/full-decks/pitch-deck/README.md524 B
- 其他templates/full-decks/pitch-deck/style.css3.5 KB
- 参考文档templates/full-decks/presenter-mode-reveal/index.html13.8 KB
- 参考文档templates/full-decks/presenter-mode-reveal/README.md3.9 KB
- 其他templates/full-decks/presenter-mode-reveal/style.css5.5 KB
- 参考文档templates/full-decks/product-launch/index.html6.4 KB
- 参考文档templates/full-decks/product-launch/README.md545 B
- 其他templates/full-decks/product-launch/style.css3.9 KB
- 参考文档templates/full-decks/tech-sharing/index.html8.9 KB
- 参考文档templates/full-decks/tech-sharing/README.md522 B
- 其他templates/full-decks/tech-sharing/style.css3.8 KB
- 参考文档templates/full-decks/testing-safety-alert/index.html11.1 KB
- 参考文档templates/full-decks/testing-safety-alert/README.md967 B
- 其他templates/full-decks/testing-safety-alert/style.css6.5 KB
- 参考文档templates/full-decks/weekly-report/index.html8.3 KB
- 参考文档templates/full-decks/weekly-report/README.md562 B
- 其他templates/full-decks/weekly-report/style.css4.9 KB
- 参考文档templates/full-decks/xhs-pastel-card/index.html9.1 KB
- 参考文档templates/full-decks/xhs-pastel-card/README.md1.0 KB
- 其他templates/full-decks/xhs-pastel-card/style.css5.5 KB
- 参考文档templates/full-decks/xhs-post/index.html7.7 KB
- 参考文档templates/full-decks/xhs-post/README.md628 B
- 其他templates/full-decks/xhs-post/style.css4.0 KB
- 参考文档templates/full-decks/xhs-white-editorial/index.html10.6 KB
- 参考文档templates/full-decks/xhs-white-editorial/README.md995 B
- 其他templates/full-decks/xhs-white-editorial/style.css5.6 KB
- 参考文档templates/layout-showcase.html2.2 KB
- 参考文档templates/single-page/arch-diagram.html2.8 KB
- 参考文档templates/single-page/big-quote.html1.0 KB
- 参考文档templates/single-page/bullets.html1.3 KB
- 参考文档templates/single-page/chart-bar.html1.5 KB
- 参考文档templates/single-page/chart-line.html1.9 KB
- 参考文档templates/single-page/chart-pie.html1.9 KB
- 参考文档templates/single-page/chart-radar.html1.8 KB
- 参考文档templates/single-page/code.html1.7 KB
- 参考文档templates/single-page/comparison.html2.0 KB
- 参考文档templates/single-page/cover.html1.7 KB
- 参考文档templates/single-page/cta.html1.6 KB
- 参考文档templates/single-page/diff.html1.9 KB
- 参考文档templates/single-page/flow-diagram.html1.8 KB
- 参考文档templates/single-page/gantt.html2.5 KB
- 参考文档templates/single-page/image-grid.html1.9 KB
- 参考文档templates/single-page/image-hero.html1.8 KB
- 参考文档templates/single-page/kpi-grid.html1.5 KB
- 参考文档templates/single-page/mindmap.html2.1 KB
- 参考文档templates/single-page/process-steps.html2.1 KB
- 参考文档templates/single-page/pros-cons.html1.8 KB
- 参考文档templates/single-page/roadmap.html2.1 KB
- 参考文档templates/single-page/section-divider.html989 B
- 参考文档templates/single-page/stat-highlight.html989 B
- 参考文档templates/single-page/table.html2.0 KB
- 参考文档templates/single-page/terminal.html2.1 KB
- 参考文档templates/single-page/thanks.html1.1 KB
- 参考文档templates/single-page/three-column.html1.2 KB
- 参考文档templates/single-page/timeline.html2.1 KB
- 参考文档templates/single-page/toc.html1.8 KB
- 参考文档templates/single-page/todo-checklist.html2.3 KB
- 参考文档templates/single-page/two-column.html1.5 KB
- 参考文档templates/theme-showcase.html6.3 KB
03 SKILL.md 正文
html-ppt — HTML PPT Studio
Author professional HTML presentations as static files. One theme file = one
look. One layout file = one page type. One animation class = one entry effect.
All pages share a token-based design system in assets/base.css.
Install
npx skills add https://github.com/lewislulu/html-ppt-skill
One command, no build. Pure static HTML/CSS/JS with only CDN webfonts.
What the skill gives you
- 36 themes (
assets/themes/*.css) — minimal-white, editorial-serif, soft-pastel, sharp-mono, arctic-cool, sunset-warm, catppuccin-latte/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 - 15 full-deck templates (
templates/full-decks/<name>/) — complete multi-slide decks with scoped.tpl-<name>CSS. 8 extracted from real-world decks (xhs-white-editorial, graphify-dark-graph, knowledge-arch-blueprint, hermes-cyber-terminal, obsidian-claude-gradient, testing-safety-alert, xhs-pastel-card, dir-key-nav-minimal), 7 scenario scaffolds (pitch-deck, product-launch, tech-sharing, weekly-report, xhs-post 3:4, course-module, presenter-mode-reveal — 演讲者模式专用) - 31 layouts (
templates/single-page/*.html) with realistic demo data - 27 CSS animations (
assets/animations/animations.css) viadata-anim - 20 canvas FX animations (
assets/animations/fx/*.js) viadata-fx— particle-burst, confetti-cannon, firework, starfield, matrix-rain, knowledge-graph (force-directed), neural-net (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 - Keyboard runtime (
assets/runtime.js) — arrows, T (theme), A (anim), F/O, S (presenter mode: magnetic-card popup with CURRENT / NEXT / SCRIPT / TIMER cards), N (notes drawer), R (reset timer in presenter) - FX runtime (
assets/animations/fx-runtime.js) — auto-inits[data-fx]on slide enter, cleans up on leave - Showcase decks for themes / layouts / animations / full-decks gallery
- Headless Chrome render script for PNG export
When to use
Use when the user asks for any kind of slide-based output or wants to turn text/notes into a presentable deck. Prefer this over building from scratch.
🎤 Presenter Mode (演讲者模式 + 逐字稿)
If the user mentions any of: 演讲 / 分享 / 讲稿 / 逐字稿 / speaker notes / presenter view / 演讲者视图 / 提词器, or says things like "我要去给团队讲 xxx", "要做一场技术分享", "怕讲不流畅", "想要一份带逐字稿的 PPT" — use the presenter-mode-reveal full-deck template and write 150–300 words of 逐字稿 in each slide's <aside class="notes">.
See references/presenter-mode.md for the full authoring guide including the 3 rules of speaker script writing:
- 不是讲稿,是提示信号 — 加粗核心词 + 过渡句独立成段
- 每页 150–300 字 — 2–3 分钟/页的节奏
- 用口语,不用书面语 — "因此"→"所以","该方案"→"这个方案"
All full-deck templates support the S key presenter mode (it's built into runtime.js). S opens a new popup window with 4 magnetic cards:
- 🔵 CURRENT — pixel-perfect iframe preview of the current slide
- 🟣 NEXT — pixel-perfect iframe preview of the next slide
- 🟠 SPEAKER SCRIPT — large-font 逐字稿 (scrollable)
- 🟢 TIMER — elapsed time + slide counter + prev/next/reset buttons
Each card is draggable by its header and resizable by the bottom-right corner handle. Card positions/sizes persist to localStorage per deck. A "Reset layout" button restores the default arrangement.
Why the previews are pixel-perfect: each preview is an <iframe> that loads the actual deck HTML with a ?preview=N query param; runtime.js 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 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. The two windows also stay in sync via BroadcastChannel.
Only presenter-mode-reveal is designed from the ground up around the feature with proper example 逐字稿 on every slide.
Keyboard in presenter window: ← → navigate (syncs audience) · R reset timer · Esc close popup.
Keyboard in audience window: S open presenter · T cycle theme · ← → navigate (syncs presenter) · F fullscreen · O overview.
Before you author anything — ALWAYS ask or recommend
Do not start writing slides until you understand three things. Either ask the user directly, or — if they already handed you rich content — propose a tasteful default and confirm.
- Content & audience. What's the deck about, how many slides, who's watching (engineers / execs / 小红书读者 / 学生 / VC)?
- Style / theme. Which of the 36 themes fits? If unsure, recommend 2-3
candidates based on tone:
- Business / investor pitch →
pitch-deck-vc,corporate-clean,swiss-grid - Tech sharing / engineering →
tokyo-night,dracula,catppuccin-mocha,terminal-green,blueprint - 小红书图文 →
xiaohongshu-white,soft-pastel,rainbow-gradient,magazine-bold - Academic / report →
academic-paper,editorial-serif,minimal-white - Edgy / cyber / launch →
cyberpunk-neon,vaporwave,y2k-chrome,neo-brutalism
- Business / investor pitch →
- Starting point. One of the 14 full-deck templates, or scratch? Point
to the closest
templates/full-decks/<name>/and ask if it fits. If the user's content suggests something obvious (e.g. "我要做产品发布会" →product-launch), propose it confidently instead of asking blindly.
A good opening message looks like:
我可以给你做这份 PPT!先确认三件事:
- 大致内容 / 页数 / 观众是谁?
- 风格偏好?我建议从这 3 个主题里选一个:
tokyo-night(技术分享默认好看)、xiaohongshu-white(小红书风)、corporate-clean(正式汇报)。- 要不要用我现成的
tech-sharing全 deck 模板打底?
Only after those are clear, scaffold the deck and start writing.
Quick start
- Scaffold a new deck. From the repo root:
./scripts/new-deck.sh my-talk open examples/my-talk/index.html - Pick a theme. Open the deck and press
Tto cycle. Or hard-code it:
Catalog in references/themes.md.<link rel="stylesheet" id="theme-link" href="../assets/themes/aurora.css"> - Pick layouts. Copy
<section class="slide">...</section>blocks out of files intemplates/single-page/into your deck. Replace the demo data. Catalog in references/layouts.md. - Add animations. Put
data-anim="fade-up"(orclass="anim-fade-up") on any element. On<ul>/grids, useanim-stagger-listfor sequenced reveals. For canvas FX, use<div data-fx="knowledge-graph">...</div>and include<script src="../assets/animations/fx-runtime.js"></script>. Catalog in references/animations.md. - Use a full-deck template. Copy
templates/full-decks/<name>/intoexamples/my-talk/as a starting point. Each folder is self-contained with scoped CSS. Catalog in references/full-decks.md and gallery attemplates/full-decks-index.html. - Render to PNG.
./scripts/render.sh templates/theme-showcase.html # one shot ./scripts/render.sh examples/my-talk/index.html 12 # 12 slides
Authoring rules (important)
- Always start from a template. Don't author slides from scratch — copy the
closest layout from
templates/single-page/first, then replace content. - Use tokens, not literal colors. Every color, radius, shadow should come
from CSS variables defined in
assets/base.cssand overridden by a theme. Good:color: var(--text-1). Bad:color: #111. - Don't invent new layout files. Prefer composing existing ones. Only add
a new
templates/single-page/*.htmlif none of the 30 fit. - Respect chrome slots.
.deck-header,.deck-footer,.slide-numberand the progress bar are provided byassets/base.css+runtime.js. - Keyboard-first. Always include
<script src="../assets/runtime.js"></script>so the deck supports ← → / T / A / F / S / O / hash deep-links. - One
.slideper logical page.runtime.jsmakes.slide.is-activevisible; all others are hidden. - Supply notes. Wrap speaker notes in
<div class="notes">…</div>inside each slide. Press S to open the overlay. - NEVER put presenter-only text on the slide itself. Descriptive text like
"这一页展示了……" or "Speaker: 这里可以补充……" or small explanatory captions
aimed at the presenter MUST go inside
<div class="notes">, NOT as visible<p>/<span>elements on the slide. The.notesclass isdisplay:noneby default — it only appears in the S overlay. Slides should contain ONLY audience-facing content (titles, bullet points, data, charts, images).
Writing guide
See references/authoring-guide.md for a step-by-step walkthrough: file structure, naming, how to transform an outline into a deck, how to choose layouts and themes per audience, how to do a Chinese + English deck, and how to export.
Catalogs (load when needed)
- references/themes.md — all 36 themes with when-to-use.
- references/layouts.md — all 31 layout types.
- references/animations.md — 27 CSS + 20 canvas FX animations.
- references/full-decks.md — all 15 full-deck templates.
- references/presenter-mode.md — 演讲者模式 + 逐字稿编写指南(技术分享/演讲必看).
- references/authoring-guide.md — full workflow.
File structure
html-ppt/
├── SKILL.md (this file)
├── references/ (detailed catalogs, load as needed)
├── assets/
│ ├── base.css (tokens + primitives — do not edit per deck)
│ ├── fonts.css (webfont imports)
│ ├── runtime.js (keyboard + presenter + overview + theme cycle)
│ ├── themes/*.css (36 token overrides, one per theme)
│ └── animations/
│ ├── animations.css (27 named CSS entry animations)
│ ├── fx-runtime.js (auto-init [data-fx] on slide enter)
│ └── fx/*.js (20 canvas FX modules: particles/graph/fireworks…)
├── templates/
│ ├── deck.html (minimal 6-slide starter)
│ ├── theme-showcase.html (36 slides, iframe-isolated per theme)
│ ├── layout-showcase.html (iframe tour of all 31 layouts)
│ ├── animation-showcase.html (20 FX + 27 CSS animation slides)
│ ├── full-decks-index.html (gallery of all 14 full-deck templates)
│ ├── full-decks/<name>/ (14 scoped multi-slide deck templates)
│ └── single-page/*.html (31 layout files with demo data)
├── scripts/
│ ├── new-deck.sh (scaffold a deck from deck.html)
│ └── render.sh (headless Chrome → PNG)
└── examples/demo-deck/ (complete working deck)
Rendering to PNG
scripts/render.sh wraps headless Chrome at
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome. For multi-slide
capture, runtime.js exposes #/N deep-links, and render.sh iterates 1..N.
./scripts/render.sh templates/single-page/kpi-grid.html # single page
./scripts/render.sh examples/demo-deck/index.html 8 out-dir # 8 slides, custom dir
Keyboard cheat sheet
← → Space PgUp PgDn Home End navigate
F fullscreen
S open presenter window (magnetic cards: current/next/script/timer)
N quick notes drawer (bottom overlay)
R reset timer (in presenter window)
?preview=N URL param — force preview-only mode (single slide, no chrome)
O slide overview grid
T cycle themes (reads data-themes attr)
A cycle demo animation on current slide
#/N in URL deep-link to slide N
Esc close all overlays
License & author
MIT. Copyright (c) 2026 lewis <sudolewis@gmail.com>.
04 同仓库更多 Skills
thu-digitizer
Extract and validate numeric data from chart images, PDF figures, and official source-data files locally and reproducibly, with calibrated axes, compact-scatter recovery plus residual audits, grouped/stacked bars, visible-label pie/donut validation, original-pixel aligned lattice composites such as UpSet plots, PDF vector inspection, line tracing, histograms, boxplots, error bars, CSV/JSON evidence, source-data cross-validation, and regression evaluation. Use when a user asks to recover or recreate chart data, extract scatter points, bars, printed pie/donut labels, or aligned memberships, check a PDF chart, assess digitization accuracy, validate against source data, or improve a chart-digitization workflow from corrected examples.
scientific-visualization
Meta-skill for publication-ready figures. Use when creating journal submission figures requiring multi-panel layouts, significance annotations, error bars, colorblind-safe palettes, and specific journal formatting (Nature, Science, Cell). Orchestrates matplotlib/seaborn/plotly with publication styles. For quick exploration use seaborn or plotly directly.
theoretical-economics-claude-skill
Human-in-the-loop theoretical economics research pipeline: from economic intuition to manuscript skeleton in 10 structured stages with quality gates.
interview-guide-design
把一个研究题目、研究思路或研究问题,落成一份能用于学术研究、案例研究、学位论文、课题调研的质性访谈提纲时,使用此 skill。触发信号很宽:用户说"做/设计访谈提纲""访谈大纲怎么设计才规范""结构性访谈提纲""把研究问题/题目变成访谈问题""帮我弄份访谈提纲去问问他们""怎么访谈才能挖到深层的东西""interview guide / interview protocol / key informant / elite interview",无论措辞多口语、有没有提方法论,都应触发。典型情形:要去访谈领导 / 干部 / 管理者 / 专家 / 科室主任 / 一线员工或老师 / 关键知情人,了解某个现象、做法或机制;半结构化 / 结构化 / 关键知情人 / 精英访谈皆可;中英双语;社科 / 管理 / 教育 / 公共政策 / 医疗等领域;也常与案例研究、或与一份配套问卷的混合方法调研一起出现。它把研究问题按 Castillo-Montoya 的 IPR 框架与 Yin/Stake 的案例研究规范,拆成"主问题—追问—探测",保障与研究问题对齐、可信度(trustworthiness)与三角验证就绪,标注方法论依据与权威出处,产出研究者版 + 现场详版/简版。不要用于:量化问卷 / 量表设计(走 questionnaire-design)、求职面试、以传播或叙事为目的的人物访谈(媒体/播客/记者深度报道/纪录片/口述史,非以回答研究问题为目的)、访谈录音转写、焦点小组/座谈会提纲(群体互动动态与主持伦理不同,本 skill 不覆盖)、以及访谈完成后的编码与主题分析。
mixed-methods-instrument-design
基于同一项研究的研究目的、研究问题、理论框架与人群设计,协同产出彼此对齐的量化问卷/调查表和质性访谈提纲时使用;也可在用户明确要求时把经审核的问卷创建为问卷星未发布草稿并继续管理。触发信号包括“问卷和访谈一起设计”“根据研究思路同步出调查问卷与访谈提纲”“混合方法研究工具”“不同人群分别做问卷和访谈”“推送到问卷星”“创建在线问卷”“survey + interview guide”“convergent / explanatory sequential / exploratory sequential mixed methods instruments”。适用于社会科学、管理、教育、公共政策、医疗及其他经验研究;允许量化与质性部分使用相同或不同样本。产出研究设计判定、中央映射矩阵、问卷与变量字典、完整访谈三版、联合展示模板和预测试方案;默认用户成品仍是一份完整 Word。不要用于只设计单一访谈提纲(走 interview-guide-design)、只设计单一问卷、把现成工具做成网页、访谈转写、正式数据分析,或在没有研究问题的情况下机械拼接两套题目。
scientific-critical-thinking
Evaluate scientific claims and evidence quality. Use for assessing experimental design validity, identifying biases and confounders, applying evidence grading frameworks (GRADE, Cochrane Risk of Bias), or teaching critical analysis. Best for understanding evidence quality, identifying flaws. For formal peer review writing use peer-review.