site logo

Marico's space

从实用到惊艳:web-design-skill 实战指南

前端技术 2026-04-25 22:54:55 3

译者按:最近用 Claude Code 和 Cursor 写前端页面,发现它们生成的页面长得都差不多——Inter 字体、紫粉渐变、大圆角卡片,一眼就能看出"这是 AI 写的"。这篇文章提到的 web-design-skill 项目很有意思,它把 Claude Design 的设计理念提炼成了一个可复用的 skill 文件,让 AI 写出更有设计品味的代码。我试着整理了一下,分享给大家。

问题:AI 生成的页面为什么都长得一样?

让 Claude Code 或 Cursor 生成一个落地页,你三秒内就能猜到它长什么样:

  • Inter 字体
  • 蓝色按钮
  • 紫粉渐变英雄区
  • 大圆角卡片
  • 用 emoji 充当图标
  • 再加几段虚假用户好评

能用——但任何人都能一眼看出"这是 AI 写的"。

ConardLi/web-design-skill 正是为了解决这个问题。它将 Claude Design(Anthropic 于 2026 年 4 月推出的视觉产品)的系统提示提炼为一个开放的、可移植的 SKILL.md,放入 .claude/skills/.agents/skills/ 即可使用。目标:让 agent 写出有设计品味的代码,而不是千篇一律的脸。

这是一篇实战指南,同时整理了一些值得借鉴的设计理念。

修复 1:反套路黑名单

这个 skill 明确列出了黑名单,让 agent 在生成之前就被提醒"不要用这些"。这比"设计得好看点"这种模糊指令有效得多——LLM 遵循负面约束的能力不错,只要条目足够具体

不要告诉 AI"设计得漂亮",而要明确告诉它"不要紫粉渐变、不要 Inter 字体、不要用 emoji 当图标"。约束反而打开了设计空间。

作者列出了一个"AI 前端特征"黑名单:

  • 紫粉蓝渐变背景
  • 左侧彩色边框的卡片
  • Inter / Roboto / Arial / system-ui 字体
  • 用 emoji 当图标
  • 虚假数据、假 logo 墙、伪造好评

这些都没错。只是太常见了。看到它们就等于在说"这是 AI",会稀释任何品牌形象。

修复 2:oklch 色彩系统

这是 skill 中技术性最强的部分。HSL 在感知上是不均匀的——亮度 50% 的黄色看起来比亮度 50% 的蓝色亮得多,这就是为什么 AI 生成的 HSL 色板经常"数值对称但视觉歪斜"。

oklch 是一个感知均匀的色彩空间——相同的 L 值在人眼看来亮度确实相同。skill 要求用 oklch 定义色彩 token:

:root {
  --color-bg: oklch(98% 0.01 80);
  --color-fg: oklch(20% 0.02 80);
  --color-accent: oklch(65% 0.18 30);
}

附带的好处是色阶推导很干净——锁定色度和色相,只变化亮度,就能得到视觉上一致的灰色或强调色色阶。

修复 3:提前声明设计系统

这在我看来是 skill 的核心。AI 生成前端的最大问题是"边做边决定":到英雄区才选颜色,到页脚才换字体,最终拼凑出一张不匹配的页面。

skill 强制要求 agent 在写代码之前先用 markdown 声明设计 token

## Design System
- **Palette**: warm paper (oklch 97% 0.01 80) / ink (oklch 18% 0.02 80) / accent caramel (oklch 65% 0.15 60)
- **Typography**: Instrument Serif (display) + Space Grotesk (UI) + JetBrains Mono (code)
- **Spacing**: 4px base, 8/16/24/40/64 scale
- **Motion**: 200ms ease-out for micro, 600ms ease-in-out for page transitions

只有在这些声明完成后才开始写代码。这将"设计决策"和"实现"分开——用户可以在 token 层面纠正方向,而不用等整个页面出来才发现整体调性不对。

修复 4:先展示 v0 草稿

不要一次性交付。skill 要求一个"v0"阶段:布局骨架 + 设计 token + 占位符,让用户确认方向后再填充细节。

这模仿了人类从线框图到高保真原型的工作流程。AI 通常会跳过这一步,因为它想一次性交付完整成果——但完整成果修改成本高,半成品修改成本低。

修复 5:占位符原则

AI 最蠢的习惯之一:图片缺失时,它会画一个歪歪扭扭的 SVG 假装是插图。skill 禁止这种做法,改用诚实的标记:

<div class="placeholder">[hero image: photographer portrait, 3:4]</div>

原因很简单:劣质 SVG 会误导用户以为这是成品素材,而文字占位符清楚地表明"这里需要真实的素材"。

六步工作流

skill 将整个过程结构化:

  1. 理解需求 — 仅在信息不足时提问
  2. 收集设计背景 — 代码 > 截图,绝不从零开始
  3. 声明设计系统 — 如上,用 markdown 定义 token
  4. 展示 v0 草稿 — 布局 + 占位符
  5. 完整构建 — 组件、状态、动效;在决策点暂停
  6. 验证 — 交付前检查:无控制台错误、无杂色

这个结构抑制了 LLM"一次性给出完整答案"的冲动,强迫它进入迭代工作流。

六组配色 × 字体搭配

skill 中最实用的速查表。六组预验证的组合,agent 遇到困难时直接取用:

风格 配色 字体 适用场景
现代科技 蓝紫 Space Grotesk + Inter SaaS、开发工具
优雅编辑 暖棕 Newsreader + Outfit 内容、博客
高端品牌 近黑 Sora + Plus Jakarta Sans 奢侈品、金融
活泼消费 珊瑚 Plus Jakarta Sans + Outfit 电商、社交
简约专业 青蓝 Outfit + Space Grotesk 仪表盘、B2B
手工艺温暖 焦糖 Caveat + Newsreader 餐饮、教育

注意 Inter 只在"现代科技"中作为次要字体出现——不是默认选择。这正是反套路规则的具体体现。

如何使用

克隆后,将 .agents/skills/web-design-engineer/ 复制到你的项目中(Claude Code 用 .claude/skills/),agent 会在处理前端任务时自动加载。

git clone https://github.com/ConardLi/web-design-skill
cp -r web-design-skill/.agents/skills/web-design-engineer .claude/skills/

仓库的 demo/ 文件夹中有同 prompt 下使用和未使用 skill 的对比。差距一目了然——值得直接打开看看。

为什么值得借鉴

真正的价值不是"AI 的设计检查清单"——而是将设计决策外部化的方法论。把 token 写成 markdown、把反模式写成黑名单、把工作流分成六步——这些都把模糊的"品味"变成了 LLM 可以读取的结构。

同样的思路适用于任何领域:如果你想让 AI 在某个领域有品味,就把"做"和"不做"明确列出来。比一千字的大段 system prompt 有效得多。

参考资料

  • ConardLi/web-design-skill GitHub Repo
  • Claude Design — Anthropic Labs Announcement
  • oklch Color Space
  • Claude Code SKILL.md Docs