AI Slop 反模式
常见的 AI 生成 UI 反模式以及如何自动检测它们。
AI Slop 反模式
7 大禁忌模式
以下模式在任何由 AI 编码代理生成的 UI 中均被严格禁止:
1. Inter + Roboto 字体主导
描述:将 Inter 或 Roboto 作为所有文本的主字体。这些字体被过度使用,缺乏品牌辨识度。
检测:在生成的 CSS 中搜索 font-family: Inter 或 font-family: Roboto。
修复:使用 Geist、Plus Jakarta Sans 或其他有辨识度的字体作为主字体。
2. 紫到蓝渐变
描述:from-purple-500 to-blue-500 的渐变 screaming "AI-generated"。
检测:正则表达式匹配 from-purple + to-blue 或类似的渐变模式。
修复:使用 --color-primary 或设计系统中的纯色。
3. 嵌套圆角卡片
描述:在 rounded-xl 卡片内再放 rounded-xl 卡片,形成俄罗斯套娃效果。
检测:检查具有 border-radius 类的多个嵌套元素。
修复:只使用一层圆角。内部元素应平坦或最小程度圆角。
4. 纯黑 / 纯灰文本
描述:没有色相的文本颜色(例如 #000000、#808080)。
检测:检查精确的黑色/灰色十六进制值或 oklch(0 0 0)。
修复:使用带有微妙色相的中性色(例如 oklch(0.52 0.012 262) 用于弱化文本)。
5. 弹跳 / 弹性动画
描述:带有 bounce 或 elastic 缓动的动画,感觉不专业。
检测:搜索 bounce、elastic 或弹簧动画配置。
修复:使用 ease-out 或 cubic-bezier(0.4, 0, 0.2, 1)。
6. 霓虹发光标题文字
描述:在深色背景上带有 text-shadow 发光效果的文字。
检测:在深色主题上搜索带有发光/模糊值的 text-shadow。
修复:移除发光效果。使用具有合适对比度的纯色。
7. 每个标题上方都有图标方块
描述:在每个章节标题上方放置圆角方形图标容器(rounded-lg bg-primary/10)。
检测:检查直接位于标题元素之前的图标容器。
修复:将图标与标题内联,或完全省略图标。
技术质量问题
除了 7 大禁忌模式外,还需检查:
- 对比度:文本与其背景之间至少要有 4.5:1 的对比度
- 触摸目标:所有交互元素必须至少为 44x44px
- 图片优化:图片应使用
next/image并设置合适的尺寸 - 水平滚动:任何断点下都不应有水平滚动
自动检测
Impeccable CLI
# 检测源代码中的 AI Slop
npx impeccable detect src/ --fast
# 输出 JSON 用于 CI 集成
npx impeccable detect src/ --fast --jsonCLI 使用确定性规则(正则表达式 + AST 分析)来捕获 7 大禁忌模式,无需 API 密钥。
CI 集成
# .github/workflows/design-check.yml
- name: Detect AI Slop
run: npx impeccable detect src/ --fast --json注意:在 MVP 阶段,不要在出现警告时使 CI 失败。仅在有确认的 AI Slop 错误时失败。
手动审查清单
在代码审查期间,检查:
- 主字体不是 Inter/Roboto
- 没有紫到蓝的渐变
- 没有嵌套圆角卡片
- 文本颜色具有微妙的色相
- 没有弹跳/弹性动画
- 文本上没有霓虹发光
- 不是每个标题上方都有图标方块
- 触摸目标 >= 44px
- 375px 下没有水平滚动