视觉画布设计
canvas-design
基于设计原则创作静态视觉作品,用于海报与品牌图形。
fund-slides【文档与办公】Create animation-rich HTML presentations from any content. Provides intelligent content-to-visual mapping -- given information of any type, selects the optimal slide layout, chart, and animation. Zero-dependency single HTML files with Chinese font support and ECharts inline integration. Use when the user wants to build a presentation, convert a PPT/P…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
将任意内容转化为零依赖、动画丰富的 HTML 演示文稿。
本技能不关心内容从哪来、用什么分析框架 -- 它只做一件事:给定一块信息,选择最佳的视觉呈现方式。
<script> 标签中(通过 WebFetch 下载 echarts.min.js 后内联),确保离线可用。杜绝"AI 味"。每份演示文稿都应有定制感。
clamp()。适用于每张 slide 的不变量:
.slide: height: 100vh; height: 100dvh; overflow: hidden;clamp(min, preferred, max) -- 禁止固定 px/remclamp() 或视口单位max-height: min(50vh, 400px)prefers-reduced-motion 支持calc(-1 * clamp(...)) -- 禁止 -clamp()overflow: hidden、clamp() 字号、图片 max-height目标:理解用户有什么内容,而非告诉用户应该有什么内容。
通过一次 AskUserQuestion 收集信息:
问题 1 -- 内容来源 (header: "内容"): 你的内容是什么形式?选项:
问题 2 -- 长度 (header: "长度"): 大约多少页?选项:简短 5-10 / 中等 10-20 / 较长 20+
问题 3 -- 图表需求 (header: "图表"): 是否需要数据图表?选项:
问题 4 -- 在线编辑 (header: "编辑"): 是否需要浏览器内编辑文字?选项:是(推荐) / 否
然后请用户提供内容。
用户提供内容后,读取 content-mapping.md 进行内容分析:
示例输出:
Slide 大纲:
| # | 内容 | 信息类型 | 视觉形式 |
|---|------|---------|---------|
| 1 | 标题与主题 | -- | 标题页 |
| 2 | 6 个核心财务指标 | 少量关键指标 | KPI 卡片网格 |
| 3 | 2019-2024 营收趋势 | 时间序列 | 柱线混合图 |
| 4 | 收入构成 + 解读 | 构成 + 论点 | 图文分栏 (饼图+要点) |
| 5 | 三条核心优势 | 论点+支撑 | 标题+要点列表 |
| ... | ... | ... | ... |
通过 AskUserQuestion 确认 (header: "大纲"): "这个 slide 大纲是否合适?" 选项:合适 / 调整
确认大纲后,必须将分析结果写入 .slide-plan.md,格式如下:
# Slide Plan
- 预设: [所选预设名称]
- 图表方案: [ECharts / SVG / 无]
- 编辑模式: [是 / 否]
- 需读取的 references: [列出 Phase 3 需要的文件]
| # | 内容摘要 | 类型 | 视觉形式 | 需要的 CSS class |
|---|---------|------|---------|----------------|
| 1 | ... | ... | ... | ... |
Phase 3 生成前必须先读取此文件,确保不会遗忘 Phase 1 的分析结果。
如果用户提供了图片:扫描 -> 查看 -> 评估可用性 -> 融入大纲。
"看效果选风格"环节。
询问 (header: "风格"):
询问 (header: "感受", multiSelect: true, max 2):
读取 STYLE_PRESETS.md 获取 15 个可用预设。根据感受从中选择 3 个差异化预设生成单页预览。
| 感受 | 建议预设(按适配度排序) |
|---|---|
| 专业/可信 | Research Formal, Swiss Modern, Notebook Tabs, Data Dashboard |
| 自信/有力 | Roadshow Elegance, Bold Signal, Electric Studio |
| 沉稳/专注 | Paper & Ink, Data Dashboard, Swiss Modern |
| 高端/精致 | Roadshow Elegance, Dark Botanical, Vintage Editorial |
保存预览到 .claude-design/slide-previews/,自动打开。
询问 (header: "风格选择"): 哪个风格?选项:A / B / C / 混合
.slide-plan.md -- 恢复 Phase 1 的分析结果(类型、视觉形式、需要的文件)根据 .slide-plan.md 中列出的 references 读取:
.slide-plan.md 列出的图表类型读取如果 .slide-plan.md 中图表方案为 ECharts,必须将 ECharts 库内嵌到 HTML 中:
<script>/* ECharts v5 */...内容...</script> 中<!-- SLOT: ECHARTS INLINE --> 位置<script src="..."> 外部引用 -- 最终 HTML 必须离线可用在 safe-base-template.html 的 <!-- SLOT: SLIDES --> 位置添加 slide。每张 slide 的视觉形式严格按 .slide-plan.md 执行。
slide 结构由 Phase 1 的 content-mapping 结果驱动,而非固定模板。每份演示文稿的页面组合都应该不同。
输出最终 HTML 前,逐项检查以下清单。任何一项失败,修复后再继续。
<html lang="zh-CN"> 已设置scroll-snap-type 确认存在)font-size: 使用 clamp()(搜索 font-size:,确认无固定 px/rem 值)formatCN 函数已内嵌(如有数字数据).trend-up / .trend-down CSS 类).slide 继承了 overflow: hidden(来自 safe-base-template)Noto+Sans+SC 或 Noto+Serif+SC)--color-positive: #dc2626 和 --color-negative: #16a34a 存在(A 股默认)<script src="..."> 外部引用(如有 ECharts,确认是内联 <script> 而非 CDN)如有任何项失败,修复后再继续。不要跳过自检。
python scripts/extract-pptx.py <input.pptx> <output_dir>.claude-design/slide-previews/open [filename].htmlmessage({
action: "send",
channel: "feishu",
path: "/home/core/.openclaw/workspace/output/presentation.html",
filename: "presentation.html",
caption: "基金分析演示文稿"
})
当内容超过 15 页、或包含 3 种以上图表类型、或模型多次生成失败时,切换到简化路径:
布局限制为 3 种:
风格固定为 Data Dashboard: 最简洁的预设,最低出错概率。
功能限制:
.reveal 类)分步生成: 先生成前 3 页预览,确认正确后再生成剩余页面。避免一次生成全部后发现基础层有错。
fund-slides/
SKILL.md ← 入口(始终加载)
content-mapping.md ← 信息类型→视觉形式映射 + 强制检查清单
STYLE_PRESETS.md ← 15 个视觉预设
references/
safe-base-template.html ← 防护性基础模板(Phase 3 起点,内置全部安全层)
echarts.min.js ← ECharts v5 库(~1MB,生成时内联到 HTML)
viewport-base.css ← 响应式 CSS + CJK + 全局 A 股配色 + 趋势箭头
animation-patterns.md ← 动画模式
charts-base.md ← ECharts 基础设施 + 速查表 + SVG
charts-trend.md ← 折线/面积/柱状图
charts-composition.md ← 饼图/玫瑰/Treemap/旭日图
charts-matrix.md ← 热力图/雷达/散点图
charts-flow.md ← 瀑布/K线/漏斗/桑基图
financial-layouts.md ← KPI/表格/时间线/对比布局
html-template.md ← HTML 结构 + JS 功能
scripts/
extract-pptx.py ← PPT 内容提取(Phase 4)
| File | When to Read |
|---|---|
| content-mapping.md | MANDATORY Phase 1.2(强制检查清单) |
| STYLE_PRESETS.md | MANDATORY Phase 2 + Phase 3.1 |
| references/safe-base-template.html | MANDATORY Phase 3.0(复制为起点) |
| references/charts-base.md | Phase 3.1 -- 含图表时(基础设施 + 速查表) |
| references/charts-trend.md | Phase 3.1 -- 含折线/面积/柱状图时 |
| references/charts-composition.md | Phase 3.1 -- 含饼图/玫瑰/Treemap/旭日图时 |
| references/charts-matrix.md | Phase 3.1 -- 含热力图/雷达/散点图时 |
| references/charts-flow.md | Phase 3.1 -- 含瀑布/K线/漏斗/桑基图时 |
| references/financial-layouts.md | Phase 3.1 -- 含 KPI/表格/时间线/对比时 |
| references/animation-patterns.md | Phase 3.1 -- 高级动画时 |
| references/html-template.md | Phase 3.1 -- 编辑功能等 JS 参考 |