Impeccable:给 AI 时代的 Web 设计装上「质检仪」

项目地址:https://github.com/pbakaus/impeccable / 官网:impeccable.style / 作者:Paul Bakaus / 许可:Apache 2.0

一、前言:AI 代码时代的「审美疲劳」

如果你在过去一年里频繁浏览新上线的 SaaS 产品官网,可能会有这样一种既视感:

侧边带一条彩色边框的卡片、标题下面总有一个圆角的小标签(eyebrow)、正文清一色 Inter 字体、深色背景上泛着蓝紫色光晕、一堆圆角方块图标整齐地码在页面中央……

这不是巧合。这是AI 模板化设计的”痕迹”。

当 Claude、Cursor、GitHub Copilot 等工具帮开发者以分钟为单位生成界面时,它们学到的审美其实非常集中——来自互联网上最常见的那几个设计系统、UI 套件和 Tailwind 模板。结果就是:不同产品看起来像是同一家工厂出来的。

Impeccable 正是为了解决这个痛点而生。

二、Impeccable 是什么?

Impeccable 是一套面向 AI 编码助手的设计质量工具链,包含三个核心组成部分:

模块 说明
CLI 检测工具 扫描代码或在线网页,检测 27 种 UI 反模式
AI Skill Pack 23 条设计指令 + 7 份领域参考文档,供 Claude/Cursor/Gemini 等调用
浏览器扩展 在浏览器里一键扫描当前页面

它不以「好不好看」这种主观标准来评判,而是基于一套明确的、可自动化的设计规则来指出问题——从「AI 生成痕迹」到「无障碍访问缺陷」再到「排版质量」。

三、CLI 工具:27 条确定性检测规则

Impeccable 的 CLI 是最直观的部分。安装后一条命令就能扫描你的项目:

# 扫描本地文件
npx impeccable detect src/

# 扫描线上页面(需要 Puppeteer)
npx impeccable detect https://example.com

# 纯正则模式(更快,跳过 jsdom)
npx impeccable detect --fast src/

# JSON 输出(方便接入 CI/CD)
npx impeccable detect --json src/

检测到问题时退出码为 2,没有问题时为 0,非常适合集成到 GitHub Actions 等流水线里做门禁。

27 条规则全景

这些规则被作者分成了两大类:AI Slop(AI 味)和 Quality(质量缺陷)。

3.1 AI Slop — 那些”一看就是 AI 做的”痕迹

这些规则专门识别当前 AI 生成界面中最常见的套路化设计:

规则 ID 名称 检测内容
side-tab 侧边彩色边框(标签页式) 元素左侧或右侧有一条 >=2px 的非中性色边框
border-accent-on-rounded 圆角元素上的单边边框 同时有 border-radius 和单边彩色边框
overused-font 过度使用的字体 检测到 Inter、Roboto、Geist、Plus Jakarta Sans 等”AI 默认字体”
single-font 单一字体家族 整个页面只用一种字体
flat-type-hierarchy 扁平的字体层级 标题和正文字号比例太小(<1.5:1),缺乏层次
gradient-text 渐变文字 使用 background-clip: text 实现的渐变标题
ai-color-palette AI 特征配色 紫/蓝紫渐变、青色文字、深色背景上的霓虹发光色
nested-cards 嵌套卡片 一个 card 里面又套了一个 card
monotonous-spacing 单调的间距 所有间距都使用同一个数值(如全是 16px)
everything-centered 全部居中 页面所有内容都是居中对齐,缺乏变化
bounce-easing 弹性缓动 使用了 cubic-bezier 中的 bounce/elastic 曲线,或 Tailwind 的 animate-bounce
dark-glow 深色背景上的发光效果 深色背景配合彩色发光阴影/文字
icon-tile-stack 圆角图标砖块堆叠 一排圆角方块图标 + 标题 + 描述的重复模块
italic-serif-display 斜体衬线标题 使用斜体衬线字体作为展示标题(当前 AI 模板的热门选择)
hero-eyebrow-chip 标题上方的 eyebrow/pill 标签 超大标题上方有一个 tiny uppercase letter-spaced 的小标签
repeated-section-kickers 重复的 section kicker 每个区块标题上方都有同样的 eyebrow 标签

有一个很贴心的细节:作者在检测 overused-font 时,对特定品牌域名做了白名单。比如 Geist 在 Vercel 域名下不会触发,Mona Sans 在 GitHub 域名下也不会触发。这说明规则不是一刀切,而是有上下文判断的。

3.2 Quality — 通用的设计与无障碍问题

规则 ID 名称 检测内容
pure-black-white 纯黑背景 使用 #000000 纯黑作为背景色
gray-on-color 彩色背景上的灰色文字 灰色文字放在非灰/非白背景上
low-contrast 对比度不足 文字与背景对比度低于 WCAG AA 标准(4.5:1)
layout-transition 布局属性动画 对 width/height/padding/margin 做 CSS transition(导致 layout thrash)
line-length 行宽过长 单行超过约 80 个字符
cramped-padding 内边距过紧 文字离容器边缘太近
body-text-viewport-edge 正文贴到视口边缘 正文内容没有左右留白,直接顶到屏幕边缘
tight-leading 行高过紧 行高小于 1.3 倍
skipped-heading 跳级标题 h1 直接跳到 h3,缺少 h2
justified-text 两端对齐但没有断字 text-align: justify 但没有 hyphens: auto
tiny-text 过小的正文 正文文字小于某个阈值
all-caps-body 正文全大写 对长段正文使用 text-transform: uppercase
wide-tracking 过宽的字间距 正文使用过大的 letter-spacing

