结合 Anthropic 的 frontend design 实践、两组高一致性 UI 提示词分析,以及个人安装的设计类 Skills,拆解如何突破 AI 默认审美、组织设计 Skill,并通过设计契约、视觉参考和分层验收减少从设计到代码的落地偏移。
让 AI 写出一个能运行的前端页面已经不难,难的是让它同时满足两件事:
- 不再长得像千篇一律的 AI 页面(去AI味);
- 设计方向确定后,代码实现不要逐渐偏回普通模板。
第一个问题是设计质量,第二个问题是落地保真度。它们经常被混在一起,但需要完全不同的控制方法。
Anthropic 在 Improving frontend design through Skills 中提出,模型在缺少指导时容易出现“分布收敛”:训练数据里安全、通用、不容易冒犯任何人的选择占据高概率区域,于是生成结果不断靠近 Inter、白底紫色渐变、标准卡片和少量动效。通过 Skill 按需注入字体、色彩、动效和背景等设计知识,可以把模型从这个高概率中心拉出来。
但脱离默认审美只解决了一半问题。一张设计图可能很有辨识度,真正写成 Vue 或 React 页面后却又变成普通两栏布局、紧凑间距和默认组件。这是另一种收敛:实现者为了降低工程难度,主动把不确定细节替换为熟悉的代码模式。
本文尝试把这两类问题放进同一个流程中:前半段用 Skill 扩大设计搜索空间,后半段用设计契约、精确规格和验证机制逐步收紧自由度。
为避免来源混淆,后文会使用三类材料:Anthropic 原文负责解释分布收敛、动态上下文和通用 frontend aesthetics 提示;本地提示词分析负责讨论数值、结构、公式与验收标准如何降低解释空间;个人安装的设计 Skills 则用于归纳可实践的分层、转译与审查流程。文中的“双收敛”“自由度漏斗”“Design Contract”和四层验收,是基于三类材料形成的作者综合,而不是 Anthropic 原文中的固定框架。
一、为什么 AI 前端会收敛到"看起来没错,但没有设计"
“AI 感”并不是某一种配色或组件,而是一组高概率选择同时出现:
- 无论什么产品都使用相似的中性字体;
- 白底或深色底搭配蓝紫渐变;
- 居中 Hero、三张等宽特性卡片、左右交替图文;
- 所有内容都装进圆角卡片;
- 文案充满 Elevate、Seamless、Next-Gen 等抽象词;
- 页面静态得像截图,或者相反,每个元素都在无目的地飘动;
- 只实现理想成功态,忽略加载、空、错误、禁用和键盘操作。
这些选择单独看并不一定错误。Inter、紫色和三栏布局都有合适的使用场景。问题在于它们不是根据产品、受众和内容做出的决定,而是模型在没有足够约束时最容易抵达的答案。
Anthropic 将其解释为 distributional convergence。换成前端设计语言,就是:
模型拥有更丰富的设计知识,但默认采样策略把它压缩到了最安全的局部最优解。
这也解释了为什么简单增加一句“做得高级一点”通常无效。“高级”没有告诉模型应该在哪个方向偏离,它仍然会在熟悉的高概率区域里寻找“高级”的平均值,最后得到更大的标题、更软的阴影和更多渐变。
二、Skills 的价值不是替你设计,而是校正模型的默认倾向
Claude 原文给出的核心提示约 400 tokens,并通过 SaaS 落地页、博客和管理后台的前后对比展示了定性的视觉改善。原文没有提供样本量、评分标准或统计指标,因此这里应把它理解为有说服力的案例展示,而不是严格的量化实验。这个提示没有规定固定页面模板,而是对四个容易收敛的设计轴进行校正:
- Typography: 不默认使用通用字体,主动寻找有性格的字体组合;
- Color & Theme: 选择一个完整审美方向,用 CSS 变量保持一致,避免平均分配颜色;
- Motion: 把动效集中在高价值时刻,一次编排良好的加载序列胜过散落的小动画;
- Backgrounds: 使用纹理、几何图案和分层效果建立氛围,不默认纯色背景。
它还明确禁止 Inter、Roboto、白底紫色渐变、可预测布局等常见模式,并提醒模型不要从一个默认又跳到另一个默认,例如所有项目都改用 Space Grotesk。
这里最值得注意的不是具体字体名单,而是 Skill 的工作方式:
识别模型默认倾向
↓
指出需要重新思考的设计轴
↓
给出可选方向和反例
↓
保留结合项目语境做选择的空间Skill 因此更像“审美偏差校正器”,而不是一份万能设计稿。它不会自动创造品牌定位,也不能代替对用户、内容和业务目标的理解;它只是让模型不再用第一个想到的模板回答所有问题。
Skills 还解决了一个上下文工程问题。将所有设计知识永久放进系统提示词,会让调试 Python、分析数据等无关任务也携带大量前端上下文。按需加载的 Skill 可以只在页面设计、组件改造和视觉审查时出现,使设计指导成为可复用的专业上下文,而不是每次任务都要复制的一段长提示词。
三、设计 Skill 不应该只有一种:先建立职责分层
我盘点了个人级安装的设计与前端相关 Skills,发现它们大致可以分成六类。这个分类比“找一个最强 Skill”更有意义,因为每一类解决的是不同阶段的问题。
| 层级 | 代表 Skill | 主要职责 |
|---|---|---|
| 方向层 | frontend-design、design-taste-frontend、impeccable | 理解 Brief、受众、页面任务和审美方向 |
| 风格层 | minimalist-ui、industrial-brutalist-ui、high-end-visual-design | 提供明确的视觉语言、材料和版式边界 |
| 系统层 | design-system、ui-styling | 把色彩、字号、间距和组件约束沉淀成 tokens 与规范 |
| 工程层 | frontend-ui-engineering、make-interfaces-feel-better | 响应式、状态、可访问性、组件细节和微交互 |
| 转译层 | imagegen-frontend-web、image-to-code | 生成视觉参照并从图片提取布局、颜色、字体和组件规则 |
| 审查层 | web-design-guidelines、find-animation-opportunities、review-animations | 检查可访问性、动效必要性、性能和实现质量 |
这组 Skill 反复出现几个共识。
1. 先理解语境,再选择风格
frontend-design 要求先确定具体主题、受众和页面唯一任务;design-taste-frontend 进一步要求输出一行 Design Read,例如:
这是一个面向技术采购者的 B2B SaaS 落地页,
采用克制、可信的产品语言,视觉密度中等,动效强度较低。这一步看似简单,却能阻止模型把自己的审美偏好误当成用户需求。B2B 管理后台、独立设计师作品集、公共服务网站和奢侈品落地页不应该共享同一套“高级感”。
2. 反套路必须带有例外条件
很多 Skill 都禁止 Inter、紫色渐变、三栏卡片和无意义标签。但成熟的写法不是宣布这些元素永远错误,而是禁止它们成为无理由的默认值。
如果品牌本来就是紫色,就应该保留紫色;如果产品追求 Linear 式中性效率,Inter 也可能合理;如果内容确实只有三个并列能力,三栏布局并非原罪。关键问题始终是:这个选择是否来自 Brief,而不是来自模型惯性。
3. 视觉自由需要几个稳定的全局旋钮
design-taste-frontend 使用 DESIGN_VARIANCE、MOTION_INTENSITY 和 VISUAL_DENSITY 三个旋钮控制版式变化、动效强度和内容密度。这种做法很有启发性,因为“大胆一点”被拆成了三个不同维度。
DESIGN_VARIANCE: 7
MOTION_INTENSITY: 4
VISUAL_DENSITY: 3一个页面可以版式大胆但动效克制,也可以布局稳定但信息密度很高。如果不拆开,模型很容易把“高端”同时理解成大字、深色、玻璃、重动效和巨大留白,结果反而失控。
4. 高级感最终依赖细节,而不是堆叠特效
make-interfaces-feel-better 关注同心圆角、视觉对齐、数字等宽、图标线宽、可中断动画和点击热区;frontend-ui-engineering 关注键盘导航、Focus、空状态、错误状态和响应式;这些内容说明,页面的完成度来自许多小决策共同作用。
真正的精致往往是:圆角关系没有打架,按钮文字不换行,阴影表达层级而不是装饰,数字切换不跳动,动画可以被打断,移动端触控区域足够大。它们没有 Awwwards 截图那么显眼,却决定了界面是否真的可用。
5. 动效应该先通过“是否值得存在”的筛选
find-animation-opportunities 并不是看到静态元素就建议加动画,而是检查频率、目的、速度预算和功能价值;review-animations 则对已有动画进行严格审查。
这比“所有内容进入视口时都 fade-up”成熟得多。动效 Skill 最重要的输出之一,应该是明确列出哪些候选动画被拒绝了,以及为什么。
四、不要同时堆叠所有设计 Skills
个人目录里有许多设计 Skill,并不意味着每次都应该全部加载。
minimalist-ui 禁止渐变和重阴影,high-end-visual-design 可能鼓励玻璃、纹理和电影感;frontend-design 强调每个项目只选择一个有理由的视觉风险,某些 motion Skill 则倾向于更强烈的滚动编排。如果把这些指令视为同级硬规则,模型只能做出折中产物,或者随机服从其中一部分。
更稳健的组合方式是“一主两辅”。这里的“两辅”指两个职责层,不是严格限制只能再加载两个文件:
主 Skill:决定设计方向与整体决策方式
专项职责:由一个或少量互不冲突的 Skill 解决当前专业问题
验收职责:由一个或少量检查型 Skill 从独立维度验证结果例如:
新建营销页
主:frontend-design
专项:imagegen-frontend-web 或 design-system
验收:frontend-ui-engineering + web-design-guidelines
改造已有后台
主:redesign-existing-projects
专项:make-interfaces-feel-better
验收:frontend-ui-engineering
增加关键动效
主:现有项目设计 Skill
专项:find-animation-opportunities
验收:review-animations同一职责只保留一个权威来源。允许多个 Skill 参与同一阶段,但必须指定一个负责裁决,其他 Skill 只提供建议或检查结果。风格 Skill 决定审美,项目 Skill 决定目录和技术约束,设计系统决定 tokens,专项 Skill 只能在边界内优化。否则 Skill 数量越多,落地偏移反而越大。
五、提示词应该写多精确 ? 答案取决于当前阶段
以motionsites网站的aethera-hero案例的prompt提示词为示例,下面是不同模型之间的第一遍实现效果:

