← 返回 Skills 市场
tianheihei002

Html Presentation Generator

作者 tianheihei002 · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
118
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install html-presentation-generator
功能描述
Generate professional multi-page HTML presentations (PPT). Creates slide decks with cover, TOC, section dividers, content pages, and summary slides. Supports...
使用说明 (SKILL.md)

HTML Presentation Generator

Overview

You are an expert at generating complete multi-page HTML presentations. Each slide is a standalone HTML file rendered at 960×540px. You handle the full pipeline: research → color/font selection → outline planning → slide-by-slide generation (with image generation and visual verification) → final deployment. All slides are static HTML suitable for browser viewing and PPTX export.

Workflow

Follow these steps in order for every presentation:

Step 1 — Research (if needed)

If you lack domain knowledge about the user's topic, perform deep research first:

  • Search the web for key facts, data, and context
  • Validate information from multiple sources
  • Organize findings to inform slide content

Step 2 — Choose Color Palette & Font

Select a color palette from the Color Palette Reference section below based on the topic and audience. The font is fixed:

⚠️ MANDATORY FONT: All presentations use Times New Roman for both Chinese and English text. font-family: 'Times New Roman', serif;

Step 3 — Plan the Outline

Using the Slide Page Types section below, create a complete slide outline:

  1. Classify every slide as exactly one of the 5 page types
  2. For content pages, assign a content subtype
  3. Ensure variety in layouts across slides
  4. Typical structure: Cover → TOC → [Section Divider → Content Pages...] → Summary

Step 4 — Generate Slides

Generate each slide as an individual HTML file. Process up to 5 slides concurrently (not more).

For each slide, follow the page-type-specific workflow below. Every slide must:

  1. Be saved as slides/slide-01.html, slides/slide-02.html, etc. (zero-padded two digits)
  2. Store any generated images in slides/imgs/
  3. Use the exact 960×540 .slide-content dimensions
  4. Use Times New Roman font for all text (Chinese and English)
  5. After writing HTML, take a screenshot using get_html_presentation_screenshot and verify with images_understand — check for layout correctness, no text overlaps, no misplaced elements, and page number badge presence (except cover). Fix any issues before moving on.

Step 5 — Deploy

Use the deploy_html_presentation tool to merge all slides and deploy the final presentation.


Slide Page Types

Classify every slide as exactly one of these 5 types. This prevents layout drift and keeps the deck consistent.

Type 1: Cover Page

Use for: Opening slide, tone setting.

Content elements:

  • Main Title (72–120px, bold, commanding — the visual anchor)
  • Subtitle (28–40px, clearly secondary)
  • Supporting text / presenter / date (18–24px, subtle)
  • Meta info (14–18px)
  • Background image or strong visual motif

Font size hierarchy:

Element Size Notes
Main Title 72–120px Bold, 3–5× base
Subtitle 28–40px 1.5–2× base
Supporting Text 18–24px Base
Meta Info 14–18px 0.7–1× base

Layout options:

  1. Asymmetric Left-Right — Text on one side, image on the other
    |  Title & Subtitle  |    Visual/Image    |
    |  Description       |                    |
    
  2. Center-Aligned — Content centered over background image
    |           [Background Image]           |
    |              MAIN TITLE                |
    |              Subtitle                  |
    

Design decisions: Purpose (corporate/creative/educational)? Audience? Tone? Content volume?

Image generation: MANDATORY. You MUST call GenerateImage to create at least one image for the cover. Do NOT proceed to HTML until you have a valid image path.

Workflow:

  1. Analyze topic, audience, purpose
  2. Generate image (MANDATORY) — wait for file path
  3. Choose layout
  4. Write HTML (embed actual image path, never a placeholder)
  5. Screenshot + verify

No page number badge on cover page.


Type 2: Table of Contents

Use for: Navigation, expectation setting (3–5 sections).

Content elements:

  • Page title ("Table of Contents" / "Agenda" / "Overview")
  • Section numbers (01, 02… or I, II…)
  • Section titles
  • Optional one-line descriptions
  • Page number badge (MANDATORY) — see Appendix G

Font size hierarchy:

Element Size
Page Title 36–44px
Section Number 28–36px
Section Title 20–28px
Description 14–16px

Layout options:

  1. Numbered Vertical List — Clean left-aligned structure
    |  TABLE OF CONTENTS            |
    |  01  Section Title One         |
    |  02  Section Title Two         |
    
  2. Two-Column Grid — 2×N grid with numbers + titles
  3. Sidebar Navigation — Colored sidebar with section markers
  4. Card-Based — Section cards in a row/grid

Image generation: OPTIONAL — most TOC slides work best with clean typography + SVG decorations.

Workflow:

  1. Analyze section list and count
  2. Choose layout (3 sections → vertical; 4–6 → grid/compact; 7+ → multi-column)
  3. Plan visual hierarchy
  4. Generate image (optional)
  5. Write HTML with page number badge
  6. Screenshot + verify

Type 3: Section Divider

Use for: Clear transitions between major parts.

Content elements:

  • Section number (72–120px, bold, accent color — the dominant element)
  • Section title (36–48px, bold, primary color)
  • Optional intro text (16–20px, light, muted)
  • SVG accent shapes (bars, lines, geometric blocks)
  • Page number badge (MANDATORY) — see Appendix G

Layout options:

  1. Bold Center — Number + title centered
  2. Left-Aligned with Accent Block — Colored bar on left
  3. Split Background — Two color zones
  4. Full-Bleed Background with Overlay — Strong bg color, semi-transparent number

Design decisions: Corporate → accent block; Creative → full-bleed; Minimal → bold center. Divider style must be consistent across all dividers in one deck.

Image generation: OPTIONAL — most dividers work best with bold typography + solid colors + SVG accents.

Workflow:

  1. Analyze section number, title, intro
  2. Choose layout
  3. Generate image (optional)
  4. Write HTML with page number badge
  5. Screenshot + verify

Type 4: Content Page

Use for: The core information slides. Each content page belongs to exactly ONE subtype.

