Install
openclaw skills install @thcjp/theme-stylistopenclaw skills install @thcjp/theme-stylist|---| | 幻灯片美化 | PPT 文件 + 内容调性 | 应用主题的 PPT + 配色方案 + 字体规范 | | 文档美化 | DOCX/MD 文件 + 调性 | 美化后的文档 + 主题样式表 | | 报告配色 | 数据报告 + 图表 | 统一配色的报告 + 图表色板 | | HTML 落地页 | HTML + 主题选择 | 应用 CSS 变量的 HTML + 主题预览 | | 主题定制 | 品牌主色 HEX + 调性 | 自定义主题 JSON + CSS 变量 + 色板预览 | 不适用于:
输入:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 主题造型师处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
产出物: 企业年度报告 PPT
内容调性: 专业、稳重
当前问题: 配色混乱,字体不统一
输出(theme.json 片段):
{
"name": "Corporate",
"colors": {
"primary": "#1a56db",
"secondary": "#3b82f6",
"accent": "#f59e0b",
"background": "#ffffff",
"surface": "#f8fafc",
"text": {
"primary": "#111827",
"secondary": "#6b7280",
"muted": "#9ca3af"
},
"chart": ["#1a56db", "#3b82f6", "#f59e0b", "#10b981", "#8b5cf6"]
},
"fonts": {
"heading": { "family": "Inter, 思源黑体", "weights": [600, 700] },
"body": { "family": "Inter, 思源黑体", "weights": [400, 500] },
"mono": { "family": "JetBrains Mono, 思源等宽", "weights": [400] }
},
"spacing": { "xs": "4px", "sm": "8px", "md": "16px", "lg": "24px", "xl": "48px" }
}
css
/* variables.css */
:root {
--color-primary: #1a56db;
--color-secondary: #3b82f6;
--color-accent: #f59e0b;
--color-bg: #ffffff;
--color-surface: #f8fafc;
--color-text-primary: #111827;
--color-text-secondary: #6b7280;
--font-heading: 'Inter', '思源黑体', sans-serif;
--font-body: 'Inter', '思源黑体', sans-serif;
}
输入:
品牌名: 绿野生活
品牌主色: #2d6a4f (深绿)
调性: 自然、温暖、可信
用途: 官网 + 落地页 + 文档
输出(完整色板 + 字体):
{
"name": "GreenField Custom",
"colors": {
"primary": "#2d6a4f",
"secondary": "#52b788",
"accent": "#f4a261",
"background": "#fefefe",
"surface": "#f0f7f4",
"functional": {
"success": "#52b788",
"warning": "#f4a261",
"error": "#e63946",
"info": "#457b9d"
},
"neutral": {
"50": "#f8fafc", "100": "#f1f5f9", "200": "#e2e8f0",
"300": "#cbd5e1", "400": "#94a3b8", "500": "#64748b",
"600": "#475569", "700": "#334155", "800": "#1e293b", "900": "#0f172a"
},
"chart": ["#2d6a4f", "#52b788", "#f4a261", "#457b9d", "#e63946"]
},
"fonts": {
"heading": { "family": "Lora, 思源宋体", "weights": [600, 700] },
"body": { "family": "Nunito, 思源黑体", "weights": [400, 500] }
},
"rationale": "深绿主色传达自然与可信,辅色亮绿提供层次,橙色强调增加温暖感"
}
输入:
PPT 文件: 30 页企业报告
应用主题: Corporate
问题: 部分页面仍使用旧配色
输出(consistency-report.md 片段):
- 符合比例: 24/30 页 (80%)
- 偏差点: 6 页
- P5: 使用 #999999 灰色(应为 #6b7280)
- P12: 强调色用 #ff0000(应为 #f59e0b)
- P18-P20: 图表色板未使用主题色序列
- 符合: 28/30 页 (93%)
- 偏差: P3 使用宋体(应为 Inter/思源黑体)
- 符合: 26/30 页 (87%)
- 偏差: P7/P15 标题间距过小(应 24px,实际 16px)
1. 全局替换 #999999 → #6b7280
2. 全局替换 #ff0000 → #f59e0b
3. 应用图表色板(Corporate 5 色)
4. 统一标题间距为 24px
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 品牌色为非 HEX 格式 | RGB/HSL/CMYK 格式 | 自动转换工具 rgb-to-hex,提示用户输入 HEX |
| 品牌色对比度不足 | 主色与背景色对比度 < 4.5 | 自动调整明暗,确保 WCAG AA 合规 |
| 字体不可用 | 系统未安装指定字体 | 提供备用字体栈(优先 Web 字体 CDN) |
| 主题应用后视觉混乱 | 原有样式未清除 | 提供"清除旧样式"步骤,先重置再应用 |
| 图表配色冲突 | 图表库默认色板未替换 | 提供图表库配置代码(ECharts/Chart.js 色板) |
| 暗色模式适配缺失 | 仅生成亮色主题 | 同时生成暗色主题色板(反转 + 调整对比度) |
| 中文字体显示异常 | 系统缺少中文字体 | 配置 Web 字体 CDN(思源/阿里巴巴普惠体) |
| CSS 变量不被旧浏览器支持 | IE11 等旧浏览器 | 提供降级方案(直接 CSS 属性 + PostCSS) |
| 依赖项 | 类型 | 是否必需 | 获取方式 | 国内替代 |
|---|---|---|---|---|
| LLM API | API | 必需 | Agent 内置 LLM 提供设计能力 | 通义/文心/智谱 |
| Tailwind CSS | 工具 | 可选(HTML) | npm install -D tailwindcss | npmmirror 镜像 |
| Google Fonts | CDN | 可选(字体) | fonts.google.com | 字体 CDN(bootcdn/75CDN) |
| 思源字体 | 字体 | 可选(中文) | github.com/adobe-fonts/source-han-sans | 字体 CDN |
| 阿里巴巴普惠体 | 字体 | 可选(中文) | alibabafont.com | 免费商用 |
以下案例展示了skill的工作流程和预期输出效果,由LLM按照skill定义的流程生成。
输入:
产出物: 企业年度报告 PPT(35页)
内容调性: 专业、稳重、商务
当前问题: 配色混乱(12种颜色混用),字体不统一(黑体+宋体+楷体),图表用默认色
要求: 应用Corporate主题,统一视觉风格
LLM生成输出 (output/annual-report/theme.json):
{
"name": "Corporate",
"version": "1.0",
"colors": {
"primary": "#1a56db",
"secondary": "#3b82f6",
"accent": "#f59e0b",
"background": "#ffffff",
"surface": "#f8fafc",
"text": {
"primary": "#111827",
"secondary": "#6b7280",
"muted": "#9ca3af"
},
"chart": ["#1a56db", "#3b82f6", "#f59e0b", "#10b981", "#8b5cf6", "#ef4444"],
"table": {
"header_bg": "#1a56db",
"header_text": "#ffffff",
"row_alt_bg": "#f8fafc",
"border": "#e2e8f0"
}
},
"fonts": {
"heading": { "family": "Inter, 思源黑体", "weights": [600, 700], "sizes": { "h1": "36pt", "h2": "28pt", "h3": "22pt" } },
"body": { "family": "Inter, 思源黑体", "weights": [400, 500], "sizes": { "large": "18pt", "normal": "16pt", "small": "12pt" } },
"mono": { "family": "JetBrains Mono, 思源等宽", "weights": [400] }
},
"spacing": { "xs": "4px", "sm": "8px", "md": "16px", "lg": "24px", "xl": "48px" },
"ratio": { "primary": "60%", "secondary": "30%", "accent": "10%" }
}
LLM生成输出 (output/annual-report/ppt-styles.md - PPT样式映射指南):
- 背景: #1a56db 纯色
- 标题: 思源黑体 36pt 白色 加粗
- 副标题: 思源黑体 18pt #93c5fd
- 日期: 思源黑体 14pt #bfdbfe
- 背景: #ffffff
- 标题: 思源黑体 28pt #1a56db 加粗
- 正文: 思源黑体 16pt #111827
- 页码: 思源黑体 12pt #9ca3af
- 背景: #ffffff
- 标题: 思源黑体 22pt #111827 加粗
- 图表色板: #1a56db → #3b82f6 → #f59e0b → #10b981 → #8b5cf6
- 图表标题: 思源黑体 14pt #6b7280
- 数据标签: 思源黑体 12pt #111827
```html
| 季度 | 营收 | 同比 | 目标完成率 |
|:------|------:|:------|:------|
| Q1 | 1.2亿| +15% | 102% |
| Q2 | 1.5亿| +22% | 105% |
**效果验证**: ✓完整theme.json含色彩/字体/间距/比例 ✓PPT样式按页面类型分封面/目录/内容/表格 ✓图表色板6色序列可循环使用 ✓60-30-10比例校验(主色60%/辅色30%/强调10%) ✓表格样式含表头/交替行/边框完整规范
### 案例2: 科技创业公司自定义品牌主题(品牌色→完整色板+暗色模式)
**输入**:
品牌名: NeuroFlow AI 品牌主色: #6366f1(靛蓝) 调性: 科技、前沿、可信 用途: 官网 + SaaS后台 + API文档 + PPT 要求: 生成完整色板(含功能色/中性色)+ 暗色模式 + ECharts配置
**LLM生成输出** (`output/neuroflow/theme.json`):
```json
{
"name": "NeuroFlow Custom",
"colors": {
"light": {
"primary": "#6366f1",
"secondary": "#818cf8",
"accent": "#06b6d4",
"background": "#ffffff",
"surface": "#f5f3ff",
"text": { "primary": "#1e1b4b", "secondary": "#6366f1", "muted": "#a5b4fc" },
"functional": {
"success": "#10b981",
"warning": "#f59e0b",
"error": "#ef4444",
"info": "#3b82f6"
},
"neutral": {
"50": "#fafafa", "100": "#f4f4f5", "200": "#e4e4e7",
"300": "#d4d4d8", "400": "#a1a1aa", "500": "#71717a",
"600": "#52525b", "700": "#3f3f46", "800": "#27272a", "900": "#18181b"
},
"chart": ["#6366f1", "#06b6d4", "#10b981", "#f59e0b", "#ef4444", "#8b5cf6"]
},
"dark": {
"primary": "#818cf8",
"secondary": "#a5b4fc",
"accent": "#22d3ee",
"background": "#0f0a2e",
"surface": "#1e1b4b",
"text": { "primary": "#e0e7ff", "secondary": "#a5b4fc", "muted": "#6366f1" },
"functional": {
"success": "#34d399",
"warning": "#fbbf24",
"error": "#f87171",
"info": "#60a5fa"
},
"chart": ["#818cf8", "#22d3ee", "#34d399", "#fbbf24", "#f87171", "#a78bfa"]
}
},
"fonts": {
"heading": { "family": "Inter, 思源黑体", "weights": [600, 700] },
"body": { "family": "Inter, 思源黑体", "weights": [400, 500] },
"mono": { "family": "JetBrains Mono, 思源等宽", "weights": [400, 500] }
},
"rationale": "靛蓝主色传达科技前沿感,青色强调增加活力,暗色模式提升SaaS后台长时间使用舒适度"
}
LLM生成输出 (output/neuroflow/variables.css):
/* NeuroFlow 主题变量 - 亮色模式 */
:root {
--color-primary: #6366f1;
--color-secondary: #818cf8;
--color-accent: #06b6d4;
--color-bg: #ffffff;
--color-surface: #f5f3ff;
--color-text-primary: #1e1b4b;
--color-text-secondary: #6366f1;
--color-text-muted: #a5b4fc;
--color-success: #10b981;
--color-warning: #f59e0b;
--color-error: #ef4444;
--color-info: #3b82f6;
// ...
--font-heading: 'Inter', '思源黑体', sans-serif;
--font-body: 'Inter', '思源黑体', sans-serif;
--font-mono: 'JetBrains Mono', '思源等宽', monospace;
// ...
--chart-1: #6366f1;
--chart-2: #06b6d4;
--chart-3: #10b981;
--chart-4: #f59e0b;
--chart-5: #ef4444;
--chart-6: #8b5cf6;
}
// ...
/* 暗色模式 */
[data-theme="dark"] {
--color-primary: #818cf8;
--color-secondary: #a5b4fc;
--color-accent: #22d3ee;
--color-bg: #0f0a2e;
--color-surface: #1e1b4b;
--color-text-primary: #e0e7ff;
--color-text-secondary: #a5b4fc;
--color-text-muted: #6366f1;
--color-success: #34d399;
--color-warning: #fbbf24;
--color-error: #f87171;
--color-info: #60a5fa;
// ...
--chart-1: #818cf8;
--chart-2: #22d3ee;
--chart-3: #34d399;
--chart-4: #fbbf24;
--chart-5: #f87171;
--chart-6: #a78bfa;
}
LLM生成输出 (output/neuroflow/echarts-config.js - ECharts色板配置):
// ECharts 主题配置
const neuroFlowTheme = {
color: ['#6366f1', '#06b6d4', '#10b981', '#f59e0b', '#ef4444', '#8b5cf6'],
backgroundColor: 'transparent',
textStyle: { fontFamily: 'Inter, 思源黑体, sans-serif' },
title: { textStyle: { color: '#1e1b4b', fontWeight: 600 } },
legend: { textStyle: { color: '#6b7280' } },
xAxis: { axisLine: { lineStyle: { color: '#e4e4e7' } }, axisLabel: { color: '#71717a' } },
yAxis: { splitLine: { lineStyle: { color: '#f4f4f5' } }, axisLabel: { color: '#71717a' } },
tooltip: {
backgroundColor: '#1e1b4b',
borderColor: '#6366f1',
textStyle: { color: '#e0e7ff' }
}
};
// ...
// 暗色模式色板
const neuroFlowDarkTheme = {
...neuroFlowTheme,
color: ['#818cf8', '#22d3ee', '#34d399', '#fbbf24', '#f87171', '#a78bfa'],
title: { textStyle: { color: '#e0e7ff' } },
legend: { textStyle: { color: '#a5b4fc' } },
xAxis: { axisLine: { lineStyle: { color: '#3f3f46' } }, axisLabel: { color: '#a5b4fc' } },
yAxis: { splitLine: { lineStyle: { color: '#27272a' } }, axisLabel: { color: '#a5b4fc' } },
tooltip: {
backgroundColor: '#1e1b4b',
borderColor: '#818cf8',
textStyle: { color: '#e0e7ff' }
}
};
// ...
echarts.registerTheme('neuroflow', neuroFlowTheme);
echarts.registerTheme('neuroflow-dark', neuroFlowDarkTheme);
// ...
// 使用: echarts.init(dom, 'neuroflow')
效果验证: ✓品牌色#6366f1生成完整色板(辅色/强调/功能色/中性色50-900) ✓暗色模式独立色板(反转明度+提升对比度) ✓CSS变量含亮/暗双模式[data-theme="dark"]切换 ✓ECharts色板配置含坐标轴/图例/提示框完整样式 ✓设计理据说明配色逻辑(靛蓝=科技,青色=活力)
注: 本SKILL.md超过500行上限, 已截断尾部非核心章节以满足L1格式要求。完整内容见版本库历史。
A1: 核心功能。支持文本指令和结构化参数输入,具体格式参考使用流程章节。
A2: 是的,部分功能需要配置对应平台的API Key。请在依赖说明章节查看具体要求,并通过环境变量安全配置。
A3: 检查命令参数是否正确,确认运行环境支持exec能力。如遇权限问题,请参照错误处理章节排查。
注: 本SKILL.完整内容见版本库历史。
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| API密钥泄露 | 高 | 通过环境变量配置,禁止硬编码 | 定期检查代码和配置文件 |
| 命令执行风险 | 高 | 仅执行白名单命令,避免拼接用户输入 | 使用沙箱环境测试 |
| 网络通信安全 | 中 | 使用HTTPS协议,验证SSL证书 | 定期检查证书有效期 |
| 敏感数据暴露 | 高 | 输出结果中不包含密钥、令牌等敏感信息 | 日志脱敏审查 |
| 未授权访问 | 中 | 限制访问权限,实施认证机制 | 定期审计访问日志 |
针对本技能使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |
适用于需要专业工具支持的开发、运维和内容创作场景。
A1: Theme Stylist专业技能工具。