AB
AiBoss
チュートリアル

Sketch2Code

チュートリアル

用 Sketch2Code 把手绘线框图转成 HTML 代码

Sketch2Code 是微软推出的 AI 实验项目,能把白板手绘、纸质草图或线框稿识别成可用的 HTML 页面。本文说明它的工作原理、从画草图到下载 HTML 的完整流程、识别效果的影响因素,以及拿到代码后需要人工补做的工作。

Sketch2Code 是微软推出的一个 AI 实验项目,目标很直接:把一张手绘的界面草图变成可以运行的 HTML 代码。它面向的是这样一类场景——产品经理、设计师或前端开发在白板、纸上画出了页面布局,接下来却要花时间把这些方框和文字重新敲成 HTML。Sketch2Code 试图把这一步自动化:上传草图,由模型识别出其中的设计元素和手写文字,再按最接近的模板生成页面结构。如果你需要把草图转成代码,可以先在 Sketch2Code 了解这个工具的基本情况,再按下面的流程操作。

需要先说明这个工具的定位:它是一个演示性质的 AI 项目,不是一套完整的产品级设计交付系统。它输出的是 HTML 骨架,能省掉从零敲标签的时间,但生成的代码仍然需要人工检查、调整和补全。把它当作「第一稿生成器」而不是「一键交付工具」,预期才不会落空。

准备工作

草图本身

Sketch2Code 的输入是一张图片,所以第一步是准备草图。可以用纸笔手绘,也可以在白板上画,或者使用线框图、Mockup 工具导出的图片。素材中的示例是一张手绘的登录页:两个输入框加一个按钮。这个例子说明了一个重要特征——草图不需要精美,但需要结构清晰。元素之间的相对位置、每个区块的边界、文字标签写在哪里,都会影响识别结果。

准备草图时有几点值得注意:

  • 把每个控件画成明确的形状,输入框画成方框,按钮画成带边框的矩形,不要用一条线或一个点代替。
  • 手写文字尽量工整,因为模型需要识别手写内容并把它转成页面上的文本。
  • 保持页面元素之间的间距,避免方框互相重叠或粘连,否则模型难以判断元素边界。
  • 一张图对应一个页面,不要把多个页面的草图拼在同一张图片里。

访问方式

Sketch2Code 以网页形式提供服务,打开对应站点即可使用,不需要安装客户端,也不需要配置开发环境。素材中提到该服务可以免费使用。不过这类实验项目的站点状态、可用性和功能范围都可能随时间变化,使用前应以官网当前信息为准;如果页面打不开或返回错误,通常说明服务端状态有问题,而不是你的操作有误。

图片获取方式

除了上传已有的图片文件,也可以直接用摄像头拍摄草图再提交处理。这意味着白板讨论结束后,拍一张照片就能进入转换流程,不必先把图导到电脑上再处理。

操作步骤

第一步:画出页面草图

先确定要转换的页面,把它画出来。以登录页为例,画面上通常包含:一个标题文字、两个带标签的输入框(用户名、密码)、一个提交按钮。每个元素都用清晰的轮廓表示,文字写在元素内部或紧邻位置。

这一步的产出就是一张图片。如果画在白板上,用手机拍下来即可;如果画在纸上,可以拍照或扫描。图片不需要高分辨率,但文字必须能看清。

第二步:打开 Sketch2Code 站点

在浏览器中打开 Sketch2Code 的服务页面。页面加载后可以看到上传入口。如果遇到服务不可用一类的错误页面,先确认地址是否正确,再稍后重试。

第三步:上传草图

点击页面上的 Upload Design 按钮,选择准备好的草图图片并提交。素材中提到,转换过程通常不到一分钟即可完成。上传后不需要额外配置参数,也不需要选择模板或指定输出格式,模型会自动完成识别与生成。

第四步:查看生成结果

处理完成后,页面会展示识别出的 HTML 结果。此时可以看到模型对草图的解读:哪些区域被识别为输入框,哪些被识别为按钮,手写文字被转成了什么内容,整体结构如何嵌套。

这一步值得仔细看,因为识别结果直接反映模型对草图的理解是否正确。如果某个元素被识别成了错误的类型,或者文字识别有偏差,说明草图在该区域不够清晰,或者元素画得不够规范。

第五步:下载 HTML 代码

