Communitygithub.com

wjgoarxiv/我的前端设计技能

屡获殊荣的前端设计技能,能生成手工打造、媲美人类水准的界面。可创建落地页、仪表盘、Web应用、组件和海报,拥有独特的字体排印、大胆的色彩体系、有意图的动效和空间构成——看起来就像昂贵的设计公司作品,绝非普通AI输出。

我的前端设计技能 是什么?

该技能是一个专门用于前端界面设计的AI代理技能,旨在生成具有高度设计品质和人类水准的UI输出,避免常见的AI模板化审美。它支持HTML/CSS、React、Vue和Svelte等多种框架,并内置了一套完整的设计思维协议,要求AI在编写代码前明确界面的目的、调性、约束和差异化元素。技能的核心是一份“反AI模板宣言”,明确禁止使用常见的AI默认字体、颜色、布局和动效,并提供了大量具体的替代方案和参考文件,如字体配对、色彩系统和布局模式。此外,它还包含了针对落地页、仪表盘、组件库和海报等不同输出类型的协议,以及验证清单,确保最终设计具有鲜明的品牌辨识度、强大的视觉锚点和独特的审美方向,而非平淡无奇的“干净现代”风格。该技能适用于各种前端创建任务,特别是当用户明确要求“漂亮”、“高级”、“获奖级别”或“不像AI生成”的界面时。

兼容平台✓Claude Code~Codex CLI✓Cursor
npx skills add wjgoarxiv/my-frontend-design-skill

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

前端设计技能

创建独特、可投入生产的前端界面,让人类无法识别出是AI生成的。每个输出都必须看起来像是昂贵的设计公司精心打造的作品——大胆、有目的、令人难忘。

设计思维协议

在编写任何代码之前,请完成此清单。不要跳过步骤。

1. 目的 — 这个界面解决什么问题?谁在使用它?

2. 调性 — 选择一个极端的美学方向。这是强制性的——切勿在未命名方向的情况下继续。

从以下选择(或以同等具体性自创):

  • 极致简约 | 混乱极繁 | 复古未来 | 有机/自然
  • 奢华编辑 | 粗野/原始 | 装饰艺术/几何 | 柔和/粉彩
  • 工业/实用 | 新孟菲斯 | 瑞士现代主义 | 日式简约
  • 复古未来终端 | 北欧宁静 | 东京霓虹 | 沙漠暖意

如果你不能用两个词命名调性,说明你还没有决定。“干净现代”不是一种调性——它是缺乏调性的表现,会产生AI模板化内容。

3. 约束 — 框架(HTML/React/Vue/Svelte)、浏览器支持、性能预算、现有品牌规范。

4. 差异化 — 用户会记住这个页面的哪一件事?在编码前明确说出。


反AI模板宣言

这些规则存在的原因是,大语言模型趋向于产生统计上的平均输出——令人愉悦、不冒犯,但也完全容易被遗忘。下面的模式被列入黑名单,并非因为它们本身不好,而是因为不加区分地使用它们是AI生成设计的第一信号。

黑名单字体

未经用户明确要求,切勿将这些字体用作主要显示字体:

字体原因替代选择
Inter#1 AI默认字体(约90%的大模型UI使用)Satoshi, General Sans, 或衬线字体如 Fraunces
Roboto#2 AI默认字体(Android/Chrome生态系统)Outfit, Plus Jakarta Sans(仅限正文), Karla
Arial / system-ui缺乏字体排印选择任何有意图的字体选择
Open Sans传统AI默认字体(2022年前训练数据)Source Sans 3, Nunito(仅限正文)
PoppinsFigma模板饱和度过高Figtree, Outfit, DM Sans(仅限正文)
Space Grotesk曾经独特,现已成为AI“奇特安全”默认字体Syne, Anybody, Chakra Petch
Montserrat过度使用的几何无衬线字体Josefin Sans, Barlow, Jost

规则: 如果某个字体在Google Fonts流行度前20名中,需要明确证明使用它的合理性,否则拒绝使用。请阅读 references/typography-pairings.md 获取20多个按调性组织的精选字体配对。

