← 返回公开文章

Impeccable 设计网站研究:把前端审美变成可执行工作流

/research/impeccable-design-vocabulary-agent-frontend.md

Impeccable 这个网站最值得借鉴的地方,不是它用了什么字体、什么颜色,也不是要把自己的项目做成“暗色漆面 + 金箔 + 铜绿”的视觉风格。它真正有价值的是把一个很难说清的前端问题拆开了:AI 生成的页面为什么总有一股模板味,为什么开发者明明能让它写出 CSS,却很难让它稳定写出有品味、有层级、有产品感的界面。

它给出的答案很直接:问题不只是模型能力,而是协作语言。人对 AI 说“高级一点”“更有设计感”“别像 AI 做的”,这些话太模糊;AI 最终只能回到训练数据里最常见的 SaaS 平均脸。Impeccable 做的事情,是把“审美”变成 Agent 能执行的设计词汇、上下文文件、命令动词、反模式检查和浏览器内迭代流程。

对老大的 vibe coding 来说,这比单纯安装一个插件更有启发:以后前端工作应该从“让 Codex 写页面”升级为“给 Codex 一个可执行的设计导演协议”。

这个网站真正做对了什么

Impeccable 首页上那句话很准:“The missing design vocabulary for agents.” 它不是把自己包装成又一个 UI 生成器,而是把痛点放在“vocabulary”上:AI frontends all share one look,是因为它没有足够明确的词去区分 hierarchy、contrast、restraint、layout、typography、motion、anti-pattern。

官方 README 也把产品说得很工程化:它提供 1 个 skill、23 个命令、live browser iteration,以及 44 条确定性 detector rules。这里的关键不是数字,而是它把前端审美拆成三种东西:

这三件事组合起来,才是它比普通 prompt collection 更强的地方。普通 prompt collection 往往只告诉你怎么说;Impeccable 则试图让项目本身保存设计语境,让 Agent 每次都能回到同一套标准。

可直接借鉴的 12 件事

1. 每个项目先分清 Brand Surface 和 Product Surface

Impeccable 的 init 会判断这个界面属于 brand 还是 product。这个分类非常适合老大的项目。

Brand surface 是官网、landing page、作品集、活动页,视觉印象本身就是产品的一部分,可以有强 hero、强字体、强色彩、强图像。Product surface 是后台、工具、dashboard、个人工作台,设计首先服务任务,重点是密度、状态、可读性、错误处理、键盘/鼠标效率和长期使用舒适度。

老大的大多数项目,比如 BuJo Web、AIIterate、Superbot、各种内部工作台,默认应该是 product surface。它们不需要被做成漂亮的 SaaS 首页;它们需要的是低脑力、中文友好、信息层级清楚、状态稳定、能长期用。这个分类如果不提前写清楚,Agent 很容易把工具界面做成 landing page。

2. 用 anti-reference 管住模型的审美惯性

Impeccable 的 PRODUCT.md 明确写了 anti-references:不要 generic AI tool marketing,不要 dark mode + purple gradients,不要 neon accents、glassmorphism、glowing particles、cyan-on-black,不要 hero metrics、identical-card feature grids、boost productivity copy,不要过度装饰。

这件事值得直接照搬。以后每个前端任务都应该先写“不像什么”,而不是只写“像什么”。比如:

Anti-references:
- 不要紫蓝渐变、玻璃拟态、霓虹发光
- 不要 card soup
- 不要每个 section 都有 uppercase eyebrow
- 不要假 metrics / fake dashboard
- 不要一切都居中
- 不要营销废话

AI 对正向审美容易平均化,对负向边界反而更容易执行。先声明 anti-reference,可以明显降低 AI slop。

3. 把“高级一点”翻译成设计动词

Impeccable 最有用的部分,是把设计反馈拆成命令动词:

这会改变给 Codex 的指令质量。不要说:

把这个页面做高级一点。

要说:

对这个 dashboard 做 quieter + typeset + layout pass。
保持 product density,不改业务逻辑。
去掉 nested cards 和无意义 glow。
拉开标题/正文/标签层级,收紧相关信息组间距。
用真实中文长标题和空状态验证。

这类指令更像设计导演,不像审美祈祷。

4. 把设计上下文写进项目,而不是只写在聊天里

Impeccable 的 PRODUCT.md 和 DESIGN.md 很值得借鉴。对老大的 vibe coding 项目,不一定要一开始写完整设计系统,但至少应该有轻量版本:

# DESIGN.md

## Lane
Product surface / Brand surface / Hybrid

## Audience
谁使用,在什么压力下使用,用什么设备。

## Job
这个界面帮助用户完成什么。

## Voice
compact / calm / clinical / editorial / playful / premium / Chinese-friendly / low-cognitive-load

