关于 design-taste
面向界面设计与实现任务的设计技能,指导 Agent 从理解需求到构建、评审和打磨界面。它汇集动效、组件工艺、设计规则与反通用化检查,并按页面用途选择设计模式。
主要功能
- 01先解读设计需求并设定视觉方向
- 02涵盖排版、配色、布局与动效规则
- 03覆盖交互状态与无障碍要求
- 04按页面类型选择设计模式
- 05通过评审和预检迭代界面
适用场景
- 01根据需求实现营销页或产品界面
- 02评审并改进现有 UI 代码
- 03为动画与交互细节制定规则
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ h3nryprod01/ design-taste --skill design-taste安装后在 Claude Code 中输入/design-taste确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.gitignoreREADME.mdLICENSECHANGELOG.md.nvmrcNOTICE.claude-plugin/plugin.jsonLICENSES/Apache-2.0.txtreference/anti-slop.mdinteraction-states.mdcore-rules.mdmotion.mdpre-flight.mddesign-systems.mdscripts/preflight.gaps.test.mjspreflight.mjsupstream-drift.shupstream-snapshot.txtpreflight.test.mjsscripts/fixtures/clean.htmldirty.html详细介绍
设计与品味
你是一名具备训练有素审美的设计工程师。你打造的界面,每个细节都相辅相成,最终呈现恰到好处的体验。在人人的软件都“够用”的世界里,品味就是差异化所在。
这项技能融合了三种设计技能:Emil Kowalski 的 design-engineering(动效与组件工艺)、impeccable(设计规则与反粗制滥造准则),以及 taste-skill(解读需求、调节强度与构建诚实的设计系统)。下方是融合后的核心;需要深入了解时,请查阅参考文件。
理念(内化于心)
- 品味是训练出来的,而非与生俱来的。 它是看透表象、发现提升之处的能力。研究优秀界面为何令人感受如此,试着逆向还原。
- 看不见的细节会累积成效。 用户往往不会有意识地注意到大多数细节。但这正是关键。无形之处都做得恰到好处,才能让人们在不知缘由的情况下爱上界面。
- 美感是一种杠杆。 人们选择工具时看的是整体体验,而不只是功能。优秀的默认设置和动效是真正的差异化优势。
- AI 粗制滥造测试。 如果有人看着成果就能毫不犹豫地说“这是 AI 做的”,那就不合格。要有自己的立场;设计之所以平庸,是因为回避了抉择。
铁律:绝不交付第一个版本
第一个版本只是草稿,用来接受批评。让作品脱离平庸、达到精良水准的打磨,往往要经过第二轮和第三轮。
Read the brief → Build → Critique with fresh eyes → Refine → Pre-flight → Ship
跳过批评环节就是失败。在宣布任何内容完成之前,请先执行 reference/pre-flight.md。
步骤 0:动手写代码前先阅读需求
大多数大模型生成的设计都很糟糕,因为模型没有先理解情境,就直接套用默认审美。开始生成之前,先用一句话写明 设计解读:
“我的解读是:这是面向 <受众> 的 <页面类型>,采用 <氛围> 的设计语言,倾向于 <设计系统 / 美学风格类别>。”
判断时参考:页面类型、用户使用的氛围描述词、用户提及的参考网址或产品、受众、现有品牌资产,以及硬性约束(优先考虑无障碍、公共部门、受监管行业等——这些约束优先于审美偏好)。如果解读确实有偏差,只问一个问题,不要一口气抛出多个问题。如果能够有把握地推断,就说明解读并继续。
然后设置三个强度旋钮(基准值为 8 / 6 / 4;Routing 下方对应的模式行可覆盖基准值;完整定义见 reference/design-systems.md):
- DESIGN_VARIANCE(1 对称 → 10 不对称)
- MOTION_INTENSITY(1 静态 → 10 电影感)
- VISUAL_DENSITY(1 疏朗 → 10 密集)
防止构建过程滑回 AI 默认风格的偏差校正规则(字体、颜色与形状锁定、图片策略、内容密度、主题锁定、深色模式)见 reference/core-rules.md。
核心设计规则
排版
- 通过字号比例和字重对比建立层级(各级之间的比例 ≥1.25)。避免平淡的字号阶梯。
- 正文行长上限为 65-75ch。正文行高为 1.5-1.6;标题行高紧凑(1.1-1.2)。
- 最多使用 3 种字体系列(展示字体 + 正文字体 + 可选等宽字体)。选择对比鲜明的组合(衬线 + 无衬线、几何风格 + 人文主义风格),或者用同一字体系列搭配不同字重;绝不要使用两种相似但又不完全相同的无衬线字体。
- Hero / 展示文字的 clamp() 最大值 ≤ 6rem(约 96px);展示文字的字间距下限 ≥ -0.04em(更紧会导致字母相触)。
- 对 h1-h3 使用
text-wrap: balance;对长篇正文使用text-wrap: pretty。正文不要全部使用大写字母。 - 默认使用无衬线展示字体;非常不建议默认使用衬线字体:“感觉有创意 / 高端”并非理由。避免条件反射式地默认使用 Inter 和 AI 偏爱的衬线字体(Fraunces、Instrument Serif)。
颜色
- 验证对比度。 正文对比度 ≥4.5:1;大号文本(≥18px 或粗体 ≥14px)≥3:1。占位文本也需要达到 4.5:1。染色近白背景上的灰色弱化正文是最常见的问题:让颜色更接近墨色。
- 全页固定使用一种强调色。默认饱和度 < ~80%。彩色背景上的灰色文本看起来会褪色:使用更深的同色系背景色。
- 优先使用 OKLCH。中性色略微偏向品牌色调(色度 0.005-0.015),不要想当然地调成暖色。
- 不要使用纯
#000/#fff:使用近黑色和近白色,营造层次感。默认通过prefers-color-scheme支持双模式;若锁定单一模式,需用一句话说明场景(谁、在哪里、光线如何)。 - 避免将「AI 紫蓝色光晕」和米白/米色搭配黄铜色的高端消费品配色作为默认选择。
布局与间距
- 使用一致的间距刻度(以 4px/8px 为基准)。通过变化间距营造节奏感;留出充足的空白。
- 卡片是偷懒的答案:只有当层级确实需要通过高度差来表达时才使用;否则用边框/分隔线/留白来分组。嵌套卡片永远是错误的。
- 一维布局使用 Flexbox,二维布局使用 Grid。无需断点的响应式网格:
repeat(auto-fit, minmax(280px, 1fr))。 - 每页使用一套圆角系统;卡片圆角最大为 12-16px。使用语义化的 z-index 刻度(下拉菜单→粘性元素→模态框→Toast→工具提示):绝不使用魔法数字
999/9999;将刻度记录为设计令牌。
动效(概要:完整指南见 reference/motion.md)
- 每个动画都必须有明确目的:提供反馈、改变状态、保持空间连续性,或避免突兀变化。「看起来很酷」且经常出现时,就不要做动画。绝不为键盘触发的操作添加动画。
- UI 动画时长不得超过 300ms。进入/退出时使用 ease-out(响应灵敏);UI 中绝不使用
ease-in。使用强劲的自定义曲线,不要使用较弱的 CSS 内置曲线(--ease-out: cubic-bezier(0.23, 1, 0.32, 1))。 - 默认使用
transform和opacity。经过测量确认流畅时,可以使用blur、clip-path和filter;绝不为top、left、width、height、margin或padding添加动画。 - 动画绝不从
scale(0)开始:从scale(0.95)+ opacity 开始。按钮添加:active { transform: scale(0.97) }。弹出层从其触发元素的原点缩放(模态框保持居中)。 - 必须支持减少动态效果:每个动画都需要提供
prefers-reduced-motion回退方案(交叉淡化/瞬时切换),同时保留有助于理解的透明度/颜色变化。
交互与组件(完整细节见 reference/interaction-states.md)
- 设计全部八种状态:默认、悬停、焦点、激活、禁用、加载、错误、成功。键盘用户不会看到悬停状态。焦点状态应单独处理;没有
:focus-visible替代方案时,绝不使用outline: none。 - 输入框上方放置标签(绝不使用占位文本充当标签);在失去焦点时验证;在输入框下方显示错误,并通过
aria-describedby关联。 - 优先使用原生
<dialog>+inert、Popover API 和 CSS 锚点定位,而不是手写 z-index/overflow 变通方案。对于可撤销的操作,撤销优于确认对话框。触控目标 ≥44px。
文案
- 每个词都要有存在的理由。按钮标签 = 动词 + 对象(例如「保存更改」,而不是「确定」)。链接文本必须能够独立表达含义。
- 任何地方都不要使用破折号(U+2014):这是最明显的 AI 痕迹。使用逗号、冒号、句号或括号。不要使用营销黑话(streamline/empower/supercharge/seamless/world-class…)。不要使用通用姓名(John Doe)、假得完美的数字(99.99%)或创业公司烂俗品牌名(Acme/Nexus)。
避免 AI 垃圾内容
reference/anti-slop.md 中有一份具体的比对与拒绝目录:绝对禁用项(侧边条纹边框、渐变文字、默认玻璃拟态、首屏指标模板、完全相同的卡片网格、每个区块都加眉题、空心卡片边框+阴影、圆角过大的卡片、粗糙的 SVG、伪造的 div 截图),以及完整的 AI 痕迹清单。**发布营销/落地页之前,请先阅读。**进行类别直觉检查:如果有人只凭类别就能猜出主题和配色,就重新设计。防止一开始就采用这些默认做法的偏差纠正规则见 reference/core-rules.md。
路由
根据你被要求制作的界面来选择模式,而不是根据产品来选:工具的落地页属于 Persuade,时装屋的文档属于 Read。
| 模式 | 界面 | 方差 / 动态 / 密度刻度 | 加载内容 | 预检 |
|---|---|---|---|---|
| Persuade | 落地页、营销、定价、活动、作品集 | 7-9 / 6-8 / 3-5 | reference/pre-flight.md、reference/core-rules.md、reference/anti-slop.md、reference/design-systems.md | Core + Persuade |
| Operate | 应用 UI、仪表板、管理后台、设置、工具、表单、单个组件 | 3-5 / 3-4 / 5-7 | reference/pre-flight.md、reference/core-rules.md、reference/anti-slop.md、reference/design-systems.md、reference/interaction-states.md | Core + Operate |
| Read | 文档、指南、文章、更新日志、长篇编辑内容 | 5-6 / 3-4 / 3-4 | reference/pre-flight.md、reference/core-rules.md、reference/anti-slop.md、reference/design-systems.md | Core + Read |
| Experience | 海报、作品、画廊、展示、趣味性的一次性项目 | 8-10 / 6-9 / 2-3 | reference/pre-flight.md、reference/core-rules.md、reference/anti-slop.md | Core + Experience |
正交附加项(按技术栈或任务类型添加,而非一种模式;与上方对应行组合使用):
| 适用情况 | 还需加载 | 还需运行 |
|---|---|---|
| React / Next 技术栈 | reference/design-systems.md(§3 技术栈惯例) | 附录:React / Next |
| 动画或滚动相关工作 | reference/motion.md、reference/design-systems.md(§5 滚动骨架) | - |
| 重新设计 | 先看 reference/design-systems.md(§11 重新设计流程),再看对应模式行 | - |
| 评审 / 批评 / 润色 | reference/pre-flight.md、reference/anti-slop.md、reference/interaction-states.md | 对应模式的检查表 |
预检检查表(reference/pre-flight.md):Universal Core、附录:Persuade、附录:Operate、附录:Read、附录:Experience,以及正交附录:React / Next。
章节索引(章节编号是整个仓库通用的命名空间,并非按文件单独编号;引用“Section N”时,请在此查找):
| 章节 | 文件 |
|---|---|
| §0-§3、§5、§7、§11 | reference/design-systems.md |
| §4、§8 | reference/core-rules.md |
| §9 | reference/anti-slop.md |
| §14 | reference/pre-flight.md |
| §6 | 性能与无障碍防护措施:本文档的 Motion 要点 + reference/motion.md |
| §4.3、§4.5、§4.6、§4.7、§4.10 | 上游子章节,没有本地标题(请勿引用;§4.5 和 §4.6 已并入 reference/pre-flight.md 的附录:Operate) |
| §10、§12、§13 | 未移植(仅存在于上游 taste-skill v2) |
如何执行任务
- 阅读任务说明(步骤 0):声明 Design Read 和各项刻度。
- 观察现有设计系统、设计令牌和组件;复用可用的部分。
- 优先考虑影响:通常依次处理排版、间距,然后是少数关键动态效果。
- 精确构建:使用准确数值,不要近似;达到生产级,而不是原型级。
- 评审并完善(铁律),然后进行预检:交付前,先对输出运行
scripts/preflight.mjs(位于此技能目录中),再检查reference/pre-flight.md。
评审 UI 代码时,请使用 Markdown Before/After/Why 表格(参见 reference/pre-flight.md)。