黑名单颜色

未经明确意图,切勿将这些颜色用作主要强调色:

颜色十六进制原因
Tailwind indigo-500#6366f1典型AI颜色。可追溯到Tailwind文档的单一决定。
Tailwind violet-500#8b5cf6第二常见的AI强调色。
Tailwind purple-500#a855f7indigo→purple渐变端点。
Tailwind blue-500#3b82f6“企业级”AI替代紫色。
AI渐变from-indigo-500 to-purple-600经典AI渐变及其所有变体。
纯白背景#ffffff, #f9fafb, #f8fafcAI从不探索深色主题、大地色系或氛围深度。

规则: 如果你的调色板可以由 npx create-next-app + Tailwind默认值重现,请重新开始。请阅读 references/color-systems.md 获取15个以上精选调色板。

黑名单布局

切勿生成以下结构:

  • 9段AI模板: 首屏 → 品牌标志条 → 三列特性 → “工作原理”步骤 → 客户评价轮播 → 定价表 → 常见问题手风琴 → 号召性用语横幅 → 四列页脚。这个精确序列出现在每一个AI生成的SaaS页面上。
  • 对称三列卡片网格 作为主要内容结构。
  • 居中一切 — 每个部分都 text-center,每个容器都 mx-auto,没有空间张力。
  • 一切皆卡片 — 每个内容块都 rounded-xl shadow-lg p-6,无论是否需要卡片处理。

规则: 每个布局必须至少有一个打破网格的元素:不对称、重叠、满幅出血、对角线流动或意想不到的负空间。请阅读 references/layout-patterns.md 获取线框图。

黑名单动效

  • 每个元素都通过IntersectionObserver进行 fade-in-up(通用的AI滚动揭示效果)
  • 每张卡片都 hover:-translate-y-1 hover:shadow-xl
  • 不加区分地应用 transition-all duration-300
  • 渐变颜色循环动画
  • 通用的视差效果

规则: 每页最多2-3个有意图的动效。每个动效必须服务于层级或氛围。请阅读 references/motion-recipes.md 获取12个以上独特的替代方案。

黑名单文案

切勿使用以下短语:

  • “革新你的工作流程” / “改变你……的方式”
  • “解锁……的力量” / “无缝集成……”
  • “为现代……而建” / “增强你的……”
  • “将你的X提升到新水平” / “你需要的一切……”
  • “告别[痛点]” / “由领先技术驱动……”

禁止使用的词汇(除非引用用户原话):无缝、杠杆、领先、稳健、可扩展、赋能、游戏规则改变者、下一级、整体、创新、尖端技术、深入探讨

文案规则: 标题承载具体含义。每个部分一个简短的支撑句。“如果删除30%能改进页面,那就继续删除。”

黑名单组件

  • 渐变号召性用语按钮(bg-gradient-to-r from-indigo-500 to-purple-600)
  • 默认的模糊背景导航栏(backdrop-blur-md bg-white/80)
  • 三列网格中的图标 + 标题 + 段落(通用功能块)
  • 首屏图片上的浮动徽章/药丸
  • 带有圆形头像和星级评分的客户评价轮播
  • 横向条带中的“受信赖于”标志云
  • 通用定价表(免费 / 专业 / 企业版,带有“最受欢迎”徽章)

字体排印系统

每个项目必须建立一个深思熟虑的字体系统:

  1. 展示 + 正文配对 — 两个不同的字体系列。展示 = 有特色,正文 = 可读。两者切勿使用同一字体。
  2. CSS变量 — --font-display、--font-body、--font-accent(可选等宽字体)
  3. 模块化比例 — 选择一个比率(1.25 大三度,1.333 纯四度,1.5 增四度)并一致应用
  4. 字重对比 — 使用至少3个字重,并有意图地对比(例如,正文300,副标题600,展示900)
  5. 尺寸戏剧性 — 展示标题应为正文大小的3倍以上。获奖作品使用12:1的比例(180px展示 / 14px正文)。AI默认使用胆怯的4:1比例。

请参阅 references/typography-pairings.md 获取20多个按美学调性组织的即用型配对。