Content subtypes:

4a. Text

  • Bullets, quotes, short paragraphs
  • Must include icons or SVG shapes — never plain text only
|  SLIDE TITLE                          |
|  • Bullet point one                   |
|  • Bullet point two                   |
|  • Bullet point three                 |

4b. Mixed Media

  • Two-column: image on one side, text on the other
|  SLIDE TITLE                          |
|  Text content     |  [Image/Visual]   |
|  and bullets      |                   |

4c. Data Visualization

  • SVG chart (bar/progress/ring) + 1–3 key takeaways + data source
|  SLIDE TITLE                          |
|  [SVG Chart]      |  Key Takeaway 1   |
|                   |  Key Takeaway 2   |
|                   Source: xxx          |

4d. Comparison

  • Side-by-side columns/cards (A vs B, pros/cons)
|  SLIDE TITLE                          |
|  ┌─ Option A ─┐  ┌─ Option B ─┐      |
|  │  Detail 1  │  │  Detail 1  │      |
|  └────────────┘  └────────────┘      |

4e. Timeline / Process

  • Steps with arrows, numbered connectors
|  SLIDE TITLE                          |
|  [1] ──→ [2] ──→ [3] ──→ [4]         |
|  Step    Step    Step    Step          |

4f. Image Showcase

  • Hero image as primary element, text supporting
|  SLIDE TITLE                          |
|  ┌────────────────────────────────┐   |
|  │         [Hero Image]           │   |
|  └────────────────────────────────┘   |
|  Caption or supporting text           |

Font size hierarchy:

Element Size Notes
Slide Title 36–44px Bold, top of slide
Section Header 20–24px Bold, sub-sections
Body Text 14–16px Regular weight, LEFT-ALIGNED
Captions / Source 10–12px Muted color
Stat Callout 60–72px Large bold numbers

Content elements (all content pages):

  1. Slide Title — always required, top of slide
  2. Body Content — based on subtype
  3. Visual Element — image, chart, icon, or SVG shape — ALWAYS required
  4. Source / Caption — include when showing data
  5. Page number badge (MANDATORY) — see Appendix G

Key principles:

  • Left-align body text — never center paragraphs or bullet lists
  • Title must be 36pt+ for contrast with 14–16pt body
  • 0.5″ minimum margins, 0.3–0.5″ between content blocks
  • Each content slide should use a different layout from the previous one

Image generation: MANDATORY. Call GenerateImage for every content page:

  • Mixed Media / Image Showcase → hero image
  • Text / Data / Comparison / Timeline → supporting illustration or thematic element

Workflow:

  1. Analyze content, determine subtype
  2. Generate image (MANDATORY) — wait for file path
  3. Choose layout variant for the subtype
  4. Write HTML with page number badge
  5. Screenshot + verify (layout matches subtype, no overlaps, badge present)

Type 5: Summary / Closing Page

Use for: Wrap-up, action items, thank-you.

Content elements:

  • Closing title (48–72px, bold)
  • Takeaway points (18–24px, scannable)
  • Call to action / next steps
  • Contact info (14–16px, muted)
  • Page number badge (MANDATORY) — see Appendix G

Layout options:

  1. Key Takeaways — 3–5 points with icons/check marks
  2. CTA / Next Steps — Action items + contact info
  3. Thank You / Contact — Centered thank-you + contact details
  4. Split Recap — Left: takeaways; Right: CTA/contact

Image generation: OPTIONAL — most summary slides work best with clean typography + SVG accents.

Workflow:

  1. Analyze closing content type
  2. Choose layout
  3. Generate image (optional)
  4. Write HTML with page number badge
  5. Screenshot + verify

Color Palette Reference

Select ONE palette for the entire presentation based on topic and audience.

# 名称 色值 风格 适用场景 建议
1 现代与健康 #006d77 #83c5be #edf6f9 #ffddd2 #e29578 清新、治愈 医疗健康、心理咨询、护肤品、瑜伽Spa 深青做标题,浅粉做背景
2 商务与权威 #2b2d42 #8d99ae #edf2f4 #ef233c #d90429 严谨、经典 年度汇报、金融分析、企业介绍、政务报告 深蓝显专业,亮红强调数据
3 自然与户外 #606c38 #283618 #fefae0 #dda15e #bc6c25 沉稳、大地色 户外用品、环境保护、农业项目、历史文化 深绿为底,米色为字
4 复古与学院 #780000 #c1121f #fdf0d5 #003049 #669bbc 经典、书卷气 学术讲座、历史回顾、博物馆、复古品牌 深红与深蓝对比强烈
5 柔美与创意 #cdb4db #ffc8dd #ffafcc #bde0fe #a2d2ff 梦幻、糖果色 母婴产品、甜品店、女性时尚、幼儿园 文字用深灰或黑色
6 波西米亚 #ccd5ae #e9edc9 #fefae0 #faedcd #d4a373 温柔、低饱和 婚礼策划、家居软装、有机食品、慢生活 米色背景,绿棕点缀
7 活力与科技 #8ecae6 #219ebc #023047 #ffb703 #fb8500 高能量、运动 体育赛事、健身房、创业路演、少儿教育 深蓝稳重心,橙色做焦点
8 匠心与手作 #7f5539 #a68a64 #ede0d4 #656d4a #414833 质朴、咖啡调 咖啡店、手工艺品、传统文化、烘焙教学 适合纸质/皮革质感
9 科技与夜景 #000814 #001d3d #003566 #ffc300 #ffd60a 深邃、高亮 科技发布会、星空天文、夜间经济、高端汽车 必须用深色模式
10 教育与图表 #264653 #2a9d8f #e9c46a #f4a261 #e76f51 清晰、逻辑强 统计报告、教育培训、市场分析、通用商务 完美的图表配色
11 森林与环保 #dad7cd #a3b18a #588157 #3a5a40 #344e41 单色渐变、森系 园林设计、ESG报告、环保公益、植物研究 单色系安全不会乱
12 优雅与时尚 #edafb8 #f7e1d7 #dedbd2 #b0c4b1 #4a5759 低饱和、莫兰迪 高定服装、艺术画廊、美妆品牌、杂志风 留白是关键
13 艺术与美食 #335c67 #fff3b0 #e09f3e #9e2a2b #540b0e 浓郁、复古画报 美食纪录片、艺术展、民族风情、复古餐厅 适合大色块拼接
14 轻奢与神秘 #22223b #4a4e69 #9a8c98 #c9ada7 #f2e9e4 冷艳、紫调 珠宝展示、酒店管理、高端咨询、心理学 紫色营造高端氛围
15 纯净科技蓝 #03045e #0077b6 #00b4d8 #90e0ef #caf0f8 未来感、纯净 云计算/AI、水利海洋、医院医疗、洁净能源 从深海到天空的渐变
16 海岸珊瑚 #0081a7 #00afb9 #fdfcdc #fed9b7 #f07167 清爽、夏日感 旅游度假、夏季活动、饮品品牌、海洋主题 青色与珊瑚色互补亮眼
17 活力橙薄荷 #ff9f1c #ffbf69 #ffffff #cbf3f0 #2ec4b6 明亮、欢快 儿童活动、促销海报、快消品、社交媒体 橙色吸睛,薄荷绿清爽
18 铂金白金 #0a0a0a #0070F3 #D4AF37 #f5f5f5 #ffffff 高端、专业 Agent产品、企业官网、金融科技、高端品牌 白金主调,蓝色行动,金色强调

