gholtzap/lintapple
It should be impossible for AI to make a bad UI.
lintapple – 面向开发者的 UI 检查工具
这是什么 – lintapple 是一个基于 Node 的命令行工具,它根据您在 ui-policy.json 文件中定义的视觉设计规则集来检查 Web 应用的用户界面。它旨在捕获 AI 可能生成的 UI 问题,确保“AI 不可能做出糟糕的 UI”。
使用方法
- 将其安装为开发依赖(Node 22+)。
init命令会生成ui-policy.json文件并添加lint:uinpm 脚本。 - 在应用运行期间执行脚本(默认为
http://localhost:3000)。该工具会抓取页面,测量字体、对比度、控件大小、间距、对齐、圆角半径等,并输出发现列表。 - 每个发现都会显示违反的规则、涉及的要素、测量值以及建议的修复。退出代码让 CI 知道运行是通过(
0)、发现问题(1)还是无法完成(2)。 - 您可以输出 JSON 报告(
--json)或将工具指向不同的 URL。 - 对于异步加载的页面,您可以使用 CSS 选择器(
--ready)告诉 lintapple 页面何时准备好。
与 Playwright 集成 – 一个小的辅助函数(expectUI)可以在 Playwright 测试中导入。页面准备好后,调用 await expectUI(page, testInfo)。任何 UI 违规都会导致测试失败,并将 JSON 报告附加到测试输出。
标记辅助 – 大多数检查不需要额外的标记,但您可以添加数据属性来为 linter 提供更多布局上下文:
data-ui-stack、data-ui-actions、data-ui-container– 用于间距检查的组。data-ui-number– 需要等宽数字的数字。data-ui-content– 文本必须保持在其边界内的容器。data-ui-align/data-ui-align-item– 对齐组。data-ui-radius/data-ui-radius-inner– 强制执行一致的圆角半径和内部关系。
您还可以在策略文件中配置 controlContainers 来定位现有的按钮容器。
为什么重要 – UI 一致性很难手动强制执行,尤其是当 UI 代码由 AI 工具生成或修改时。lintapple 让开发人员能够自动验证视觉标准(字号、对比度、按钮大小、对齐等)在代码发布前是否得到遵守,并直接融入现有的测试管道。
许可证 – MIT。
所有详细信息均直接取自仓库的 README。
相关
- 项目
- 项目
- 项目
- 项目