## Anti-references
明确不要什么。

## Tokens
surface / raised / text / muted / rule / accent / danger / success / radius / spacing / fonts

## Primitives
AppShell / TopBar / Sidebar / MainPane / RightRail / Button / Panel / ListRow / StatusTag / EmptyState

这样 Codex 每次进项目都能读到同一套设计语境,而不是每轮重新猜风格。

5. 不要让一次性 CSS 长成视觉债

Impeccable 的 DESIGN.md 里有一个很实用的规则:reach for a kit primitive before inventing a new class。按钮就用 .ks-button 加 variant,分组就用 .ks-bento + .ks-bento-tile,section 就用 .ks-section、.ks-section-head、.ks-section-sub。不要每个页面都发明 .hero-cta-primary、.footer-cta、.section-action-button。

这对 Codex 尤其重要。Agent 很容易为了局部效果写一堆一次性 class,短期看起来解决问题,长期让项目没有统一视觉语言。老大的项目以后应该有一个规则:同一类 pattern 出现三次,就必须考虑抽成 token 或 component primitive。

6. 从“漂亮页面”转向“可维护的视觉系统”

Impeccable 自己的网站风格叫 Neo Kinpaku:暗色漆面、金箔、铜绿、技术几何、小圆角、细线条、几乎不用装饰性阴影。这个风格不适合直接照搬到老大的产品里,但它的系统化方式值得学。

它不是随便挑一个 yellow,而是把颜色命名为 kinpaku gold、verdigris patina、lacquer black、raised lacquer、text muted、gold hairline 等。这种命名让颜色有语义。以后老大的产品也应该用这样的 token 思路,而不是 --blue-500、--gray-700 随手拼。

适合老大的方向可能更像 compact workbench:暗色但不纯黑,PragmataPro 处理英文/数字,LXGW 或霞鹜处理中文,少量语义色表达状态,边框和 spacing 表达层级,少用大卡片和大阴影。

7. 用 Slop catalog 建立前端坏味道清单

Impeccable 的 /slop 页面列出 46 个 AI-generated UI / quality anti-pattern。这个页面非常值得长期参考,因为它把“AI 味”拆得很细。

可直接纳入老大前端 review 的坏味道包括:

这不是说这些东西永远不能用,而是每次用都必须有理由。没有理由,就是默认删除。

8. 设计审查要有“技术验收”

Impeccable 把 critique、audit、harden 分开,这个思路很重要。审美不是只看截图;前端设计要进入生产,就必须被真实内容和边界状态打过。

以后老大的前端验收至少应该看:

这也是为什么以后不能只用 npm run build 作为 UI 完成证明。build 只能说明代码能编译,不能说明界面成立。

9. 文案也是设计系统的一部分

Impeccable 很强调 voice:direct、specific、rooted in craft、zero hedging。它反对 “might / could / consider / perhaps” 这种犹豫腔,也反对 generic SaaS copy。

这对中文产品也一样。老大的个人工具里,按钮、空状态、错误提示、说明文字应该短、准、有动作。不要写“提升效率”“智能管理”“一站式体验”这种废话。按钮应该说动作,空状态应该说下一步,错误提示应该说原因和补救方式。

前端审美不仅是颜色和布局,文案也决定产品质感。

10. Brand 可以大胆,Product 要克制

Impeccable 自己是 brand surface,所以它可以有强烈的金箔视觉、强 wordmark、强命名、强 personality。但老大的多数项目是 product surface,借鉴它时必须做一次转换。

可以借鉴的不是“金箔风”,而是:

如果直接照搬 Impeccable 的品牌感,内部工具会变得太戏剧化;如果照搬它的工作流,内部工具会更稳。

11. Live Mode 的本质是把“指哪改哪”产品化

Impeccable 的 Live Mode 很有启发:它不是让用户继续写抽象 prompt,而是让用户在浏览器里点元素、画区域、写指令、生成三个 variant,然后接受一个并写回源码。

这可以启发老大的前端工作流:以后不一定要完全安装 Impeccable,但可以建立类似的评审习惯。截图或浏览器 DOM 指向具体区域,把“这个地方怪”翻译成“这个 header 需要 quieter + layout”,再让 Codex 定向修改,而不是整页重写。

尤其是 BuJo Web / AIIterate 这种长期产品,最怕“全局重做一下”。更好的方式是:指向一个区域,定义一个设计 pass,跑一次浏览器验收。

12. 它提醒我们:审美可以被工程化,但不能被完全自动化

Impeccable 的 detector 能抓很多 AI slop,但不能替代判断。比如 serif hero、cream background、large radius、gradient、card grid,这些东西在某些语境里可以成立,问题是“无理由地使用”。