Agent Design System — 完整色板

基于 tokens.css/ts 的 Platinum White-Gold Theme,提供完整色阶供精细设计使用。

White 白色系(背景与浅色表面)

色阶 色值 用途
white-0 #ffffff 主背景
white-50 #fefefe 略带暖调的白
white-75 #fcfcfc 微灰白
white-100 #fafafa 次级背景
white-200 #f7f7f7 卡片背景
white-300 #f5f5f5 三级背景
white-400 #f0f0f0 分隔区域
white-500 #ebebeb 边框浅色
white-600 #e5e5e5 禁用态背景
white-700 #e0e0e0 深灰白
white-800 #d9d9d9 占位符
white-900 #d4d4d4 分隔线
white-1000 #cccccc 最深白

Gold 金色系(铂金商务强调色)

色阶 色值 用途
gold-25 #FFFDF5 极浅金背景
gold-50 #FEF9E7 浅金背景
gold-75 #FCF3D0 淡金高亮
gold-100 #FAECB8 金色 hover 态
gold-200 #F5DC8A 亮金强调
gold-300 #E8C860 金色悬停
gold-400 #D4AF37 主金色(核心)
gold-500 #B8972E 金色文字
gold-600 #9A7E26 深金强调
gold-700 #7C651E 暗金边框
gold-800 #5E4C16 深金背景
gold-900 #40330F 极深金
gold-1000 #221A08 黑金

Blue 蓝色系(主操作色)

色阶 色值 用途
blue-25 #F0F7FF 极浅蓝背景
blue-50 #E0EFFF 信息提示背景
blue-75 #C2DFFF 浅蓝高亮
blue-100 #A3CFFF 禁用态蓝
blue-200 #66AFFF 亮蓝
blue-300 #338FFF 蓝色悬停
blue-400 #0070F3 主蓝色(核心)
blue-500 #005FCC 蓝色文字
blue-600 #004FA6 深蓝强调
blue-700 #003F80 暗蓝边框
blue-800 #002F5A 深蓝背景
blue-900 #001F3D 极深蓝
blue-1000 #001026 黑蓝

Gray 灰色系(文字与中性色)

色阶 色值 用途
gray-0 #ffffff 白色
gray-50 #fafafa 极浅灰
gray-75 #f5f5f5 浅灰背景
gray-100 #ededed 分隔线浅
gray-200 #d4d4d4 边框浅
gray-300 #a3a3a3 四级文字
gray-400 #737373 三级文字
gray-500 #525252 二级文字
gray-600 #404040 深灰
gray-700 #2e2e2e 暗色背景
gray-800 #1f1f1f 深色背景
gray-900 #141414 极深背景
gray-1000 #0a0a0a 主文字色(核心)

透明度色值

Opacity Black(黑色透明)

透明度 色值 用途
0% #0a0a0a00 全透明
2% #0a0a0a05 微弱遮罩
4% #0a0a0a0a 次级交互背景
8% #0a0a0a14 边框/分隔
15% #0a0a0a26 按压态
20% #0a0a0a33 浅遮罩
25% #0a0a0a40 中遮罩
50% #0a0a0a80 半透明
70% #0a0a0ab2 深遮罩
80% #0a0a0acc 悬停态
90% #0a0a0ae5 tooltip
95% #0a0a0af2 弹窗

Opacity White(白色透明)

透明度 色值 用途
0% #ffffff00 全透明
2% #ffffff05 微弱遮罩
4% #ffffff0a 次级交互背景
8% #ffffff12 边框/分隔
15% #ffffff26 按压态
20% #ffffff33 浅遮罩
25% #ffffff40 中遮罩
50% #ffffff80 半透明
70% #ffffffb2 深遮罩
80% #ffffffcc 悬停态
90% #ffffffe5 tooltip
95% #fffffff2 弹窗

Design Style System

同一套设计可通过调整圆角(radius)和间距(spacing)呈现4种不同风格。根据场景选择合适的风格配方。

风格概览

风格 圆角范围 间距范围 适合场景
Sharp & Compact radius-4 ~ radius-6 spacing-4 ~ spacing-12 数据密集型后台、表格、IDE、代码编辑器
Soft & Balanced radius-8 ~ radius-12 spacing-8 ~ spacing-16 企业 SaaS、管理面板、通用 Web App
Rounded & Spacious radius-16 ~ radius-24 spacing-16 ~ spacing-32 消费级产品、营销页、社交应用
Pill & Airy radius-32 ~ radius-full spacing-20 ~ spacing-48 移动端 Web、着陆页、品牌展示

Sharp & Compact(锐利紧凑)

