今天在 GitHub Trending 上看到一个有意思的项目:Effective HTML,它提供了一套系统化的 AI 技能,帮助开发者用 HTML 快速构建从线框图到可交互原型的各类可视化工件。

一、项目概述

Effective HTML 由 Plannotator 团队开发,是一个专注于创建"有用、自包含 HTML 工件"的技能集合。它的核心理念是:HTML 可以可视化几乎所有内容,往往比大段文字更清晰。项目提供六个可选技能,覆盖从低保真线框图到架构图的多种场景:

技能用途
html通用 HTML 请求、报告、演示页、落地页等
design-artifact为任意 HTML 工件提供创意方向
html-wireframe低保真布局设计,测试内容层级和导航流程
html-prototype可工作原型,含真实状态、交互、键盘支持
html-plan计划、路线图、实施方案
html-diagram架构图、流程图、时序图、状态图等

项目灵感来自 Thariq Shihipar 的文章《The unreasonable effectiveness of HTML》,核心理念是将创意自由度与可靠性分离:创意方向来自对话和项目背景,而技能提供可复用的生成流程。

二、技术原理

核心设计理念

Effective HTML 的技术哲学是"胖工件 + 胖上下文":

  • 单个自包含文件:所有 HTML 工件都是单个 .html 文件,无外部依赖,可直接在浏览器中打开
  • 响应式 + 可访问性:每个工件都内置响应式设计和可访问性支持
  • 渐进式保真度:线框图故意保持未完成状态,让评审者聚焦结构;原型实现一个可信流程及其相关状态

技能路由机制

html 技能作为入口,负责路由到专业技能:

用户请求 → html 技能(路由层)
           ↓
    ┌──────┼──────┐
    ↓      ↓      ↓
wireframe prototype diagram ...

这种设计让每个技能保持独立可用,同时避免重复实现。

架构图技能实现

以 html-diagram 为例,它会根据关系类型选择合适的可视化模型:

  • 架构图:组件 + 依赖箭头
  • 时序图:参与者 + 时间线 + 消息
  • 流程图:节点 + 决策分支
  • 状态图:状态节点 + 转换边

所有图表都用纯 HTML + CSS + JavaScript 渲染,无需 Mermaid、PlantUML 等外部工具。

三、安装与快速开始

环境要求

  • Node.js 18+(用于 npx)
  • 或 Claude Code / Codex 插件环境

安装方式

方式一:整体安装

npx skills add plannotator/effective-html

方式二:按需安装单个技能

# 列出所有可用技能
npx skills add plannotator/effective-html --list

# 安装特定技能
npx skills add plannotator/effective-html --skill html-wireframe
npx skills add plannotator/effective-html --skill html-prototype

方式三:Claude Code 插件

/plugin marketplace add plannotator/effective-html
/plugin install plannotator-effective-html@effective-html

最简使用示例

安装后,直接向 AI 描述需求:

"帮我创建一个登录页面的线框图"
"生成一个微服务架构图"
"做一个可交互的购物车原型"

AI 会调用对应技能生成单个 HTML 文件。

四、使用方法与实战

场景一:低保真线框图

线框图故意保持"未完成"风格,让评审者聚焦结构和流程:

用户请求:
"为一个博客平台设计线框图,包含:首页、文章列表、文章详情、作者页"

AI 输出:
单个 HTML 文件,展示四个页面的布局结构,用灰框和占位符表示内容区域

设计要点:

  • 不使用真实图片和详细样式
  • 标注内容层级和导航流程
  • 支持响应式(移动端/桌面端切换)

场景二:可交互原型

原型实现一个完整用户流程及其状态:

用户请求:
"创建一个购物车原型,支持:添加商品、修改数量、删除、结算"

AI 输出:
可交互 HTML 文件,包含:
- 商品列表(点击添加到购物车)
- 购物车侧边栏(实时更新数量和总价)
- 结算按钮(触发表单验证)
- 键盘导航支持(Tab + Enter)

技术实现:

  • 状态管理:使用 JavaScript 对象存储购物车数据
  • 响应式更新:DOM 操作同步界面
  • 可访问性:ARIA 标签 + 键盘事件监听

场景三:架构图

生成系统架构的可视化表示:

用户请求:
"为我的微服务系统画一个架构图,包含:API Gateway、User Service、Order Service、Payment Service、数据库"

AI 输出:
HTML 文件,展示:
- 五个组件节点(带图标)
- 服务间调用关系(箭头)
- 数据库连接(虚线)
- 悬停显示服务详情

进阶用法:design-artifact 技能

当需要统一创意方向时,先调用 design-artifact:

步骤 1:
"为一个金融科技产品设计视觉风格指南,目标用户是 25-40 岁职场人群"

步骤 2:
"基于上面的风格,创建仪表盘原型"

design-artifact 提供可复用的创意流程,但不强加固定视觉风格。

五、常见问题与解决方案

Q1:生成的 HTML 文件过大怎么办?

原因:内联了所有样式和脚本,无外部依赖。

解决方案:

  • 对于原型,可以在生产环境中拆分为 CSS/JS 文件
  • 使用工具如 PurgeCSS 移除未使用的样式
  • 压缩后再部署

Q2:如何让 AI 理解我的设计偏好?

方法:

  • 提供参考链接或截图(“类似 Airbnb 的风格”)
  • 使用 design-artifact 技能建立创意方向
  • 在项目根目录放置 style-guide.html 作为参考

Q3:生成的线框图太简陋?

设计意图:线框图故意保持低保真,让评审者聚焦结构而非视觉细节。

如需更高保真度:

  • 明确说明"高保真线框图"
  • 或直接使用 html-prototype 技能

Q4:原型在移动端显示异常?

检查项:

  • 确认技能生成的代码包含 viewport meta 标签
  • 使用浏览器开发者工具测试响应式断点
  • 检查 CSS 是否使用了固定宽度

六、总结

Effective HTML 展示了 AI 时代的前端开发新范式:用自然语言描述需求,AI 生成可直接运行的单文件 HTML 工件。它的价值在于:

  1. 快速验证想法:几分钟内从想法到可视化原型
  2. 降低沟通成本:用可交互原型替代静态文档
  3. 技能可复用:六种技能覆盖常见场景,安装即可使用
  4. 无外部依赖:单个 HTML 文件,随处可打开

项目官网:https://www.effectivehtml.com/

GitHub 仓库:https://github.com/plannotator/effective-html