色彩系统

  1. 主色 + 强调色模型 — 一个主导色系,搭配一个强烈对比的强调色。均匀分布的调色板显得胆怯。
  2. CSS自定义属性 — 至少定义:--color-surface、--color-text、--color-accent、--color-accent-contrast、--color-muted
  3. 氛围背景 — 切勿使用纯白背景。使用微妙的渐变、噪点纹理或染色表面。背景必须有深度。
  4. 深色/浅色作为有意选择 — 根据调性选择一个作为主色调。不要将深色模式作为一个复选框功能添加。

请参阅 references/color-systems.md 获取15个以上包含CSS变量块的精选调色板。

空间构成

  • 打破网格是强制性的 — 每页至少有一个元素必须打破网格:重叠、出血、不对称放置、对角线流动
  • 不对称布局 — 7/12 + 5/12的列分割,不同的间距(24px vs 64px),非均匀内边距
  • 满幅出血首屏 — 无继承间距或共享最大宽度约束的边到边图像
  • 负空间作为设计 — 宽大的空白是有意图的,而不是空的。不对称空白(顶部120px,底部80px)增加节奏感。
  • “每个部分只有一个任务” — 一个标题,一个支撑句,一个目的。没有部分试图做两件事。
  • 卡片仅用于交互 — 如果内容不需要边框/阴影也能正常运作,则不需要卡片。

请参阅 references/layout-patterns.md 获取6个落地页和3个仪表板布局线框图及CSS网格代码。

动效与动画

精确植入2-3个有意图的动效:

  1. 一个首屏入场动效 — 缩放 + 淡入、裁剪路径揭示、文字分割交错、或反向滚动视差
  2. 一个滚动相关效果 — 部分揭示、粘性视差图像、进度驱动变换、或横向滚动画廊
  3. 一个悬停/揭示交互 — 磁性光标、卡片透视倾斜、下划线展开、或色域移动

实现: 纯HTML使用CSS。React使用Framer Motion。Vue/Svelte使用内置过渡指令。专注于高影响时刻——一次编排良好的页面加载胜过零散的微交互。

请参阅 references/motion-recipes.md 获取12个以上包含CSS和Framer Motion版本的即用型配方。

背景与纹理

切勿默认使用纯色背景。营造氛围:

  • SVG噪点 — 使用 feTurbulence 滤镜在渐变上生成有机颗粒纹理
  • 渐变网格 — 4-6个重叠的径向渐变用于深度(非线性渐变)
  • 几何图案 — 通过CSS radial-gradient 或 linear-gradient 实现的点网格、线网格、交叉阴影线
  • 胶片颗粒 — 使用伪元素以3-5%的不透明度添加噪点纹理
  • 缓慢移动的环境动画 — 背景中持续时间30秒以上的极光/水滴关键帧动画

请参阅 references/background-textures.md 获取即用型SVG和CSS配方。

“人味儿”——昂贵设计师会添加的元素

在每个项目中至少包含以下2个:

  • 自定义光标 — 跟随鼠标的圆形div(20px),带有150ms的惯性延迟,悬停时展开
  • 不对称空白 — 非均匀内边距(120px 8% 80px 12%),不同的部分边距
  • 一个打破规则的元素 — 旋转2度的卡片、溢出视口的图像、颜色反转的部分
  • 响应内容的字体排印 — 侧边栏中的引文、首字母下沉、边距索引、根据重要性缩放字重
  • 滚动触发的颜色变换 — 部分背景颜色根据内容情感基调变化
  • 可变字体动画 — font-variation-settings 在滚动或悬停时动画字重

输出类型协议

落地页

结构:首屏 → 支撑 → 详情 → 最终号召性用语(4个部分,不是9个)

  • 首屏:满幅出血,品牌 + 标题 + 一句话 + 号召性用语 + 主导视觉。没有浮动徽章,没有多个号召性用语。
  • 支撑:一个具体的功能、优惠或证明点。
  • 详情:氛围、工作流程深度或故事。
  • 最终号召性用语:单一转化操作。
  • 视口预算:标头 + 首屏内容必须容纳在初始视口内。