所以老大以后可以把 Impeccable 当成一套审查语言,而不是把它当成审美外包。真正的目标是形成自己的 frontend-design-taste:知道什么适合自己的产品、什么只是流行模板、什么该抽成组件、什么该删掉。

一张可迁移的工作流图

下面这张图把可借鉴部分压缩成老大以后 vibe coding 前端时可以使用的控制回路:

图中展示从设计上下文、命名设计 pass、反 AI-slop 检查、浏览器验收到项目设计系统沉淀的闭环。借鉴 Impeccable:前端审美的工程化闭环ContextLane / 用户 / 任务Voice / Anti-refNamed Passtypeset / layoutquieter / hardenAnti-Slop去模板味删无理由装饰Browser Verify截图 / console中文长文本 / 状态Design System沉淀 tokens / components / DESIGN.md,避免一次性 CSS

怎么落到老大的实际工作流

以后做前端时,可以把 Impeccable 的方法转成固定步骤。

第一步,开工前写 5 行设计 brief:

Lane: product surface
Audience: 老大自己,低脑力快速操作,长期使用
Job: 快速筛选、编辑、确认、回看
Voice: compact, calm, clinical, Chinese-friendly
Anti-references: no purple gradients, no glassmorphism, no card soup, no fake metrics

第二步,让 Codex 做结构,不先做装饰:

先定义 AppShell / TopBar / Sidebar / MainPane / RightRail / Panel / ListRow / StatusTag。
不要先调颜色,不要写一次性 class。

第三步,用命名 pass 迭代:

Apply layout + typeset pass to the article view.
Apply quieter pass to the sidebar and action bar.
Apply harden pass with long Chinese titles, empty state, error state, mobile width.

第四步,用 anti-slop review 收口:

检查是否有 nested cards、重复 eyebrow、无意义 glow、flat hierarchy、monotonous spacing、generic SaaS copy。
有就删或解释理由。

第五步,浏览器验收,不只看 build:

desktop screenshot
mobile/narrow screenshot
console errors = 0
真实中文长文本不溢出
空/错/loading 状态可读
focus/hover/disabled 清楚

第六步,把稳定 pattern 写回 DESIGN.md 或组件库。不要让同一个问题下一轮重新解释。

不建议照搬的地方

不要直接把老大的工具都做成 Impeccable 的 Neo Kinpaku 风。这个风格适合它自己的品牌:它需要表达“设计总监”“精密”“昂贵”“有判断力”。但老大的内部工具需要的是更低调、更高密度、更中文友好、更像工作台的界面。

也不要把 detector 当成审美裁判。规则只能指出高风险模式,不能替你判断具体语境。一个 card grid 可能是偷懒,也可能是内容本来就需要;一个 serif headline 可能是 AI 味,也可能是品牌选择。关键是:每个选择都要有任务、语义或品牌理由。

更不要把“安装 Impeccable”当成解决方案本身。它可以作为辅助,但真正的长期收益来自自己的项目拥有设计上下文、组件原语、验收规则和反模式清单。

可以立刻采用的 Prompt 模板

新页面:

Design and implement [screen]. Lane: product surface.
Audience: [who uses it, under what pressure]. Job: [task].
Voice: compact, calm, Chinese-friendly, low-cognitive-load.
Anti-references: no purple gradients, no glassmorphism, no nested card soup, no repeated uppercase eyebrow labels, no fake SaaS metrics.
Use tokens and reusable primitives. Include empty/loading/error/long-content states.
Verify desktop + mobile in browser with real Chinese text.

改现有页面:

Apply a [typeset/layout/quieter/bolder/distill/harden] pass to [target].
Preserve behavior and data. Do not invent new product features.
Reduce these slop tells: [specific smells].
If a pattern recurs 3+ times, extract a token/component instead of adding one-off CSS.
Return changed files and browser verification evidence.

设计 review:

Review this screen as a design director.
Score hierarchy, typography, layout rhythm, color/contrast, product clarity, anti-slop, accessibility, responsive robustness from 0-4.
List P0/P1/P2 issues with exact selectors/components and fixes.
Do not redesign unless asked.

结论

Impeccable 给老大最大的启发,是前端审美可以被工程化到 Agent workflow 里:先有产品语境,再有设计动词,再有反模式清单,再有浏览器验收,最后沉淀成项目设计系统。

以后 vibe coding 前端时,目标不应该是“让页面漂亮一点”,而应该是让页面进入一个可持续的设计控制回路:每次改动都知道它服务什么任务、避免什么模板味、属于哪个组件原语、用什么真实场景验收。这样才会真正提升前端品味,而不是每次靠模型随机发挥。

依据