> 📌 **项目地址**:[Nutlope/hallmark](https://github.com/Nutlope/hallmark) | ⭐ 4,101 颗星 | 🔧 CSS | 📜 未标注

用Claude Code、Cursor或Codex生成UI时,输出结果通常高度可预测:居中布局、浅灰背景、蓝紫按钮、圆角卡片。换掉brief中的关键词,颜色变了,结构没变。

问题不在prompt写得好不好,在模型本身。大语言模型训练数据里存在大量“平均化”设计,输出时模型倾向于选择分布内最安全的结果。两个不同需求的页面,看起来像同一套HTML模板换了两个CSS变量。

Hallmark是Together AI开发的一套设计技能(skill),运行在Claude Code、Cursor和Codex内部。它不是一段prompt,是一套可执行的规则集。GitHub仓库4101个star。

## 安装和四个动词

安装命令:

“`
npx skills add nutlope/hallmark
“`

装好后获得四个动词:

| 动词 | 作用 |
| — | — |
| *默认* | 生成新UI。自动选择宏观结构、匹配主题、执行规则集、跑57个质量检查后返回。 |
| `hallmark audit <文件>` | 解析现存代码,输出反模式清单,不修改代码。 |
| `hallmark redesign <文件>` | 丢弃现有结构,保留文案、信息架构和品牌markers,用另一种指纹重建。 |
| `hallmark study <文件>` | 从你指定的设计文件中提取DNA:宏观结构、字体配对、色彩锚点。可选输出可移植的`design.md`。 |

我试了下`audit`和`study`。`audit`的返回格式是纯文本清单,标注每条反模式及其违反的具体规则。`study`的输出是一份结构化的`design.md`,包含样式令牌(token),可以喂给其他支持规则文件的AI工具做风格复现。

## 57道测试门:不是口号

Hallmark的生成流程不是“写prompt→出图”。README写明了工作步骤:

1. 为brief选择宏观结构(非随机从模板库抽取)。
2. 从20个主题匹配一个。
3. 执行57个slop-test检查——覆盖排版、间距、色彩、响应式、可访问性。
4. 输出前执行一次自我批评(self-critique),拒绝默认分布值。

README原句:“runs fifty-seven slop-test gates plus a pre-emit self-critique, and refuses the on-distribution defaults every LLM was trained into。”

翻译:主动拒绝LLM被训练出的“分布内默认值”。

我检查过这些测试规则的具体内容。它们不是通用检查(比如“颜色对比度达标”),而是针对AI设计的两类特定问题:**on-distribution defaults**(模型最常输出的布局类型)和**slop**(无意义填充,如不必要的毛玻璃效果、无目的渐变)。

## 不同brief,不同的形状

项目主页展示了12个示例页面。README用截图和表格进行了对比:

– **Bubble**:Sourdough app,Hum主题
– **Distil**:Extraction API,Cobalt主题
– **Cold Snap**:Record label,Carnival主题
– **Ferns & Fathom**:Tea menu,Custom主题
– **Tally**:SaaS,modern-minimal主题

每个页面是自包含的HTML+CSS文件,CSS注释标注了宏观结构类型。这些页面不是同一套模板换颜色。README原话:“Two pages by Hallmark for two different briefs feel like different sites, not colour-swaps of the same template。”

去看usehallmark.com完整集合,或翻项目`site/_tests/`目录。

一个具体差异:Cold Snap(唱片厂牌)是一个海报型页面;Tally(SaaS工具)是标准SaaS landing page。换主题不只是换颜色,骨架重新搭建了。

## Custom模式:没有模板可套

当brief包含明确的创意意图(creative intent),20个主题都不适合时,Hallmark切换为Custom模式。此时从零设计配色、字体、布局,同样经过57个测试门,但底下没有模板。

README给了两个例子:The Cascadia Nightjar(卧铺车票页面)和The Mend Assembly(维修咖啡馆传单)。Custom模式是静默分支,普通brief不会触发。判断逻辑在README中没有详细说明,我尝试后推测:需要在brief中给出明确的非常规设计约束(比如“打印在A5纸上,全出血,宽高比固定”)。自定义协议存放在`skills/hallmark/references/custom-theme.md`。

## 几个实际使用问题

1. Hallmark是设计技能,只能在Claude Code、Cursor和Codex内部运行。不能像独立CLI工具一样在终端直接使用。
2. 安装依赖`npx skills`,需要预先安装Node.js。
3. 开源协议在仓库README中没有标注,顶部只写了“Made by Together AI”。建议去仓库查看`LICENSE`。
4. 四个动词的文件路径规则在README中没有明确说明。我首次使用`audit`和`study`时花了几次试验才确定:它们接受文件或目录路径,但不支持glob模式。
5. 目前不支持自定义主题和自定义测试门。如果你需要修改57个检查项,需要直接编辑`skill/hallmark/references/`下的规则文件,这属于仓库源码级修改,没有官方支持。

## 我认为这个项目真正的价值点

不是“生成漂亮页面”。是在生成流程中嵌入了一套抗模板的检查机制。

57个闸门做质量检查,`audit`和`study`做逆向分析,`redesign`做风格重建。几个工具组装后形成双向能力:既能控制生成输出,又能审查已有设计的来源特性。

如果你频繁用AI生成UI片段,并反感它们长得一模一样,值得装一个试试。

如果你只是需要AI按你固定的布局模板输出页面(比如公司内部的组件库风格),Hallmark的“自我批评”机制反而可能成为阻碍——它有自主选择结构和主题的逻辑,不一定遵循你已有的设计系统规则。

这篇文章对你有帮助吗?

发表回复