视觉特征: 方正、信息密度高、专业严肃感。

类别 Token
圆角-小 --component-radius-sm 4px
圆角-中 --component-radius-md 4px
圆角-大 --component-radius-lg 6px
内间距-小 --component-padding-sm 4px
内间距-中 --component-padding-md 8px
内间距-大 --component-padding-lg 12px
间隔-小 --component-gap-sm 4px
间隔-中 --component-gap-md 8px
间隔-大 --component-gap-lg 16px
页面边距 --page-margin 16px
区块间距 --section-gap 24px

Soft & Balanced(柔和均衡)

视觉特征: 适中的圆角、舒适的留白、专业又不失亲和。

类别 Token
圆角-小 --component-radius-sm 6px
圆角-中 --component-radius-md 8px
圆角-大 --component-radius-lg 12px
内间距-小 --component-padding-sm 8px
内间距-中 --component-padding-md 12px
内间距-大 --component-padding-lg 16px
间隔-小 --component-gap-sm 6px
间隔-中 --component-gap-md 12px
间隔-大 --component-gap-lg 24px
页面边距 --page-margin 24px
区块间距 --section-gap 32px

Rounded & Spacious(圆润宽松)

视觉特征: 大圆角、充裕留白、友好亲切、现代消费级感。

类别 Token
圆角-小 --component-radius-sm 10px
圆角-中 --component-radius-md 16px
圆角-大 --component-radius-lg 24px
内间距-小 --component-padding-sm 12px
内间距-中 --component-padding-md 20px
内间距-大 --component-padding-lg 32px
间隔-小 --component-gap-sm 10px
间隔-中 --component-gap-md 16px
间隔-大 --component-gap-lg 32px
页面边距 --page-margin 32px
区块间距 --section-gap 48px

Pill & Airy(胶囊通透)

视觉特征: 全圆角胶囊形、大量留白、轻盈通透、品牌展示感强。

类别 Token
圆角-小 --component-radius-sm 20px
圆角-中 --component-radius-md 32px
圆角-大 --component-radius-lg 999px (full)
内间距-小 --component-padding-sm 12px
内间距-中 --component-padding-md 24px
内间距-大 --component-padding-lg 40px
间隔-小 --component-gap-sm 12px
间隔-中 --component-gap-md 24px
间隔-大 --component-gap-lg 48px
页面边距 --page-margin 40px
区块间距 --section-gap 64px

组件级风格映射表

组件 Sharp Soft Rounded Pill
按钮 radius-4, padding 8×16 radius-6, padding 8×16 radius-10, padding 12×20 radius-full, padding 12×32
输入框 radius-4, padding 8×12 radius-6, padding 8×12 radius-10, padding 10×16 radius-full, padding 10×20
卡片 radius-4, padding 8~12 radius-8, padding 12~16 radius-16, padding 20 radius-24, padding 24~32
模态框 radius-6, padding 16 radius-12, padding 20 radius-20, padding 24~32 radius-32, padding 32~40
标签/Badge radius-4, padding 2×6 radius-4, padding 2×8 radius-6, padding 4×10 radius-full, padding 4×12
头像 radius-4 radius-8 radius-12 radius-full
下拉菜单 radius-4, padding 4 radius-6, padding 4 radius-12, padding 8 radius-16, padding 8
Toast/Alert radius-4, padding 8×12 radius-8, padding 12×16 radius-12, padding 16×20 radius-full, padding 12×24
Tooltip radius-4, padding 4×8 radius-6, padding 6×10 radius-8, padding 8×12 radius-full, padding 6×16

混搭原则

同一页面可组合不同风格级别,但需遵循以下规则:

1. 外层容器 ≥ 内层圆角

正确:外 > 内
  .card     { border-radius: 16px; }
  .card img { border-radius: 12px; }

错误:内 > 外 → 视觉溢出感
  .card     { border-radius: 8px;  }
  .card img { border-radius: 16px; }

2. 信息密度决定间距

区域类型 推荐风格
内容浏览区 Spacious / Airy(宽松间距)
工具栏/侧边栏 Compact / Balanced(紧凑间距)
表单/数据区 Balanced(适中间距)

3. 交互元素与容器保持同一风格

4. 圆角与尺寸的比例关系

元素尺寸 Sharp Soft Rounded Pill
小(\x3C 32px) 4px 4px 8px full
中(32~64px) 4px 6~8px 12~16px full
大(64~200px) 4~6px 8~12px 16~24px 32px
超大(> 200px) 6px 12px 24px 32px

快速选择指南

项目类型 推荐风格 原因
企业后台/Dashboard Sharp & Compact 信息密度高,专业感强
SaaS产品/Web App Soft & Balanced 平衡专业与友好
消费级App/社交 Rounded & Spacious 亲切感,现代感
着陆页/品牌展示 Pill & Airy 品牌调性强,视觉冲击
数据可视化 Sharp / Soft 清晰的边界和对齐
移动端H5 Rounded / Pill 触控友好,圆角更易点击

HTML Implementation Rules

Appendix A — Responsive Scaling Snippet (REQUIRED)

Every slide HTML file MUST include this in \x3Chead> and before \x3C/body>:

\x3Cmeta name="viewport" content="width=device-width, initial-scale=1.0">
\x3Cstyle>
html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  background: #000;
}
.slide-content {
  width: 960px;
  height: 540px;
  position: relative;
  transform-origin: center center;
}
\x3C/style>
\x3Cscript>
function scaleSlide() {
  const slide = document.querySelector('.slide-content');
  if (!slide) return;
  const slideWidth = 960;
  const slideHeight = 540;
  const scaleX = window.innerWidth / slideWidth;
  const scaleY = window.innerHeight / slideHeight;
  const scale = Math.min(scaleX, scaleY);
  slide.style.width = slideWidth + 'px';
  slide.style.height = slideHeight + 'px';
  slide.style.transform = `scale(${scale})`;
  slide.style.transformOrigin = 'center center';
  slide.style.flexShrink = '0';
}
window.addEventListener('load', scaleSlide);
window.addEventListener('resize', scaleSlide);
\x3C/script>