技术实现亮点

Impeccable 的检测引擎有一个很聪明的设计:它是同一份代码,同时跑在 Node.js 和浏览器里。

  • Node.js 路径:用 jsdom 解析 HTML,用正则扫描 CSS/JSX/TSX/Vue/Svelte 文件
  • 浏览器路径:直接用 DOM API 做更精确的计算(比如对比度计算、元素尺寸测量)

这意味着你可以把它集成到 CI 里做自动化检查,也可以让设计师在浏览器里一键扫描当前页面,两者用的是同一套规则。

四、AI Skill Pack:让 AI 助手学会设计

如果说 CLI 是「检测问题」,那 Skill Pack 就是「预防问题」。

Impeccable 提供了 23 条 AI 命令 和 7 份领域参考文档,支持 Claude、Cursor、Gemini、Codex 等多种 AI 编码助手。

7 份领域参考文档

文档 覆盖内容
Typography 字体系统、字体配对、模数比例、OpenType 特性
Color & Contrast OKLCH、着色中性色、深色模式、无障碍
Spatial Design 间距系统、网格、视觉层级
Motion Design 缓动曲线、错开动画、减弱动画(reduced motion)
Interaction Design 表单、焦点状态、加载模式
Responsive Design 移动优先、流式设计、容器查询
UX Writing 按钮文案、错误信息、空状态

这些参考文档不是泛泛而谈的设计理论,而是每次 AI 执行命令时都会加载的上下文,确保 AI 在生成代码时有一个统一的设计知识库可以参考。

23 条命令速览

安装后在 AI 助手里输入 /impeccable <command> 即可调用:

命令 作用
/craft 完整的「先规划后构建」流程,支持视觉迭代
/teach 一次性设置:收集设计上下文,生成项目根目录的 PRODUCT.md 和 DESIGN.md
/document 从现有代码生成 DESIGN.md
/extract 提取可复用组件和 token 到设计系统
/shape 写代码前先规划 UX/UI
/critique UX 设计评审:层级、清晰度、情感共鸣
/audit 技术质量检查(无障碍、性能、响应式)
/polish 最终打磨:对齐设计系统、修复间距和排版
/animate 添加或优化交互动画
/bolder 让设计更大胆、更有冲击力
/quieter 让设计更克制、更内敛
/distill 精简设计,去除多余元素
/color 生成或优化配色方案
/type 优化排版系统
/space 优化间距系统
/responsive 检查和优化响应式表现
/a11y 无障碍审计与修复
/performance 性能优化
/tokens 生成或同步设计 token
/components 组件设计与评审
/icons 图标系统设计与优化
/copy UX 文案优化

安装方式很简单:

npx impeccable skills install

它会通过 npx skills add pbakaus/impeccable 把 skill 安装到你的项目中(支持 .claude、.cursor、.gemini、.agents 等多种 AI 助手目录)。

五、为什么 Impeccable 值得关注?

5.1 它填补了 AI 编码的一个关键空白

现在的 AI 编码助手写得一手好代码,但对设计质量的把控几乎为零。它们不会告诉你”这个紫色渐变太 AI 了”,也不会提醒你”行宽超过 80 字符可读性会下降”。Impeccable 给 AI 助手装上了一个设计质检层。

5.2 规则是透明的、可迭代的

27 条规则不是黑盒。每一条都有明确的 ID、分类、严重级别和描述。作者甚至为每条规则关联了 skill 文档中的对应指导原则。这意味着:

  • 检测出问题后,AI 可以直接引用对应的指导原则来修复
  • 社区可以提案新增规则
  • 团队可以根据自身品牌调性调整规则敏感度

5.3 它是多平台、多形态的

CLI 用于工程化检查,Skill Pack 用于 AI 助手增强,浏览器扩展用于设计师日常审查——三种形态覆盖了整个设计和开发工作流。

5.4 作者背景

Paul Bakaus 是前端领域的老兵,曾在 Google 负责开发者关系工作,参与过 AMP 等项目。他对「开发者工具」和「质量自动化」的理解非常深,这也解释了为什么 Impeccable 在工程化集成方面做得这么扎实。

六、适用场景

场景 用法
个人项目 npx impeccable detect 一键检查,让个人网站摆脱”AI 味”
团队协作 把 impeccable detect 加入 CI/CD,PR 阶段自动拦截设计质量问题
设计系统维护 用 /impeccable extract 和 /impeccable tokens 管理和同步设计 token
AI 辅助开发 安装 skill 后,让 Claude/Cursor 每次生成 UI 时都遵循 Impeccable 的设计标准
设计评审 用 /impeccable critique 让 AI 做第一轮设计评审,再交给人类设计师

七、写在最后

Impeccable 的命名很有意思——impeccable 意为「无可挑剔的、无瑕的」。在这个 AI 生成内容爆炸的时代,真正无可挑剔的东西反而越来越稀缺。

这套工具的价值不仅在于「检测问题」,更在于它试图建立一种AI 时代的设计共识——当所有 AI 都在生成相似的东西时,我们需要有工具来识别这种趋同,并有方法论来打破它。

如果你正在用 Claude、Cursor 或其他 AI 工具做前端开发,花五分钟装上 Impeccable 试试。它可能不会让你的设计立刻变得惊艳,但至少,它能让你的网站不再看起来像是同一个 AI 工厂的流水线产品。


本文基于 impeccable@2.1.9 版本撰写。项目正在积极迭代中,建议关注 GitHub 仓库获取最新动态。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注