仪表板 / 应用UI

遵循 “Linear式克制”:

  • 平静的层级表面,搭配强大的字体排印和间距
  • 最少的调色板(最多2-3种颜色)
  • 密集但可读的信息架构
  • 通过CSS Grid grid-template-areas 实现的侧边栏(240px)+ 主体 + 可选检查器(320px)
  • 单一清晰的强调色。没有卡片马赛克,没有产品UI后的装饰性渐变。

组件库

  • 首先建立设计令牌(CSS自定义属性)
  • 展示每个组件的深色和浅色变体
  • 原子化:令牌 → 元素 → 组件 → 组合
  • 每个组件必须能够在单独使用和组合使用中正常工作

海报 / 营销素材

  • 单一焦点,戏剧性的字体排印比例(100px+标题)
  • 高对比度颜色,印刷级布局
  • 设计数字海报,而不是包含海报内容的网页

Web应用

  • 功能优雅:键盘优先,清晰的信息层级
  • 状态管理在UI中可见(加载、空、错误、成功状态)
  • 密集信息展示,而非宽敞的营销布局

验证测试

在交付任何输出之前,请对照这些问题进行自我检查。如果超过2个答案为“否”,请在展示给用户之前进行迭代。

  1. 品牌/产品在初始视口中是否一目了然?
  2. 是否有一个强大的视觉锚点(而不是多个竞争元素)?
  3. 仅通过扫描标题是否能理解页面?
  4. 每个部分是否只有一个任务?
  5. 卡片是否真的必要,还是只是偷懒的默认选择?
  6. 设计是否有可命名的美学方向(不是“干净现代”)?
  7. 移除所有装饰性阴影后,设计看起来是否仍然高级?
  8. 是否至少有一个元素会让设计师说“我没想到这一点”?
  9. 它看起来像任何其他AI生成的页面吗?如果是,重新设计。

有关详细的20点评分标准,请参阅 references/anti-slop-checklist.md。

技术适配

框架字体排印动效样式
纯HTML/CSSGoogle Fonts @importCSS @keyframes + animation-timelineCSS自定义属性 + Grid/Flexbox
React / Next.jsnext/font 或 Google FontsFramer Motion(motion 组件)Tailwind(高度定制配置)或 CSS Modules
Vue在 index.html 中引入Google Fonts<Transition> 组件Tailwind(定制化)或 scoped 样式
Svelte在 app.html 中引入Google Fonts内置 transition: 指令带有CSS自定义属性的 scoped <style>

Tailwind规则: 如果使用Tailwind,你必须自定义 tailwind.config — 覆盖颜色、字体、圆角和阴影。默认的Tailwind配置会产生AI模板化内容。扩展,而非默认。

边缘情况

场景响应
用户未提供设计方向选择一个大胆的调性,解释你的选择,然后继续
用户说“干净简单”解释为瑞士现代主义极简风格,而非通用风格
用户提供品牌指南尊重这些指南,但提升设计——增加氛围深度、有意图的动效
用户说“像Apple/Linear”研究具体的原理(克制、密度、字体排印)——不要复制表面美学
模糊的“让它好看”除非上下文另有暗示,否则将其视为带有奢侈编辑调性的落地页
非常快速的请求使用 scripts/init_frontend.py 进行脚手架搭建,快速启动并展示典型模式
要求“不像AI”自动选择粗野主义/原始或奢华编辑调性。在你的请求回复中明确命名并辩护这个选择。使用你选择的调性的参考资料文件夹中的特定配对。确保打破网格。检查所有黑名单项目。
非常小的任务仍然是设计。仍然需要一个调性名称、字体配对和打破网格的一个元素。
现有项目使用CSS自定义属性来覆盖它们。主题切换器。不要重新设计你不允许触及的部分。
无头UI / 设计系统工作只提供令牌文件、组件结构和文档。除非要求,否则不包含示例页面。

在开始编码之前,始终选择你的参考资料:从参考资料目录加载配对、调色板、布局线框和动效配方。

相关技能