你有没有发现这件事

打开任何一个「AI 生成的落地页」,你几乎能在 3 秒内认出它:

  • Inter 字体,一定是 Inter

  • 紫色渐变背景,或者蓝紫色渐变

  • 六张等高的卡片,整齐排一行

  • 每个 hover 都有弹跳动效

  • Hero 区居中,大标题 + 一行副标题 + 两个 CTA 按钮

这就是所谓的「AI Slop」——AI 训练数据里出现频率最高的视觉惯用语,被所有大模型一遍遍复制。

我最近试了一个开源项目,专门来解决这个问题:Hallmark


Hallmark 主图


Hallmark 是什么

简单说:一个给 Claude Code、Cursor、Codex 用的 design skill,专门拒绝生成看起来像 AI 做的界面。

项目由 Together AI 的 Hassan El Mghari(GitHub: Nutlope)开发,MIT 开源,上线后迅速走红——一天涨了 3,181 星,目前总 Star 数超过 12,500。

Hallmark 的核心逻辑是:不是帮你生成「更好看的」AI 界面,而是主动拒绝那些大模型被训练出来的视觉默认项

它选一个宏观结构,配一套主题,跑 57 个 slop 检测门,再做一次 pre-emit 自评——这些都在你看到结果之前全部跑完。


为什么说 AI 生成的 UI 是「统计学平均值」

这是我觉得这个项目最值得思考的地方。

语言模型的本质是概率分布。没有约束时,它输出的是训练数据中最常见的模式——也就是「统计学上最安全的答案」。

问题在于,如果几千万个网站都是用类似工具生成的,这些「最安全的答案」就会互相强化,最后锁死在一个极其狭窄的视觉风格里。

Hallmark 的解法不是换个模型,而是在模型和用户之间插入一层质量门控。这个思路在工程上比「让模型变得有品味」务实得多。


57 个「Slop 检测门」是怎么工作的

这是 Hallmark 最核心的机制。

每次生成界面之前,Hallmark 会把草稿过一遍 57 个确定性检查项,覆盖六个维度:

维度

示例检测项

Philosophy

是否对每个元素都用了相同的 border-radius?

Hierarchy

是否存在六张等高的卡片排一行?

Execution

body 字体是不是 Inter-at-400?

Specificity

是否出现了深色背景 + 紫色渐变?

Restraint

是否每个 hover 都有 ease-in-out 弹跳?

Variety

整个页面的间距节奏是否完全相同?

每个门控都是二选一:通过,或者重新生成

更聪明的地方在于,Hallmark 在跑 57 个门控之前,还会做一次「pre-emit self-critique」——让模型对草稿自评六个维度,任何一个维度低于 3 分,直接触发全面修订,不进入门控流程。

最后,每个生成的 HTML 文件里都有一段 CSS 注释,记录本次设计的宏观结构和自评分——可以直接看到模型的「推理痕迹」。


四个动词,四种用法

Hallmark 不只是一个生成工具,它暴露了四个操作:

默认:生成

给出一个 brief,Hallmark 会:

  1. 选一个宏观结构(21 种之一)

  2. 配一套主题(20 种之一)

  3. 生成自包含的 HTML + CSS

  4. 跑 57 个门控,不过关就重来

hallmark audit <target>:诊断

对现有代码做「AI Slop 体检」。只给诊断报告,不改一行代码。

把之前用 Claude 生成的落地页喂进去,给出了七条问题:Inter everywhere、六卡等高、紫色系渐变……准确率挺高。可以接入 CI 流程,每次发布前跑一遍,当成 ESLint 一样用。

hallmark redesign <target>:重建

保留文案、信息架构和品牌,彻底推倒视觉结构重建。适合「内容没问题,但长得太 AI 了」的情况。

hallmark study <screenshot | URL>:提取设计 DNA

这个是最意外的功能——给它一个你喜欢的网站截图或 URL,它会提取设计语言:宏观结构、字体搭配、颜色锚点……然后输出一个可移植的 design.md,可以直接给其他 AI 工具用。

不是像素级复制,是「设计语言迁移」。


20 种主题 × 21 种宏观结构

先说宏观结构(Macrostructure)——这是 Hallmark 区别于普通主题系统的关键。

