Hacker News· bluepeter·· 6 天前AI 评分36
Lintapple:为 AI 生成界面提供 UI 检查
Lintapple: UI checks for AI-generated interfaces
AI 导读
Lintapple 是一款针对 AI 生成界面的 UI 检查工具,通过 npm 安装后运行 npx lintapple init 生成 ui-policy.json 和 lint:ui 脚本,可检查字体、对比度、控件尺寸和屏幕边界等。
正文 · AI 翻译
AI 应该不可能做出糟糕的 UI。
安装
需要 Node.js 22 或更高版本。在你的应用项目目录中运行:
npm install -D lintapple && npx lintapple init这会创建 ui-policy.json 和一个 lint:ui 脚本。现有设置会保留。
在 ui-policy.json 中设置字体和文字大小以匹配你的应用。在 lint:ui 脚本中设置应用 URL;默认为 http://localhost:3000。
使用
启动你的应用,然后运行:
npm run lint:ui
每条发现都包含规则、元素、测量值和建议的修复方案。
退出码:0 通过,1 有发现,2 检查未完成。
要检查另一个 URL 或保存 JSON 报告:
npx lintapple http://localhost:3000 --json
对于异步加载的页面,添加 --ready '[data-app-ready]',并指定一个页面就绪时可见的选择器。
在 Playwright 中使用
在页面就绪后,将以下内容添加到现有测试中:
import { expectUI } from 'lintapple/playwright'; await expectUI(page, testInfo);
发现会导致测试失败,并附加一份 JSON 报告。该辅助函数会读取你的 ui-policy.json。
参见示例测试。
标记布局元素
字体、对比度、控件尺寸和屏幕边界检查无需额外标记即可工作。 为需要布局信息的检查添加以下属性:
| 属性 | 用于 |
|---|---|
data-ui-stack |
需要检查子元素间距的组。 |
data-ui-actions |
需要检查间隙的按钮组。 |
data-ui-container |
需要检查按钮内边距的表面。 |
data-ui-number |
需要等宽数字的变化数字。 |
data-ui-content |
文本必须保持在边缘内的容器。 |
data-ui-align="start" |
其标记元素必须对齐的组。使用 center 或 end 表示其他对齐方式。 |
data-ui-align-item |
对齐组中要比较的每个元素。 |
data-ui-radius |
具有相等圆角和内边距的外表面。 |
data-ui-radius-inner |
其直接内表面。其圆角半径必须等于外半径减去内边距。 |
你也可以在策略中使用 controlContainers 来选择现有的按钮容器。
参见示例样式。
许可证
MIT。参见LICENSE。
来源:Hacker News · github.com