bozo-html · 深色琥珀金动效网页生成器
把任何文档或网页内容转换成单文件、深色 + 琥珀金代码终端美学的动效网页。 本技能沉淀自三个实际交付项目(接口教程网页、AI 绘图工作台说明页、个人故事页)的实战打磨,所有设计令牌、组件、动效都经过真实浏览器验证。
交付标准(缺一不可)
- 单文件 HTML,全部 CSS/JS 内联,<100KB,双击即可打开,无外部依赖(Google Fonts 允许,失败自动回退系统字体)
- UTF-8 BOM:写盘时文件头前置
b"\xef\xbb\xbf"(用 Python 补,见验证清单) - 内容忠实:源文档的文字、链接、数据一条不丢——交付前用脚本逐一核对(见验证清单)
- 动画克制:一个页面最多一个签名动效 + 滚动揭示 + hover 反馈,
prefers-reduced-motion必须尊重 - 渐进增强:任何脚本错误都不能导致内容不可见(详见 pitfalls.md,这是实战踩过的坑)
- 版权与关于我们(标配,不可省):页脚必须有
© 年份 + 版权方版权信息和「关于我们」SVG 图标按钮 + 弹窗(bozo 品牌:Design By BozoYan、严老师【AI实验室】背景徽章、微信/视频号二维码)。模板已内置,直接改内容不要删组件;验证时 MUST_KEEP 必须包含Design By BozoYan
工作流
第 1 步:读源、定结构
通读源内容(md / 代码 / 网页 / 用户描述),提取:标题、章节、要点、表格数据、代码示例、FAQ、链接清单。然后按内容类型选版式:
| 内容类型 | 版式与组件 | |---------|-----------| | 接口/技术文档 | Hero(打字机终端) → 步骤流(时间线) → 参数表格 → 代码块(带复制) → FAQ | | 工具/产品说明 | Hero(迷你界面模拟) → 功能卡 3~6 张 → 三步上手 → 交互演示(可切换 tab) → 原理流程图 → FAQ | | 个人故事/叙事 | Hero(双栏:文+数据名片) → 引言金句带 → 时间线(左右交替滑入) → 作品/成就卡 → 金句收尾 | | 通用文档 | Hero → 章节卡 + 表格 + 代码块 → FAQ,按需增删 |
第 2 步:从模板起步
cp <skill-path>/assets/template.html 输出目录/目标文件名.html
模板已包含:完整设计令牌、胶囊导航、Hero、章节骨架、代码块(mac 圆点条 + 复制按钮)、FAQ 手风琴、表格、页脚(版权 + 关于我们弹窗)、滚动揭示、进度条、toast。直接在模板上改内容,不要从零写——令牌与组件的一致性靠模板保证。
需要更多组件(数据统计条、标签云、流程图、时间线、比例可视化、打字机、逐字发光等)时,按需查阅:
references/design-tokens.md—— 全部组件的即拷 CSS/HTMLreferences/motion-library.md—— 全部动效的即拷 JS
第 3 步:动效选配(克制)
- 每页只选 1 个签名动效:打字机终端(技术文档)/ 迷你界面模拟(产品说明)/ 逐字发光金句(叙事收尾)/ 数字计数(数据展示)
- 基础动效人人都有:滚动揭示(IntersectionObserver)、卡片 hover 上浮 + 琥珀描边、导航锚点高亮、顶部进度条
- 代码块一律带「复制」按钮 + toast 反馈;JS 页面最后必须跑
node --check验证
第 4 步:验证清单(交付前逐项执行)
# 1) BOM + 完整性 + 内容忠实核对(把 MUST_KEEP 换成源文档的关键文字/链接清单)
python3 << 'PYEOF'
from pathlib import Path
import re
p = Path("目标文件.html")
raw = p.read_bytes()
if not raw.startswith(b"\xef\xbb\xbf"):
p.write_bytes(b"\xef\xbb\xbf" + raw)
text = raw.decode("utf-8-sig")
assert text.count("</html>") == 1
assert text.count("<script") == text.count("</script>")
MUST_KEEP = ["关键文字1", "关键文字2", "Design By BozoYan"] # ← 源文档关键词("Design By BozoYan" 为版权标配,必须保留)
must_hrefs = ["https://...", "相对链接.html"] # ← 源文档全部链接(含关于我们弹窗的两张二维码图)
missing = [t for t in MUST_KEEP if t not in text]
missing += [h for h in must_hrefs if h not in set(re.findall(r'(?:href|src)="([^"]+)"', text))]
print("缺失:", missing or "无 ✓", "| %.1f KB" % (p.stat().st_size/1024))
PYEOF
# 2) JS 语法(提取内嵌 script 给 node 校验)
# 3) open 目标文件.html 预览
第 5 步:避坑必读
写 HTML 前先读 references/pitfalls.md——只有 40 行,每一条都是真实事故:
CSS 特异性压过显示规则导致整页空白、脚本错误导致内容隐藏、中文引号破坏 JS 字符串等。
风格速查(完整令牌见 design-tokens.md)
- 底色
#0d1117,卡片#161b22,边框#30363d,文字#e6edf3/#9aa4af - 唯一强调色:琥珀金
#e8a857(亮#f4b96e,软底rgba(232,168,87,.12))——占页面 5%~10%,用于 kicker、高亮、CTA、hover - 标题:
Instrument Serif(金色斜体 em 点缀,中文回退宋体);正文Instrument Sans+ PingFang;代码/徽章JetBrains Mono - 签名细节:网格背景 + 顶部氛围光、mac 红黄绿圆点终端条、mono 大写字距 kicker、绿点 pulse 徽章
案例参考(可以不引用,只做演示参考)
-
小红书30天起号作战手册 https://pic.201782.com/2026/1790217412491-uj2pxkmu.html
-
Qbot安装与使用文档 https://pic.201782.com/2026/1790150439328-ftt58zom.html
-
Qwen-Image-2.1 专属的提示词管家 https://pic.201782.com/2026/1790064490547-9hrirp9j.html
-
让AI助手直接操作腾讯文档 MCP https://pic.201782.com/2026/1790051483972-ktj1dekt.html
-
让Agent生成有设计感的PPT和小红书图 https://pic.201782.com/2026/1789012235887-bl8j3v5d.html
微信扫一扫