21 种命名的页面骨架包括:Bento Grid、Marquee Hero、Long Document、Workbench、Asymmetric Split……Hallmark 根据 brief 的内容类型匹配宏观结构,而不是随机给。SaaS 定价页和开发者文档门户的骨架结构是不同的。

再说主题——Hallmark 的主题不是「换个颜色变量包」。每个主题都定义了完整的设计系统:具体字体栈、颜色锚点和派生调色板、间距节奏、动效特征。

来看几个实际的主题效果:

Bubble — 面包订阅 App,Hum 主题

Distil — 内容提取 API,Cobalt 主题

Cold Snap — 唱片厂牌,Carnival 主题

Cinder — AI 推理工具,Lumen 主题

同一个 brief,两次生成出来的不是「换了个颜色」——而是两个看起来像不同设计师做的不同网站。


Custom 模式:当 20 个主题都不够用

当 brief 携带的创意意图无法被任何现有主题匹配时,Hallmark 切换到 Custom 模式——从零设计调色板、字体和布局。同样跑 57 个门控,只是没有模板垫底。

The Cascadia Nightjar — 夜班卧铺车票,Custom 模式

The Mend Assembly — 修理咖啡馆宣传页,Custom 模式


更多案例:风格差异有多大

Tally — SaaS 产品页,modern-minimal 风格

Wayfare — 旅行预订,atmospheric 氛围感

NAJM — 摩洛哥时尚品牌

Hyperlane — 开发者基础设施平台

每个页面都是独立的 HTML + CSS,CSS 注释里记录了宏观结构。全部案例在 usehallmark.com 可以看,按 T 键可以在 22 个主题之间切换。


安装和使用

一行命令搞定:

npx skills add nutlope/hallmark

重新运行即可更新。也可以手动复制文件:

Claude Code:

~/.claude/skills/hallmark/

Cursor:

.cursor/rules/hallmark.mdc

Codex:

~/.codex/skills/hallmark/

装完之后不需要额外配置——下次让 agent 生成 UI 时提一句「用 hallmark」,57 个门控和自评机制自动跑起来。


说说局限性

有几点得实话实说:

1. 输出是 HTML + CSS,不是 React 组件

如果你的项目是 React/Vue 组件库,生成出来的 HTML 还要手动移植。这个时间成本可能抵消掉节省的。Hallmark 更适合落地页、营销页、原型验证,不适合 app 内的组件 UI。

2. 已有设计系统的项目用处有限

如果你的品牌、调色板、字体都已锁定,Hallmark 的 20 个主题反而是噪音。这种情况下,一个 DESIGN.md token 文件比 Hallmark 更有用。很多团队的最佳方案是两者组合:DESIGN.md 锁定 token,Hallmark 的门控来兜底那些 token 描述不到的 slop。

3. 57 个门控是手写规则,需要持续维护

随着模型训练数据变化,AI Slop 的具体表现形式也会变。今天能识别的 Inter + 紫色渐变,明天可能不再是主要问题。这套规则需要跟着演进。


我的看法

坦白说,我试之前对「design skill」挺怀疑的——感觉就是把一大段 prompt 塞给模型,换汤不换药。

但 57 个确定性门控 + pre-emit 自评的组合,确实比我想象的有效。它不是在「让模型变得有品味」,而是在约束模型偏离统计学均值——这是个更务实的工程解法,也是更可维护的路子。

更重要的是,audit 和 study 两个 verb 的价值可能比生成本身更大。前者可以接入 CI 做持续质量检查,后者把「我想要 Linear 那种感觉」这种模糊需求转化成结构化的 brief。

目前 12,500+ Star,单日 3,000+ 的增速是真实的需求信号——开发者已经不再问「AI 能不能写代码」,开始问「谁来管它输出的质量」。

如果你经常用 AI 生成前端,装一个,先用 audit 跑一遍现有页面。成本很低,结果可能挺意外。


资源

  • GitHub: https://github.com/Nutlope/hallmark

  • 主题展示: https://www.usehallmark.com

  • 安装命令:npx skills add nutlope/hallmark


你用 AI 生成 UI 时遇到过「千站一面」的问题吗?评论区聊聊你的解法。

谢谢你阅读我的文章~

我是顾北,我们下期再见!

 PS:本文部分内容由AI辅助创作

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