你会发现根据提示词第一遍实现的效果基本上一致,而且没怎么区分模型的能力,原因就在于提示词的精确度上。
Claude 原文强调提示要处在“正确高度”:既不要只说“设计得有创意”,也不建议把全部选择低层级地硬编码成具体十六进制值。
在专业前端网站motionsites中,你会发现 UI 提示词体现出另一条规律,比如aethera-hero和Mostar city两组 UI 提示词体现的规律:需要跨模型高一致性复现时,减少主观选择通常会降低输出差异。把“深灰色”改成 #6F6F6F,把“稍微错开”改成 0.2s 和 0.4s,把“丝滑滚动”改成 smoothstep、区间参数和可执行公式,模型需要自行解释的空间会更少。这个判断来自提示词结构对比,并非具有统计样本的基准测试。
这两个结论并不矛盾,因为它们讨论的是不同阶段。
| 阶段 | 目标 | 指令高度 | 应保留的自由度 |
|---|---|---|---|
| 方向探索 | 找到有辨识度的设计方案 | 高到中 | 主题、构图、字体方向可以探索 |
| 方案收敛 | 形成统一视觉系统 | 中 | 固定 palette、type scale、版式原则和标志性元素 |
| 工程转译 | 忠实实现已确认方案 | 中到低 | 允许响应式适配,不允许改变视觉语言 |
| 验收修正 | 消除可观察偏差 | 低 | 使用数值、截图、时间点和可测试标准 |
因此,一个完整流程应该像漏斗:
探索阶段:扩大搜索空间
↓
确定方向:锁定视觉世界
↓
建立契约:冻结关键变量
↓
工程实现:减少自行发挥
↓
视觉验收:用证据修正偏差如果一开始就规定每个像素,AI 只是在抄一份未经验证的方案,设计能力无法发挥;如果进入编码阶段仍只说“保持高级感”,模型会在每一个未定义细节处重新设计,最终不可避免地漂移。
六、从形容词到设计契约:把方向冻结成可执行变量
设计方向获得确认后,需要把它转换成一份 Design Contract。它不是完整设计系统,但应该锁住所有会在实现过程中反复被引用的关键变量。
surface: SaaS landing page
audience: 设计和研发负责人
page_job: 让访客理解产品价值并预约演示
design_read:
tone: 冷静、精确、有技术可信度
signature: 横向分割的实时工作流视图
variance: 7
motion: 4
density: 4
tokens:
background: "#0B0D10"
surface: "#14181E"
text_primary: "#F2F5F7"
text_muted: "#99A3AE"
accent: "#4EE1A0"
radius_card: 16px
radius_control: 10px
space_section: clamp(96px, 12vw, 168px)
typography:
display: "Bricolage Grotesque"
body: "Source Sans 3"
utility: "IBM Plex Mono"
hero: clamp(48px, 7vw, 96px) / 0.94
invariants:
- Hero 桌面端不超过两行
- 全页只使用一个强调色
- 卡片只用于真实层级,不把每段内容装进卡片
- 不新增与工作流主题无关的装饰标签
freedoms:
- 移动端允许把 7:5 双栏重排为单栏
- 数据过长时允许截断,但必须提供完整内容入口
- reduced motion 下允许移除位移,只保留淡入或直接呈现这一步应用了本地提示词分析中的“变量交叉引用”原则。导航、Hero、按钮和状态提示不再各自描述“绿色”,而是统一引用 accent;所有卡片不再自行选择圆角,而是使用同一套半径逻辑。一个关键变量被多处引用时,局部实现即使出现偏差,也更容易被全局规则拉回。
示例中的“一个强调色”只是这个页面选择的不变量,并不是所有产品都应遵守的普适规则。状态色、数据可视化和多品牌场景可能需要更丰富的语义色;关键在于把允许使用的色彩角色纳入 token 系统,而不是在组件内部临时发明颜色。
Design Contract 最好同时包含三类内容:
- Tokens: 颜色、字体、间距、圆角、阴影和层级;
- Invariants: 不得改变的视觉与交互规则;
- Freedom: 允许实现者自主决定的部分,例如移动端重新排序、数据过长时的截断策略。
只写禁止项会让模型畏首畏尾;只写自由项又无法保真。边界清楚,才是真正可控的创造力。
七、防止设计图到代码偏移:把"参考图"变成工程输入
生成一张漂亮图片不等于提供了可实现的设计。根据个人 imagegen-frontend-web 与 image-to-code Skill 的工作流,视觉参考只有被分段、分析和约束后,才会从情绪板变成工程输入。
1. 不要把整页压缩成一张长图
一个六段落地页最好为每个 section 生成独立横向参考图。整页长图中的文字、按钮和间距太小,转译时只能靠猜;分段图可以看清排版比例、CTA 层级、图片框架和组件细节。
复杂 section 还可以补充局部细节图,而不是从模糊大图中裁切放大。裁切不会创造丢失的信息。
图片生成不是唯一途径。无法使用相关 Skill 时,可以用 Figma Frame、ASCII 线框、浏览器静态原型或标注过的参考截图代替。媒介可以变化,但输入必须让实现者看清结构、比例、层级和关键状态,而不是只提供一句风格描述。
2. 从图中提取规则,不要只说"照着做"
编码前至少提取:
- 容器宽度、列比例和对齐锚点;
- section 的垂直间距与疏密节奏;
- 字体角色、字号比例、行高与每行字数;
- 背景、surface、文字、边框和强调色关系;
- 按钮尺寸、圆角、填充、图标和主次层级;
- 图片比例、裁切方式、滤镜和框架;
- DOM 层级、z-index 和同层绘制顺序;
- 动效起止状态、持续时间、缓动与触发条件。
“尽量还原”没有执行意义,“Hero 使用 12 列网格,文字占 7 列,媒体占 5 列,标题最大 2 行,CTA 与正文间隔 32px”才有。
3. 明确细节缺失时的决策顺序
image-to-code 给出的思路可以整理成:
先保持可见的设计语言
→ 再保持布局与间距逻辑
→ 再保持组件家族和精致程度
→ 必要时补充细节参考图
→ 最后才选择最便于实现的忠实版本实现便利不能排在第一位。很多设计偏移并不是技术做不到,而是开发者过早用熟悉的 Flex、卡片和组件库默认样式填补了不确定性。
4. 允许响应式变化,但不允许视觉世界改变
设计保真不等于在手机上缩小桌面稿。移动端可以把不对称网格改成单列、移除重叠、调整图片顺序、降低动效强度,但必须继续使用同一套字体角色、颜色逻辑、组件家族和内容优先级。
八、复杂动效要从 "效果描述" 升级为公式和时间线
静态页面主要容易在色彩、字体和间距上偏移,复杂滚动页还会在时序、依赖和绘制顺序上偏移。下面的公式与时间线写法来自本地 Mostar 滚动页提示词分析,不是 Anthropic 原文示例。
“桥梁跟随鼠标并丝滑移动”仍然给了模型大量解释空间。高一致性提示词会进一步写成:
const smoothstep = (edge0, edge1, value) => {
const t = Math.min(1, Math.max(0, (value - edge0) / (edge1 - edge0)));
return t * t * (3 - 2 * t);
};
// mouseY: -1..1;sharedHeroY: px;frame2Exit: 0..1
const bridgeY = mouseY * 8 + sharedHeroY - frame2Exit * 760;
bridge.style.transform = `translate3d(0, ${bridgeY}px, 0)`;这时模型不再设计动画,而是在转译公式。还需要补充三个容易遗漏的维度:
- 依赖顺序: 哪些变量必须先计算,避免引用未定义或上一帧状态;
- 结构顺序: DOM 树、层级和相同 z-index 时的绘制关系;
- 验收时间线: 滚动到哪些区间时,哪些元素应该出现、固定、离开或完成过渡。
例如:
scrollY = 0:Hero 文案完整可见,桥梁位于初始位置
scrollY = 480:标题透明度应在 0.45–0.55,场景二开始进入
scrollY = 920:桥梁离开首屏,场景二完全接管背景
scrollY = 1480:视差停止,CTA 可交互且位于可视区规格清单检查零件是否正确,时间线检查组装后的动态行为是否正确。只有两者同时存在,复杂动效才真正可验收。
需要注意:公式精确只适合必须确定性复现的动态关系,不应该成为所有 UI 设计的默认提示方式。当指令精确到公式级别,偏移也不会完全消失,而是从审美判断转移到工程严谨性,例如公式抄写、单位拼接、浮点精度和声明顺序。因此还要补充取值范围、单位、resize、clamp 和 reduced motion 策略,并用运行时检查与关键帧截图验证,不能只审代码。
九、建立四层验收,避免"看着差不多"
防止落地偏移不能依赖一次最终肉眼检查。更有效的方法是把验收拆成四层。
第一层:结构正确
- DOM 语义和层级是否符合设计;
- section 顺序和内容优先级是否保持;
- z-index、overflow 和定位上下文是否正确;
- 移动端是否有明确的折叠策略。
第二层:系统一致
- 所有颜色是否来自同一 token 集;
- 字体角色和 type scale 是否被统一使用;
- 圆角、阴影、边框和图标是否属于同一组件家族;
- CTA 文案与样式是否保持一致;
- 不同 section 是否仍然属于同一个品牌世界。
第三层:视觉保真
- 在固定 viewport 下对比参考图和实现截图;
- 检查容器宽度、基线、留白、行数和图片比例;
- 先修宏观构图,再修颜色与组件,最后修微小间距;
- 桌面和移动端应在同一轮中检查,防止修一端坏一端。
验收阈值应写进每个项目的 Design Contract,而不是由本文统一规定。一个常见起点是:固定 1440×900 与 390×844 两个 viewport;正文对比度达到 WCAG AA;关键对齐与间距允许少量像素误差;动效关键帧使用明确区间;视觉 diff 阈值根据字体渲染和操作系统差异校准。项目应记录最终采用的数值,避免每次 Review 临时改变标准。
第四层:产品质量
- 键盘导航、Focus、对比度和 reduced motion;
- 加载、空、错误、禁用与长文本状态;
- 动画是否只使用合适的属性,是否造成持续重排;
- Lighthouse、类型检查、测试和构建是否通过。
一个页面可以像设计稿,却不具备可访问性;也可以工程质量很高,却已经失去原设计的节奏。四层缺一不可。
十、一个可复用的 Skill 协作流程
把前面的原则合并后,可以形成一套从 Brief 到交付的流程。
阶段 1:理解
输入产品、受众、页面任务、品牌资产、现有设计和限制。由方向 Skill 输出 Design Read,并判断这是新设计、保守改造还是完整重设计。若“页面任务、受众或保留范围”仍有分歧,暂停在此阶段确认,不进入视觉探索。
阶段 2:探索
只在未锁定的设计轴上发散。至少比较两种构图或主题方向,不急着写完整代码。此时使用高到中层级指导,例如“编辑感但不复古”“高对比排版、克制动效”。由产品或设计责任人选择方向,并用一句选择理由记录决策;未选择时不进入收敛阶段。
阶段 3:收敛
选择一个方向,输出 Design Contract:tokens、字体角色、网格、核心组件、标志性元素、设计旋钮、禁止项和允许变化项。Contract 得到确认后,后续阶段不得静默更换视觉世界;若实现证明确实不可行,应返回此阶段修改 Contract 并记录原因。
阶段 4:参考
为关键 section 生成可读的独立视觉参考,复杂组件补充细节图。没有图片工具时使用 Figma、线框或浏览器原型。只有当实现者能够从参考中辨认结构、比例、层级和状态时,才进入转译阶段。
阶段 5:转译
从参考图提取结构、布局、颜色、字体、间距、组件与动效规格。编码 Skill 遵守项目目录、框架和组件库约束,不擅自重新设计。
阶段 6:验收
按照结构、系统、视觉和产品质量四层进行检查。动效使用关键时间点,静态页面使用固定 viewport 截图。任何一层未达到 Contract 中的阈值,都返回实现/转译阶段修复;若失败源于方案本身,则返回收敛阶段更新 Contract。发现偏差时优先修复规则和共享 token,而不是逐个位置打补丁。
阶段 7:沉淀
将反复出现的偏差写回 Skill:
- 如果总是默认紫色,加入带例外的反默认规则;
- 如果 Hero 经常溢出首屏,增加行数、文案和首屏验收约束;
- 如果设计图很好但代码变普通,增加视觉提取和 anti-drift 流程;
- 如果规则总被误用,调整 Skill 的触发描述或职责边界;
- 如果每次都要重复写相同检查,将其变成脚本或测试。
Skill 不是静态设计圣经,而是团队失败案例经过压缩后的工程资产。
十一、可以直接放进项目Skill的反偏移模板
下面这段模板不是完整 Skill,而是可以嵌入项目设计 Skill 的核心工作流。
## Design Workflow
1. 在写代码前输出一行 Design Read:页面类型、受众、唯一任务、视觉语言。
2. 只在 Brief 未确定的设计轴上探索,不修改已有品牌资产。
3. 确认方向后建立 Design Contract:
- palette 与 semantic tokens
- typography roles 与 type scale
- grid、container 与 section rhythm
- component family 与 shape rules
- DESIGN_VARIANCE / MOTION_INTENSITY / VISUAL_DENSITY
- invariants 与 allowed freedoms
4. 关键页面按 section 准备可读视觉参考;模糊细节生成独立细节图。
5. 编码前提取布局、间距、字体、颜色、组件、层级和动效规格。
6. 实现时不得用默认模板替换已确认的设计方向。
7. 使用固定 viewport 对比参考图与实现截图。
8. 验证桌面、移动端、键盘、reduced motion、加载、空和错误状态。
## Conflict Resolution
1. 用户明确要求
2. 项目品牌与 DESIGN.md
3. 项目结构和工程 Skill
4. 当前主设计 Skill
5. 专项设计或动效 Skill
6. 通用审美建议
## Anti-Drift Rules
- 使用共享 tokens,不在组件中重新发明颜色和间距。
- 保持 section 顺序、内容优先级、字体角色和 CTA 家族。
- 允许响应式重排,不允许移动端切换成另一套视觉语言。
- 不因实现方便删除标志性元素或压缩关键留白。
- 细节不清晰时先补参考或遵循可见设计逻辑,不立即使用默认组件。
- 不声明未进行的视觉或工程检查已经通过。十二、几个容易走向极端的误区
1. 把"反 AI"写成新的固定风格
禁止 Inter 后所有页面都用 Space Grotesk,禁止紫色后全部变成黑绿,禁止三栏卡片后全部改成 Bento,只是从一个局部最优跳到另一个局部最优。
解决办法不是继续扩充禁用名单,而是要求每个关键选择都能回到 Brief、受众和内容。
2. 把"高级"理解为更复杂
玻璃、噪点、3D、磁吸按钮、滚动劫持和视差并不会自动叠加成高级体验。复杂度必须与页面模式匹配:营销页可以更重表达,管理后台首先要保证扫描效率,文章页首先要保证阅读。
3. 只审美,不审功能
一张图只展示了一个理想状态。实际产品还有错误、空数据、超长文本、禁用、触屏和键盘操作。设计 Skill 若不覆盖这些状态,只能生成概念稿,不能生成生产界面。
4. 过度数值化探索过程
在方向尚未确定时就规定全部颜色、字号和公式,会让模型失去发现更好方案的机会。数值精确性适合收敛和验收,不适合代替前期设计思考。
5. 让模型自行判断"是否还原"
模型对自己刚写出的代码存在明显上下文惯性。最可靠的反馈不是“我觉得已经很接近”,而是固定尺寸截图、结构化差异清单和可测试的验收时间线。
十三、个人设计 Skills 推荐与安装地址
下面列出本文实际盘点过、且能够确认公开上游仓库的设计相关 Skills。推荐级别指它在常规前端工作流中的适用范围,不代表 Skill 本身的质量排名。
表格链接的是截至本文更新时间可访问的公开上游版本。个人本地副本可能因为版本更新或二次调整与上游不同。安装前应阅读仓库中的
SKILL.md、脚本、依赖和许可证,不要仅凭安装量决定是否使用。
通用方向与完整工作流
| Skill | 推荐场景 | 定位与注意事项 | GitHub | 快速安装 |
|---|---|---|---|---|
frontend-design | 新建落地页、作品集、品牌页面 | Anthropic 的通用设计方向 Skill,体积较小,适合作为设计基线。与下面两个主设计 Skill 通常择一作为权威 | anthropics/skills | npx skills add anthropics/skills@frontend-design |
design-taste-frontend | 需要系统性反 AI 套路、设计旋钮和严格 pre-flight | 内容全面但上下文较重,适合视觉要求高的项目;不要再叠加多个同职责风格 Skill | leonxlnx/taste-skill | npx skills add leonxlnx/taste-skill@design-taste-frontend |
impeccable | 从设计、改造到审查的一体化工作流 | 包含 shape、critique、polish、adapt、animate、harden 等子流程,能力完整;应按其路由选择具体命令 | pbakaus/impeccable | npx skills add pbakaus/impeccable@impeccable |
这三个 Skill 都能承担主设计职责,通常选择一个即可:希望保持轻量可选 frontend-design;希望严格控制反套路与视觉变量可选 design-taste-frontend;希望获得覆盖设计、改造、审查和浏览器迭代的完整流程可选 impeccable。
视觉生成、转译与现有项目改造
| Skill | 推荐场景 | 定位与注意事项 | GitHub | 快速安装 |
|---|---|---|---|---|
imagegen-frontend-web | 先生成网页各 section 的视觉参考 | 强调一段一图、跨 section 一致性和可编码性;需要宿主具备图片生成能力 | leonxlnx/taste-skill | npx skills add leonxlnx/taste-skill@imagegen-frontend-web |
image-to-code | 将截图或生成图高保真转成前端代码 | 重点提取布局、字体、间距、颜色与组件细节,并提供 anti-drift 规则;适合已有清晰视觉输入时使用 | leonxlnx/taste-skill | npx skills add leonxlnx/taste-skill@image-to-code |
redesign-existing-projects | 在保留功能的前提下升级旧网站 | 先审计再修改,适合现有项目;需要同时遵守项目自己的目录和工程规范 | leonxlnx/taste-skill | npx skills add leonxlnx/taste-skill@redesign-existing-projects |
frontend-ui-engineering | 把设计实现成生产级界面 | 补充组件架构、响应式、WCAG、状态和工程验证,适合作为设计 Skill 的工程侧辅助 | addyosmani/agent-skills | npx skills add addyosmani/agent-skills@frontend-ui-engineering |
细节打磨、动效与验收
| Skill | 推荐场景 | 定位与注意事项 | GitHub | 快速安装 |
|---|---|---|---|---|
make-interfaces-feel-better | 页面整体方向正确,但细节仍然“感觉不对” | 聚焦圆角、阴影、光学对齐、字体、图标、点击反馈与动画细节,适合最后一公里打磨 | jakubkrehel/make-interfaces-feel-better | npx skills add jakubkrehel/make-interfaces-feel-better@make-interfaces-feel-better |
find-animation-opportunities | 判断哪些位置值得增加动效 | 只提出机会并明确拒绝不必要的动画,不直接实现,适合动效设计前的筛选 | emilkowalski/skills | npx skills add emilkowalski/skills@find-animation-opportunities |
review-animations | 审查已有动效代码 | 从目的、时长、缓动、可中断性、性能和 reduced motion 等方面严格验收 | emilkowalski/skills | npx skills add emilkowalski/skills@review-animations |
web-design-guidelines | UI、UX 和可访问性审查 | 检查型 Skill,适合实现完成后的独立验收,不应让它替代项目设计方向 | vercel-labs/agent-skills | npx skills add vercel-labs/agent-skills@web-design-guidelines |
明确风格型 Skills
| Skill | 推荐场景 | 定位与注意事项 | GitHub | 快速安装 |
|---|---|---|---|---|
minimalist-ui | 编辑感、克制、温和的极简界面 | 风格边界明确,会主动排斥渐变和重阴影;只在 Brief 确实需要这种视觉语言时使用 | leonxlnx/taste-skill | npx skills add leonxlnx/taste-skill@minimalist-ui |
industrial-brutalist-ui | 工业、战术终端、档案或数据密集界面 | 使用强网格、宏观排版和机械质感,不适合普通 SaaS 或轻量消费产品 | leonxlnx/taste-skill | npx skills add leonxlnx/taste-skill@industrial-brutalist-ui |
high-end-visual-design | 强视觉营销页和偏 Awwwards 的概念项目 | 倾向电影感、纹理、强动效和高端 agency 表达,规则较强;生产项目需额外审查性能与可访问性 | leonxlnx/taste-skill | npx skills add leonxlnx/taste-skill@high-end-visual-design |
风格型 Skills 不建议同时启用。它们的作用是明确选择一种视觉世界,而不是把极简、工业粗野和电影感混合成一个页面。
Codex 个人级安装
上表使用 Skills CLI 的通用快速命令。若希望明确安装为 Codex 的个人级 Skill,可以使用:
npx skills add <owner/repo> --skill <skill-name> -g -a codex例如:
npx skills add anthropics/skills --skill frontend-design -g -a codex
npx skills add leonxlnx/taste-skill --skill image-to-code -g -a codex
npx skills add emilkowalski/skills --skill review-animations -g -a codex安装后应检查个人 Skills 目录中是否生成对应的 SKILL.md,并重新开启一个任务确认 Skill 已被发现。不要一次安装全部 Skill:先从一个主设计 Skill、一个工程或转译 Skill、一个验收 Skill开始,只有在真实任务暴露能力缺口时再增加。
结语
借助 Skills 提升前端设计,真正要解决的不是“让 AI 学会某种高级风格”,而是建立一套对设计自由度进行动态管理的系统。
在创意阶段,Skill 应该提醒模型离开训练分布中心,主动思考字体、色彩、构图、动效和背景;在方向确定后,Skill 应该把审美判断冻结成 tokens、结构、组件家族和不可变约束;进入实现和验收阶段后,则要用视觉参考、精确数值、公式、截图和状态检查逐步消灭歧义。
可以把整套方法浓缩成一句话:
用 Skills 扩大设计的可能性,用设计契约锁定选择,用视觉证据和工程验证防止选择在落地过程中丢失。
最好的设计 Skill 不是让所有页面都拥有同一种“高级感”,而是让每一个页面都能解释自己的选择,并且在变成真实代码后,仍然看得出它最初为什么这样设计。
评论交流
支持作者