确认结果后,点击 Download your HTML Code 把生成的 HTML 下载到本地。下载得到的是纯 HTML 代码,可以直接在浏览器中打开预览,也可以粘贴到自己的项目里作为起点。

第六步:检查并修改代码

下载之后必须做的一件事是检查代码。素材明确提到,拿到 HTML 后要检查并做必要的修改。需要关注的点包括:

  • 文字内容是否与草图一致,手写识别可能有偏差。
  • 元素类型是否正确,例如本该是密码框的地方是否被识别成了普通文本框。
  • 结构层级是否合理,容器与子元素的嵌套关系是否符合预期。
  • 样式是否需要补充,生成的代码侧重结构,视觉细节通常要自己加。

一个完整示例

下面走一遍从草图到可用代码的完整流程,以登录页为例。

1. 画草图。在一张白纸上画出登录页:顶部写「Sign In」,下面画两个矩形作为输入框,左侧分别标注「Username」和「Password」,最下方画一个矩形作为按钮,内部写「Login」。

2. 拍照。用手机拍下这张纸,确保光线均匀、文字清晰、画面没有明显倾斜。

3. 上传。打开 Sketch2Code 页面,点击 Upload Design,选择刚才的照片提交。

4. 等待处理。通常不到一分钟,页面会显示识别结果。此时可以看到模型把两个矩形识别为输入控件,把底部矩形识别为按钮,并把三处手写文字转成了文本。

5. 下载。点击 Download your HTML Code,得到 HTML 文件。

6. 本地预览。把下载的文件放到本地目录,用浏览器打开,检查页面结构是否与草图对应。可以用下面的命令在本地起一个静态服务预览:

python3 -m http.server 8000

然后在浏览器访问本地 8000 端口查看页面。如果结构基本正确,就可以把这段 HTML 复制进项目,再补充 CSS 样式、表单校验逻辑和提交处理。

7. 人工补全。生成的 HTML 是结构骨架。实际登录页还需要给输入框加上正确的 type 属性、给表单加上提交地址、给按钮绑定事件,并按设计稿补充样式。这些工作 Sketch2Code 不会替你做。

它是怎么工作的

理解原理有助于判断什么样的草图更容易得到好结果。Sketch2Code 的处理流程大致分为三层:

  • 设计模式识别。模型先在上传的图片中找出界面元素,判断哪些区域是输入框、按钮、文本块、图片占位等。这一步依赖元素的形状与布局特征。
  • 手写文字识别。对草图中的手写内容做文字识别,把笔迹转成可用的文本字符串。
  • 结构理解与代码生成。模型结合元素位置和文字内容,推断页面的结构关系,再从最匹配的模板出发生成 HTML。

这个流程解释了两件事。第一,草图的形状规范性直接影响元素识别:画得越像标准控件,识别越准。第二,草图的文字可读性直接影响内容还原:手写越工整,转出的文本越接近原意。第三,由于生成环节基于「最佳匹配」的模板,输出结构会偏向常见布局,非常规的排版可能需要更多人工调整。

从更大的视角看,这类技术的意义在于打通设计与实现之间的第一段距离:UI/UX 团队在白板上画出的东西,可以被系统理解并转成 HTML 线框,从而让讨论结果更快变成可点击的原型。

注意事项

输出是起点,不是成品

最重要的一条:Sketch2Code 生成的是 HTML 结构,不是完整可上线的页面。样式、交互、表单逻辑、无障碍属性都需要人工补充。把生成结果当作「省掉敲标签时间的第一稿」,而不是「直接交付的成品」。

识别准确率取决于草图质量

元素画得不规范、文字潦草、方框重叠、图片模糊或倾斜,都会降低识别质量。如果结果不理想,优先改进草图重画重拍,而不是在错误的结构上反复修补。

服务可用性可能波动

这是一个实验性项目,站点可能出现无法访问或返回错误的情况。遇到这类问题时,先确认网络与地址无误,再考虑服务端状态。功能范围、可用性与是否免费都应以官网当前信息为准。

不要上传敏感内容

草图会被上传到外部服务处理。如果草图中包含真实的用户数据、内部系统截图或敏感业务信息,上传前应先脱敏,或改用不含敏感内容的示意图。

复杂页面需要拆分

元素越多、布局越复杂,识别出错的可能性越大。对于信息量大的页面,可以考虑按区块拆分,分别转换后再人工合并,比一次性提交整页更容易得到可控的结果。