Appendix B — CSS Rules (REQUIRED)

⚠️ Inline-Only CSS

All CSS styles MUST be inline (except the snippet in Appendix A).

  • Do NOT use \x3Cstyle> blocks outside Appendix A
  • Do NOT use external stylesheets
  • Do NOT use CSS classes or class-based styling
\x3C!-- ✅ Correct: Inline styles -->
\x3Cdiv style="position:absolute; left:60px; top:120px; width:840px; height:240px; background:#023047;">\x3C/div>
\x3Cp style="position:absolute; left:60px; top:140px; font-size:28px; color:#ffffff;">Title\x3C/p>

\x3C!-- ❌ Wrong: Style blocks or classes -->
\x3Cstyle>
  .card { background:#023047; }
\x3C/style>
\x3Cdiv class="card">\x3C/div>

⚠️ Background on .slide-content Directly

Do NOT create a full-size background DIV inside .slide-content. Set the background directly on .slide-content itself.

\x3C!-- ✅ Correct: Background directly on .slide-content -->
\x3Cdiv class="slide-content" style="background:#023047;">
  \x3Cp style="position:absolute; left:60px; top:140px; ...">Title\x3C/p>
\x3C/div>

\x3C!-- ❌ Wrong: Nested full-size background DIV -->
\x3Cdiv class="slide-content">
  \x3Cdiv style="position:absolute; left:0; top:0; width:960px; height:540px; background:#023047;">\x3C/div>
  \x3Cp style="position:absolute; left:60px; top:140px; ...">Title\x3C/p>
\x3C/div>

⚠️ No Bold for Body Text and Captions

  • Body paragraphs, descriptions, and explanatory text → normal weight (400–500)
  • Image captions, chart legends, footnotes → light-weight
  • Reserve bold (font-weight: 600+) for titles, headings, and key emphasis only

Appendix C — Color Palette Rules (REQUIRED)

⚠️ Strict Color Palette Adherence

  • All colors MUST come from the chosen palette
  • Do NOT create or modify color values
  • Do NOT use colors outside the palette
  • Only exception: You may add opacity to palette colors (e.g., rgba(r,g,b,0.1))

⚠️ No Gradients Allowed

  • No CSS linear-gradient(), radial-gradient(), conic-gradient()
  • No SVG \x3ClinearGradient>, \x3CradialGradient>
  • All fills, backgrounds, borders → solid colors only

⚠️ No Animations Allowed

  • No CSS animation, @keyframes, or transition
  • No JavaScript animations
  • No hover effects with motion
  • No SVG animations (\x3Canimate>, \x3CanimateTransform>, \x3CanimateMotion>)
  • All slides are static presentation assets

For visual hierarchy without gradients/animations:

  1. Use different colors from the palette
  2. Use solid color + opacity overlay
  3. Combine palette colors strategically

Appendix D — SVG Conversion Constraints (CRITICAL)

The HTML-to-PPTX converter has STRICT SVG support limitations.

Supported SVG Elements (WHITELIST)

  • \x3Crect> — rectangles (with rx/ry for rounded corners)
  • \x3Ccircle> — circles
  • \x3Cellipse> — ellipses
  • \x3Cline> — straight lines
  • \x3Cpolyline> — connected line segments (stroke only, NO fill)
  • \x3Cpolygon> — closed polyline (stroke only, NO fill)
  • \x3Cpath>ONLY with M/L/H/V/Z commands
  • \x3Cpattern> — repeating patterns

\x3Cpath> Command Restrictions (CRITICAL)

ONLY these commands are supported:

  • M/m — moveTo
  • L/l — lineTo
  • H/h — horizontal line
  • V/v — vertical line
  • Z/z — close path

FORBIDDEN commands (SVG will be SKIPPED in PPTX):

  • Q/q — quadratic Bézier curve
  • C/c — cubic Bézier curve
  • S/s — smooth cubic Bézier
  • T/t — smooth quadratic Bézier
  • A/a — elliptical arc

Additional SVG Constraints

  • ❌ NO rotated shapes — transform="rotate()" causes fallback failure
  • ❌ NO \x3Ctext> in complex SVGs — becomes rasterized in PPTX
  • ❌ Filled \x3Cpath> must form closed rectangles (M/L/H/V/Z only)
  • ⚠️ Gradients technically supported but DISCOURAGED

⚠️ CRITICAL: Pie Charts — Image Generation Tool is MANDATORY

Pie charts MUST be created using GenerateImage. There is NO SVG alternative.

  • SVG pie charts require arc commands (A) which are FORBIDDEN
  • ALL workarounds (layered circles, stroke-dasharray, clip-paths, conic-gradient, rotated segments) WILL FAIL in PPTX
  • The ONLY correct approach: generate as PNG/JPG image via GenerateImage, embed with \x3Cimg>
\x3C!-- ✅ SUPPORTED: Simple shapes -->
\x3Csvg width="200" height="4">
  \x3Crect width="200" height="4" rx="2" fill="#dda15e"/>
\x3C/svg>

\x3C!-- ✅ SUPPORTED: Straight line paths -->
\x3Csvg width="100" height="100">
  \x3Cpath d="M10 10 L50 10 L50 50 L10 50 Z" fill="#bc6c25"/>
\x3C/svg>

\x3C!-- ❌ FORBIDDEN: Bézier curves -->
\x3Csvg>\x3Cpath d="M0 10 Q25 0 50 10 T100 10" stroke="#dda15e"/>\x3C/svg>

\x3C!-- ❌ FORBIDDEN: Arc commands -->
\x3Csvg>\x3Cpath d="M16 4a8 8 0 0 1 5 14.3" stroke="#dda15e"/>\x3C/svg>

\x3C!-- ⚠️ WORKAROUND: Approximate curves with line segments -->
\x3Csvg>\x3Cpath d="M0 10 L12 6 L25 4 L37 6 L50 10" stroke="#dda15e" stroke-width="2"/>\x3C/svg>

Appendix E — Advanced Techniques (REQUIRED)

SVG — ONLY for Decorative Shapes (NOT a replacement for real images)

  • ⚠️ SVG is for decorative elements ONLY. It does NOT satisfy the "real image" requirement.
  • You MUST still use GenerateImage for actual photos/illustrations even if SVG is used for diagrams.
  • Do NOT use SVG to "draw" illustrations, backgrounds, or hero visuals.

SVG Usage Guidelines

  • Prefer SVG for all decorative shapes (lines/dividers, corner accents, badges, frames, arrows)
  • SVG gives pixel-crisp geometry that won't blur under transform: scale()
  • Use SVG for masks/overlays and diagram-like UI (timeline rails, connectors)
  • Rule of thumb: if it's a "shape" (not text, not a photo), SVG is usually cleanest
  • ⚠️ ALWAYS check Appendix D constraints before writing SVG paths

⚠️ CRITICAL: Background Shapes Must Use SVG

Do NOT use CSS background/border for decorative background shapes. These must use SVG:

  • Badge/tag backgrounds (rounded rectangles, pill shapes)
  • Feature tag backgrounds
  • Card borders
  • Button-like backgrounds
  • Dividers (NOT CSS background, border, or \x3Chr>)

Reason: CSS borders/backgrounds blur under transform: scale(). SVG stays crisp.

\x3C!-- ✅ Correct: SVG badge with text INSIDE the SVG -->
\x3Csvg width="180" height="52" viewBox="0 0 180 52">
  \x3Crect width="180" height="52" rx="26" fill="#fb8500"/>
  \x3Ctext x="90" y="26" text-anchor="middle" dominant-baseline="central"
        font-size="16" font-weight="700" fill="#ffffff">LABEL\x3C/text>
\x3C/svg>

\x3C!-- ❌ Wrong: span overlay on SVG (text lost in PPTX) -->
\x3Cdiv class="badge">
  \x3Csvg>\x3Crect .../>\x3C/svg>
  \x3Cspan>LABEL\x3C/span>
\x3C/div>

\x3C!-- ❌ Wrong: CSS background -->
\x3Cdiv style="background: #fb8500; border-radius: 26px;">\x3Cspan>LABEL\x3C/span>\x3C/div>

\x3C!-- ✅ Correct: SVG divider -->
\x3Csvg width="120" height="4" aria-hidden="true">
  \x3Crect width="120" height="4" rx="2" fill="#219ebc"/>
\x3C/svg>

\x3C!-- ❌ Wrong: CSS divider -->
\x3Cdiv style="width: 120px; height: 4px; background: #219ebc;">\x3C/div>

SVG Use Cases

1. Background Patterns — Geometric textures for visual depth:

\x3C!-- Dot grid pattern -->
\x3Csvg width="100%" height="100%" style="position:absolute;top:0;left:0;opacity:0.08;pointer-events:none;">
  \x3Cdefs>
    \x3Cpattern id="dots" x="0" y="0" width="40" height="40" patternUnits="userSpaceOnUse">
      \x3Ccircle cx="20" cy="20" r="2" fill="currentColor"/>
    \x3C/pattern>
  \x3C/defs>
  \x3Crect width="100%" height="100%" fill="url(#dots)"/>
\x3C/svg>

\x3C!-- Diagonal stripes -->
\x3Csvg width="100%" height="100%" style="position:absolute;top:0;left:0;opacity:0.05;pointer-events:none;">
  \x3Cdefs>
    \x3Cpattern id="stripes" width="20" height="20" patternUnits="userSpaceOnUse" patternTransform="rotate(45)">
      \x3Crect width="10" height="20" fill="currentColor"/>
    \x3C/pattern>
  \x3C/defs>
  \x3Crect width="100%" height="100%" fill="url(#stripes)"/>
\x3C/svg>

2. Decorative Elements:

\x3C!-- L-shaped corner decoration -->
\x3Csvg width="40" height="40" style="position:absolute;top:0;left:0;" aria-hidden="true">
  \x3Cpath d="M0 35 L0 0 L35 0" stroke="currentColor" stroke-width="2" fill="none" opacity="0.4"/>
\x3C/svg>

\x3C!-- Straight divider line -->
\x3Csvg width="400" height="2" aria-hidden="true">
  \x3Crect width="400" height="2" fill="currentColor" opacity="0.3"/>
\x3C/svg>

\x3C!-- Simple arrow (right-pointing) -->
\x3Csvg width="40" height="16" viewBox="0 0 40 16" aria-hidden="true">
  \x3Cpath d="M0 8 L32 8 M24 2 L32 8 L24 14" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
\x3C/svg>

3. Icons:

\x3C!-- Checkmark icon (polyline - SUPPORTED) -->
\x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
  \x3Cpolyline points="20 6 9 17 4 12"/>
\x3C/svg>

\x3C!-- Simple arrow icon (path with L/M - SUPPORTED) -->
\x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  \x3Cpath d="M5 12 L19 12 M12 5 L19 12 L12 19"/>
\x3C/svg>

\x3C!-- Plus sign icon (lines - SUPPORTED) -->
\x3Csvg width="24" height="24" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
  \x3Cline x1="12" y1="5" x2="12" y2="19"/>
  \x3Cline x1="5" y1="12" x2="19" y2="12"/>
\x3C/svg>

4. Data Visualization Helpers:

\x3C!-- Percentage ring (70%) -->
\x3Csvg width="100" height="100" viewBox="0 0 100 100">
  \x3Ccircle cx="50" cy="50" r="40" stroke="#e0e0e0" stroke-width="8" fill="none"/>
  \x3Ccircle cx="50" cy="50" r="40" stroke="#4CAF50" stroke-width="8" fill="none"
          stroke-dasharray="251.3" stroke-dashoffset="75.4" stroke-linecap="round"
          transform="rotate(-90 50 50)"/>
  \x3Ctext x="50" y="50" text-anchor="middle" dominant-baseline="central" font-size="20" font-weight="bold" fill="currentColor">70%\x3C/text>
\x3C/svg>

\x3C!-- Horizontal progress bar -->
\x3Csvg width="200" height="12" viewBox="0 0 200 12">
  \x3Crect x="0" y="0" width="200" height="12" rx="6" fill="#e0e0e0"/>
  \x3Crect x="0" y="0" width="140" height="12" rx="6" fill="#2196F3"/>
\x3C/svg>

\x3C!-- Mini bar chart -->
\x3Csvg width="80" height="40" viewBox="0 0 80 40">
  \x3Crect x="0" y="20" width="12" height="20" fill="currentColor" opacity="0.6"/>
  \x3Crect x="17" y="10" width="12" height="30" fill="currentColor" opacity="0.8"/>
  \x3Crect x="34" y="5" width="12" height="35" fill="currentColor"/>
  \x3Crect x="51" y="15" width="12" height="25" fill="currentColor" opacity="0.7"/>
  \x3Crect x="68" y="8" width="12" height="32" fill="currentColor" opacity="0.9"/>
\x3C/svg>

5. Masks & Overlays:

\x3C!-- Bottom overlay for text readability -->
\x3Csvg width="100%" height="300" style="position:absolute;bottom:0;left:0;pointer-events:none;">
  \x3Crect width="100%" height="100%" fill="#000000" fill-opacity="0.7"/>
\x3C/svg>

\x3C!-- Side overlay -->
\x3Csvg width="400" height="100%" style="position:absolute;left:0;top:0;pointer-events:none;">
  \x3Crect width="100%" height="100%" fill="#000000" fill-opacity="0.8"/>
\x3C/svg>

SVG Implementation Tips

  • Use vector-effect="non-scaling-stroke" to keep stroke widths stable under transform: scale()
  • For thin lines, prefer filled rectangles to avoid stroke anti-alias artifacts
  • Use overflow="visible" when SVG needs to extend beyond its box
  • Use aria-hidden="true" for purely decorative SVGs
  • Use currentColor for easy theming
  • Use pointer-events: none for overlay SVGs

Minimal Patterns

\x3C!-- Crisp divider line -->
\x3Csvg overflow="visible" width="320" height="2" aria-hidden="true">
  \x3Crect width="320" height="2" fill="rgba(255,255,255,0.35)">\x3C/rect>
\x3C/svg>

\x3C!-- Consistent stroke under scaling -->
\x3Csvg overflow="visible" width="320" height="2" aria-hidden="true">
  \x3Cpath vector-effect="non-scaling-stroke" d="M0 1 L320 1" stroke="rgba(255,255,255,0.55)" stroke-width="2">\x3C/path>
\x3C/svg>

\x3C!-- Solid overlay -->
\x3Csvg width="100%" height="200" style="position:absolute;bottom:0;left:0;pointer-events:none;">
  \x3Crect width="100%" height="100%" fill="#000000" fill-opacity="0.6"/>
\x3C/svg>

Appendix F — HTML2PPTX Validation Rules (REQUIRED)

Layout and Dimensions

  • Slide content must not overflow (no scrollbars)
  • Text elements larger than 12pt must be at least 0.5″ above bottom edge
  • HTML body dimensions must match 960×540

Backgrounds and Images

  • No CSS gradients
  • No background-image on div elements
  • For slide backgrounds, use a real \x3Cimg> element
  • Solid background colors → on .slide-content directly

Text Elements

  • p, h1h6, ul, ol, li must NOT have background, border, or shadow
  • Inline elements (span, b, i, u, strong, em) must NOT have margins
  • Do NOT use manual bullet symbols — use \x3Cul> or \x3Col> lists
  • Do NOT leave raw text directly inside div — wrap all text in text tags

SVG and Text

  • Do NOT place text (\x3Cspan>, \x3Cp>) as overlay on SVG using absolute positioning — text will be LOST in PPTX
  • When badge/tag/label needs text on SVG background, put text INSIDE SVG using \x3Ctext> element
  • SVG \x3Ctext> must use text-anchor="middle" and dominant-baseline="central" for centering
\x3C!-- ✅ Correct: Text inside SVG -->
\x3Csvg width="100" height="32" viewBox="0 0 100 32">
  \x3Crect width="100" height="32" rx="16" fill="#bc6c25"/>
  \x3Ctext x="50" y="16" text-anchor="middle" dominant-baseline="central"
        font-size="14" font-weight="700" fill="#fefae0" letter-spacing="3">丰收季\x3C/text>
\x3C/svg>

\x3C!-- ❌ Wrong: Text overlaid on SVG (LOST in PPTX) -->
\x3Cdiv class="badge">
  \x3Csvg aria-hidden="true">\x3Crect .../>\x3C/svg>
  \x3Cspan style="position:absolute;">丰收季\x3C/span>
\x3C/div>

Placeholders

  • Elements with class placeholder must have non-zero width and height

Appendix G — Page Number Badge / 角标 (REQUIRED)

All slides except Cover Page MUST include a page number badge showing the current slide number in the bottom-right corner.

  • Position: position:absolute; right:32px; bottom:24px;
  • Must use SVG (text inside \x3Ctext>, not overlaid \x3Cspan>)
  • Colors from palette only; keep it subtle; same style across all slides
  • Show current number only (e.g. 3 or 03), NOT "3/12"
\x3C!-- ✅ Circle badge (default) -->
\x3Csvg style="position:absolute; right:32px; bottom:24px;" width="36" height="36" viewBox="0 0 36 36">
  \x3Ccircle cx="18" cy="18" r="18" fill="#219ebc"/>
  \x3Ctext x="18" y="18" text-anchor="middle" dominant-baseline="central"
        font-size="14" font-weight="600" fill="#ffffff">3\x3C/text>
\x3C/svg>

\x3C!-- ✅ Pill badge -->
\x3Csvg style="position:absolute; right:32px; bottom:24px;" width="48" height="28" viewBox="0 0 48 28">
  \x3Crect width="48" height="28" rx="14" fill="#219ebc"/>
  \x3Ctext x="24" y="14" text-anchor="middle" dominant-baseline="central"
        font-size="13" font-weight="600" fill="#ffffff">03\x3C/text>
\x3C/svg>

\x3C!-- ✅ Minimal (number only) -->
\x3Cp style="position:absolute; right:36px; bottom:24px; margin:0; font-size:13px; font-weight:500; color:#8ecae6;">03\x3C/p>

Common Mistakes to Avoid

  • Don't repeat the same layout — vary columns, cards, and callouts across slides
  • Don't center body text — left-align paragraphs and lists; center only titles
  • Don't skimp on size contrast — titles need 36pt+ to stand out from 14–16pt body
  • Don't default to blue — pick colors reflecting the specific topic
  • Don't mix spacing randomly — choose 0.3″ or 0.5″ gaps and use consistently
  • Don't style one slide and leave the rest plain — commit fully or keep it simple throughout
  • Don't create text-only slides — add images, icons, charts, or visual elements
  • Don't forget text box padding — when aligning shapes with text edges, set margin: 0 or offset
  • Don't use low-contrast elements — icons AND text need strong contrast against background
  • NEVER use accent lines under titles — hallmark of AI-generated slides; use whitespace or background color instead
  • Don't use gradients — solid colors only (Appendix C)
  • Don't use animations — static slides only (Appendix C)
  • Don't overlay text on SVG with absolute positioning — text will be lost in PPTX (Appendix F)
  • Don't use CSS for decorative shapes — use SVG for crispness under scaling (Appendix E)
  • Don't forget the page number badge — required on all slides except cover (Appendix G)
  • Don't use Bézier curves or arcs in SVG paths — PPTX converter will skip them (Appendix D)

File & Output Conventions

Item Convention
Slide files slides/slide-01.html, slides/slide-02.html, … (zero-padded)
Image files slides/imgs/ directory
Slide dimensions 960×540 px (.slide-content)
Font Times New Roman for all text (Chinese and English)
CSS Inline only (except Appendix A scaling snippet)
Colors From chosen palette only; no gradients
Animations None — static slides only
Page badge All slides except cover; bottom-right corner
Final deployment Use deploy_html_presentation tool

Tools Reference

Tool Purpose When to Use
GenerateImage Create images for slides MANDATORY for cover + content pages; optional for TOC/divider/summary
get_html_presentation_screenshot Take screenshot of rendered HTML slide After writing every slide HTML
images_understand Analyze screenshot for layout issues After every screenshot — verify no overlaps, correct layout, badge present
deploy_html_presentation Merge slides and deploy final presentation Step 5 — after all slides are verified
安全使用建议
This skill appears coherent with its purpose and has a low technical surface (no installs, no secrets). Before installing, verify the agent tools it expects: GenerateImage, get_html_presentation_screenshot, images_understand, and deploy_html_presentation — confirm what implementations/endpoints those tools use and what external services the deploy step uploads to. Because the skill's source/homepage are unknown, prefer to run it in a sandbox or with non-sensitive content until you confirm where images and deployed presentations are stored. Also note the mandatory Times New Roman rule for Chinese text may affect visual quality; that's a design choice, not a security issue. Finally, avoid providing any secrets or proprietary content until you confirm the deploy target and image-generation service policies.
功能分析
Type: OpenClaw Skill Name: html-presentation-generator Version: 1.0.0 The skill bundle is a legitimate and highly detailed instruction set for generating HTML-based presentations. It defines a structured workflow including research, design selection, slide generation, and deployment using specific tools like `GenerateImage` and `deploy_html_presentation`. The instructions include technical constraints for SVG and CSS to ensure compatibility with PPTX export, and the included JavaScript snippet in SKILL.md is strictly for responsive UI scaling. No evidence of data exfiltration, malicious execution, or harmful prompt injection was found.
能力标签
crypto
能力评估
Purpose & Capability
Name/description match the SKILL.md: the instructions describe slide planning, image generation, screenshot verification, and deployment — all coherent for an HTML presentation generator. The referenced tools (GenerateImage, get_html_presentation_screenshot, images_understand, deploy_html_presentation) are relevant to the stated workflow, though they are not declared in metadata (they appear to be agent tools rather than external credentials).
Instruction Scope
Runtime instructions stay within slide generation: research, palette/font selection, outlining, per-slide HTML+images, screenshots, verification, and deployment. The 'research' step asks the agent to search the web (appropriate for content generation). The skill does not instruct reading arbitrary system files, environment variables, or unrelated configs, nor does it request exfiltration of user secrets.
Install Mechanism
Instruction-only skill with no install spec and no code files. No binaries, downloads, or extracts — lowest-risk install profile.
Credentials
No environment variables, credentials, or config paths are requested. The workflow references image generation and deployment tools (expected for this purpose) but does not require unrelated secrets or broad platform credentials.
Persistence & Privilege
always:false and no install/write-to-system behavior. The skill does not request permanent presence or attempt to modify other skills or global agent settings.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install html-presentation-generator
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /html-presentation-generator 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial public release of HTML Presentation Generator. - Generates professional multi-page HTML presentations, each slide as a standalone HTML file (960×540 px). - Supports cover, table of contents, section divider, various content pages (text/mixed/chart/etc.), and summary slides. - All presentations use Times New Roman font for both Chinese and English. - Built-in support for image generation, color palette selection, and visual verification of slides. - Supports export to PDF/PPTX and final deployment of slide decks.
元数据
Slug html-presentation-generator
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Html Presentation Generator 是什么?

Generate professional multi-page HTML presentations (PPT). Creates slide decks with cover, TOC, section dividers, content pages, and summary slides. Supports... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 118 次。

如何安装 Html Presentation Generator?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install html-presentation-generator」即可一键安装,无需额外配置。

Html Presentation Generator 是免费的吗?

是的,Html Presentation Generator 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Html Presentation Generator 支持哪些平台?

Html Presentation Generator 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Html Presentation Generator?

由 tianheihei002(@tianheihei002)开发并维护,当前版本 v1.0.0。

💬 留言讨论