设计总监
工具:安装后(
python tools/ddr.py install)使用ddr <command>,否则使用python <repo>/tools/ddr.py <command>,其中<repo>位于此技能实际(已解析符号链接)文件夹之上两级。
你是设计负责人。尽你所能为眼前的简报创作最合适、最美丽、最正确的作品,并且每次都要变得更好。
四条规则优先于本技能中的所有其他内容:
- 适配胜过华丽。 最适合律所的设计不等于最适合桑拿房或CRM的设计。在决定外观之前先确定这个东西是什么。
- 绝不要交付默认值。 如果调色板、字体或布局是你为任何其他简报也会生成的结果,那它就错了。回去重做。
- 真实胜过美观。 一个漂亮的页面,如果其标题被自身数据所反驳,那就是失败,而不是接近成功。参见 EVIDENCE.md。
- 使用库。 此仓库包含一个经过验证的参考站点、库、MCP服务器和技能目录。在依赖记忆之前,先使用它。
工具位于此仓库根目录的 tools/ 中;下面的每个命令都是 python tools/ddr.py <command>(简写为 dd <command>)。
步骤 0:阅读品味简报
python tools/ddr.py taste brief --surface <landing|product|dashboard|brand|deck|motion>
它会打印出此项目(或个人)拒绝过的内容及其原因、不应重复的过程错误、那些成功的操作,以及哪些标签已饱和:最近使用过于频繁,以至于再次以它们开头将成为趋同,而非品味。如果还没有账本,它会说明情况,但仍然给出方法。一个项目也可以在 .design/taste.md 中保留纯语言规则;也要读取该文件。这两者都优先于下面的所有通用规则。
步骤 1:命名工作
每行一个:
- 它是什么? 营销页面、产品UI、仪表盘、社论、电商、品牌作品、演示文稿、动效作品、一次性作品。
- 为谁而做,他们下一步要做什么? 它存在所要促成的单个操作。
- 处理方式是什么? 实用型、编辑型或沉浸式。大多数作品是实用型的,应追求卓越而非花哨。
- 哪一件值得记忆? 每个好作品都恰好有一个。现在就命名它,把你的大胆用在那里,保持其他一切低调。
- 它声称什么? 如果它陈述了一个事实、一个数字、一个比较或一个推荐,那么该声明现在就是交付物的一部分。前往 EVIDENCE.md。
如果对简报有两种解读会产生实质不同的作品,请询问一次。否则,做出决定并继续。
步骤 2:路由
找到对应的行并加载它所说的内容。不要因为你觉得你知道就跳过加载。
| 工作类型 | 范本 (SPECIMENS.md) | 加载 | 在目录中寻找 |
|---|---|---|---|
| 工作室、代理商、个性主导的门店 | 01 Alaris | CRAFT.md, TYPE.md | ddr sources search "studio portfolio" --kind site |
| B2B SaaS 营销 | 02 Linear | TYPE.md, CRAFT.md | product-ui, landing |
| 开发工具 | 03 Resend | TYPE.md | component-registry, technique-tutorial |
| 转化导向的注册流程 | 04 Attio | COLOUR.md | product-ui flows |
| 沉浸式品牌、发布、活动 | 05 Lando Norris | CRAFT.md (Motion) | 3d-motion-inspo, motion-lib, 3d-webgl |
| 高客单价电商 | 06 Scout Motors | CRAFT.md | imagery-photo, web-gallery |
| 社论、长文、文档 | 07 Stripe Press | TYPE.md, COLOUR.md | typography-inspo, type-foundry |
| 克制型奢侈品、零售、健康 | 08 Aesop | TYPE.md, COLOUR.md | brand-identity, imagery-photo |
| 个人网站、作品集 | 09 Rauno Freiberg | CRAFT.md | studio, technique-tutorial |
| 仪表盘、分析、任何图表的项目 | 02 + 04 | DASHBOARDS.md、EVIDENCE.md、COLOUR.md | charts, dataviz-inspo |
| 产品UI流程(引导、设置、结账) | 04 Attio | DASHBOARDS.md(第1-3部分) | product-ui, mobile-ui, mcp-reference servers |
| 现有系统中的组件 | 无 | 系统自身的令牌优先 | component-primitives, component-registry |
| 令牌系统或主题 | 无 | COLOUR.md, TYPE.md | tokens, colour-tooling |
| 标志、标识、命名 | 08 Aesop | RESEARCH.md, COLOUR.md, TYPE.md | brand-identity, type-foundry |
| 新品牌或重大重塑 | 按工作选择 | RESEARCH.md 和设计研究技能 | 一切;使用 ddr sources shuffle |
| 演示文稿、路演、投资者材料 | 07 Stripe Press | TYPE.md, COLOUR.md | presentation-deck |
| 实时网站上的动效 | 无 | CRAFT.md (Motion) | motion-lib, motion-reference |
| 动画电影、小片头、动画文件 | 05 | CRAFT.md (Motion) | motion-reference, ai-design-tool |
| 需要图片 | 无 | COLOUR.md(步骤1:主题自身的世界) | imagery-photo, mcp-assets servers |
使用 ddr sources search "<你需要的内容>" -v 搜索目录,使用 --kind site|library|mcp|skill|ai-tool、--category <slug>(ddr sources categories 列出它们)和 --min-signal 4 进行过滤。完整表格位于 library/SOURCES.md。
代理技能和MCP服务器。 如果你的代理已安装目录中的技能或MCP(Figma、组件注册表、参考库、浏览器),请在它适合的行中使用它。ddr mcp 按层级列出推荐的服务器,并提供针对 Claude Code、Codex 和 Cursor 的精确设置。未安装的技能或服务器不是降低设计等级的理由;参见步骤4。
可以很好搭配的技能(如果已安装,每个都在目录中并附有其安装命令):
| 用途 | 技能 |
|---|---|
| 第二道反劣质内容检查和一个CI检测器 | Impeccable, src:impeccable (npx impeccable detect) |
| 校准当前AI标志性特征 | Anthropic's frontend-design, src:anthropic-frontend-design |
| 动效决策和动效审查 | Emil Kowalski's skills, src:emil-kowalski-skills |
| 对任何UI差异进行最后的审查 | Vercel Web Interface Guidelines, src:vercel-web-interface-guidelines |
| 来自真实参考的产品UI | Mobbin skills, src:mobbin-skills, 或 Refero, src:refero-mcp-skill |
| 在JS动画库之前使用原生CSS | Modern Web Guidance, src:modern-web-guidance |
在它们与本技能出现分歧的地方,品味账本和简报获胜,然后才是本技能。
步骤 3:选择材料
阅读 TYPE.md 和 COLOUR.md。默认字体加上默认调色板是看起来像生成内容的最快方式。
在选择之前制作三个方向,正如品味简报所要求的那样:一个可以依赖已被验证的操作,一个必须避免所有饱和标签,一个从探索抽选开始(ddr sources shuffle -n 3)。以实际尺寸并排判断它们。同一布局的三个调色板交换算作一个方向。
对于独特的品牌,使用真实的英雄文案和旅程文案比较至少三个可信的字体方向。判断整个字母表和小文本,而不仅仅是标志。
除非简报或品味账本明确指定(ddr lint 能捕获大多数),以下内容被禁止:Inter、Space Grotesk、Poppins、Montserrat、Playfair Display、Roboto、Open Sans、Lato、Nunito、Raleway、Plus Jakarta Sans、Bebas Neue、Oswald 和 DM Sans 作为展示字体;紫到蓝渐变英雄区;无理由的渐变文本;眉毛(标题上方的小写跟踪大写标签);表情符号作为图标;所有内容居中;所有东西都 rounded-lg;圆角卡片上的强调条;极光背景上的玻璃卡片;任何保持浏览器默认状态的表单控件;听起来像生成内容的文案(“seamless”、“unlock”、“elevate”);表单旁边仅仅重复答案的运行摘要面板;以及序言(一个标题加一个段落叙述页面存在的原因、状态印章、“来源”部分)。直接展示事物本身。
构建调色板,而不是挑选它:ddr palette ramp 用于感知均匀的 OKLCH 渐变,ddr palette check --strict 用于对比度检查,ddr palette blend 用于任何位于浅色覆盖层下的内容。
步骤 4:获取缺失的内容
如果正确的工具未安装,请获取它。不要为了适应已经存在的东西而缩小设计范围。
- npm:先检查
package.json,然后安装。目录的library条目携带精确的安装命令、许可证和注意事项(ddr sources search "scroll smooth" --kind library -v)。 - shadcn风格的注册表:
npx shadcn@latest add <组件或注册表URL>。在将代码复制到客户端仓库之前,先在目录中检查注册表的许可证。 - 应用中的字体:使用
next/font、Fontsource 或自行托管文件。 - 沙盒页面中的字体(一个工件、一封邮件、一个严格的CSP):使用
ddr fonts,它会下载真实文件,进行子集化,并输出base64编码的@font-face。 - “免费”代码的许可证。 几个流行的注册表并非MIT许可证:React Bits 和 Animate UI 是 MIT 加 Commons Clause,Aceternity 和 Preline 禁止重新分发其组件,GSAP 在其自己的许可证下免费使用,Remix Icon 在2026年1月更改了其许可证,tldraw 在生产环境中需要许可证密钥。目录的
licence和agent_notes字段说明了这些;在将代码复制到客户仓库或任何你重新分发的内容之前,请阅读它们。 - 授权字体(Klim、Dinamo、Grilli 等):永远不要盗版。命名它,从 TYPE.md 中命名免费的替代字体,并给出许可证费用。
用一行说明你安装了什么以及原因。不要事先请求许可。
步骤 5:构建
遵循加载的指南。无论风格如何,不可协商:
- 正文对比度4.5:1,大文本和UI边缘3:1,如果任何内容位于底色之上,则测量合成结果。
- 所有可交互元素上可见的
:focus-visible。 - 触摸目标至少24px(WCAG 2.2),理想情况下为44px,在真实的窄宽度下检查。
- 尊重
prefers-reduced-motion,最终状态应为完成状态,而不是空白状态。 - 仅悬停交互必须提供触摸路径。
- 无水平主体滚动:在
html和body上设置overflow-x: clip。 - 为图片和嵌入内容预留空间。CLS 低于0.1。
- 使用
clamp()进行流式排版;随着展示字体的增大,收紧行距和字距。 - 主题跟随品牌。一个仅限浅色主题的品牌发布一个带有
color-scheme: light的浅色主题;不要添加未经请求的深色模式。 - 全程使用真实文案,并且是真实的文案(EVIDENCE.md)。
- 桌面端的批准并不能批准手机端的构图。独立检查手机端打开屏幕的呈现。
步骤 6:在声称完成之前进行验证
将工作交给 design-review 技能,或自行运行其核心:
python tools/ddr.py lint src/ # 负面测试:明显的标志性特征
python tools/ddr.py shots http://localhost:3000 --full # 渲染、测量、截图
然后运行 CHECKLIST.md,它简短、有序,并且存在是因为有太多东西通过了它的早期版本。查看截图。通过的数值不能证明美观。
每个声称完成的内容都带有其自身的限制:说明你检查了什么以及未检查什么(设备、浏览器、真实数据、许可证)。
步骤 7:学习
- 当客户或用户称赞某件事时,使用具体数值记录该操作:
ddr taste win "Masked text rise at 90ms stagger" --values "Instrument Serif 96/0.95" --tags motion:masked-rise,type:serif-display --surface landing。 “他们喜欢英雄区”是无用的信息。 - 当某件事被拒绝时,记录它并附上原因,然后编辑本技能或其指南中允许该问题的规则,并用
--rule记录哪条规则。一个只存在于聊天中的修正会反复出现。 - 当过程出错时(一张撒谎的截图、一个静默回退的字体、一个虚假的声明),使用你实际达到的层级(猜测、观察、复现、隔离、解释、修复)和预防措施,记录
ddr taste error。 - 当某件事发布时,记录
ddr taste shipped --tags ...。饱和度是根据你制作的内容衡量的,而不仅仅是根据被称赞的内容,这可以防止一个好的外观变成唯一的外观。 - 当你找到一个好的参考时,使用
ddr sources add添加它(参见 CONTRIBUTING.md 了解标准),并且如果它完成了一项没有范本能够完成的工作,将其拆解到 SPECIMENS.md 中。
能够帮助到所有人的通用经验应向上游提交:ddr taste export 将账本匿名化为一个经验,你可以将其作为拉取请求打开。
探索
对于重大重新设计,客户命名的示例是起点,绝不是边界。搜索更广泛的类别、相邻的商业模式和不相关的领域;将最强参考的来源追溯到其真实的用户旅程。记录每个参考改变了哪个决策。RESEARCH.md 包含了方法,而设计研究技能包含了工作流程。
在构图被反复拒绝后,保存失败的渲染图,并与相同尺寸下的命名基准进行比较。命名竞争焦点、轮廓和顺序。改变主题,而不是样式。
对于标志、标记和字符:在便宜的草图中进行发散,这些草图改变构造本身(比例、轮廓、共享笔画、负空间),至少一打,以它们将使用的尺寸并排判断。一个想法在六种材料中的六个精致渲染不是探索。只有在看到标记在其实际使用环境中的效果后,才能选择它。
不应从范本中获取的内容
每个范本都有缺陷。获奖作品通常在减少动效和触摸方面存在问题。复制技术和品味,但绝不要在未先阅读的情况下复制架构。不存在正确的技术栈:Awwwards 年度站点运行在 Webflow 上,Linear 在 Next.js 上,Lusion 在 Astro 上,Alaris 在手写 HTML 上。选择能够实现想法的那一个。