toothpick · git:20261025.ff0c253 · 2026-10-25 · sha256 6f565565f73a31d9
toothpick git:20261025.ff0c253A
Immutable. This exact content never changes and is served at /api/v1/blob/6f565565f73a31d9.
--- name: toothpick description: "设计或修改任何用户界面时使用:网页、落地页、官网、后台管理、桌面软件、移动 App、组件、仪表盘、表单、深色模式、配色、字体排版、README、思维导图,也包括“做个页面”“美化一下”“改改样式”“写个前端”这类请求。帮助识别并去掉 AI 生成界面的模板感和常见缺陷,做出克制、精确、贴合产品本身的设计。Use for any UI, frontend, web, app, dashboard, README or diagram design task." --- # 牙签:去掉 AI 味,做出像样的界面 ## 这份指南是什么 这里没有"必须用什么字体""禁止用什么颜色"的规定。你可以用任何颜色、字体、布局。 它只做两件事: 1. **让你认出 AI 味**:哪些做法是 AI 不假思索的默认值,为什么一眼就会被认出来。 2. **让你避开常见缺陷**:哪些地方做错了会显得粗糙、廉价、不专业。 判断标准只有一条:**这个选择是为这个产品做的,还是换成任何产品你都会这么做?** 后者就是 AI 味。 用户明确指定的风格、品牌规范、已有代码风格永远优先,哪怕用户要的正好是下面列出的某种"AI 味"。 --- ## 什么是 AI 味 AI 在每个设计决定上都会滑向"最常见"的选项。它分两层: **第一层,老套路**:紫蓝渐变、emoji 图标、千篇一律的圆角卡片加灰阴影、"居中大标题 + 三张功能卡"的落地页、"释放无限可能"式的文案。这些已经很多人能认出来了。 **第二层,假装有设计感**:AI 被要求"别做得像 AI"之后,会换上另一套同样固定的打扮: - 米色纸张背景 + 衬线大标题 + 陶土色或暗红强调,假装"有温度、有品位" - 近黑背景 + 一个荧光绿 / 琥珀 / 朱红强调色 + 等宽字体,假装"很极客" - 报纸式黑色细线、零圆角、密集分栏,假装"很瑞士、很专业" - 每个标题上面加一行全大写小标签,到处是 "A · B · C" 的中点分隔,链接后面都加"→",小数据都用等宽字体,内容并不是步骤也标上"01 / 02 / 03" - 超大的装饰数字、为了不对称而不对称的布局、用终端提示符"$"或者"●"状态点当装饰 第二层更难察觉,因为它看起来"很有设计"。但它和第一层是同一个问题:**风格是套上去的,不是从产品里长出来的。** 完整的识别清单(每条都说明了为什么、以及什么时候其实可以用)见 `references/ai-tells.md`。 ## 好的界面长什么样 `references/benchmarks.md` 里有 Vercel、GitHub、ChatGPT、Google、Linear 的实测数据。它们的共同点: - 颜色很少,几乎只有黑白灰加一个功能色 - 一套字体,标题大但不粗 - 分隔很轻:留白、浅色细框、极淡阴影,而不是黑线和重阴影 - 产品本身是主角,装饰几乎为零 - 每一屏只有一个重点 这些是参照,不是模板。做咖啡店不该长得像 Vercel,但同样应该克制、精确、让内容当主角。 --- ## 工作流程 ### 1. 弄清楚这是什么:先读项目,再看访客来做什么 - **已有项目时,先读项目再动手。** 在写任何方案和代码之前,先弄清楚: - 项目真有哪些功能(看 README、路由、页面、接口,而不是凭页面标题猜) - 已有的组件、样式变量、图标库、字体,新界面要用它们,不要另起一套 - 数据模型和接口返回的真实字段,界面按真实字段来做 - 已有的文案用词,同一个东西保持同一个叫法 读完用几行写下"项目里有什么",后面的方案以它为准。读不到的部分(比如后端不在仓库里),直接问用户或者明确写出你的假设。 - 产品 / 内容是什么?给谁用?没说清楚时自己补一个具体假设,在回复里写一句,不要反复追问。 - **判断这个页面的模式**(按页面本身判断,不按产品判断:一个开发工具的官网是"说服",它的后台是"操作"): | 模式 | 访客的成功是什么 | 例子 | 设计的重心 | |---|---|---|---| | 说服 | 做出决定并行动 | 官网、落地页、活动页、定价页 | 有观点、有冲击力,用真实画面说服 | | 操作 | 完成任务 | 后台、仪表盘、编辑器、设置页、工具 | 好扫读、一致、高效,个性体现在精确的细节里 | | 阅读 | 看懂内容 | 文档、文章、帮助中心、更新日志 | 结构清楚,阅读体验舒服 | | 展示 | 沉浸在作品里 | 作品集、画廊、案例展示 | 作品领先,界面退后 | 对应参考:说服 / 展示看 `references/web.md`,操作看 `references/app-desktop.md`,移动端另看 `references/mobile.md`。项目 README 和放在 README 里的思维导图、结构图看 `references/readme.md`。 - **改版还是优化?** 优化要保留现有的风格、文案和行为,只改范围内的东西;改版才换掉整体视觉,但产品事实、内容和功能要保留。不要在旧风格上"打补丁式"地换风格。 ### 2. 盘点只属于这个对象的东西 写下 8–12 个**只属于这个客户、竞争对手没有**的具体事物:名字和它的含义、所在的街道和城市、门牌和招牌、用的材料和颜色、它的数字(座位数、海拔、营业年数)、它的限制(每月只烤一批、冬天歇业)、它的日常(早上五点点炉)、它世界里的印刷品(票据、标签、时刻表)。 设计的想法从这份清单里来,而不是从"这个行业的网站一般长什么样"里来。参考的开源 skill 做过盲测:胜出的页面都用了这类清单里的东西,输掉的页面构图不错,但用的是行业通用想法。 ### 3. 先写"论证",再决定板块 营销页每个板块都应该是一个**主张 + 证据**,一行写一个: ``` 首屏:本周烘了三支豆子,周五寄出 → 证据:三只豆袋、烘焙日期 豆单:每支豆子都写清楚产地和风味 → 证据:真实的产地、海拔、杯测记录 …… ``` 没有主张的板块就删掉。这样可以避免"首屏 + logo 墙 + 三列功能 + 评价 + 价格 + FAQ"的套路结构。 ### 4. 写一份简短方案 - 颜色:4–6 个色值,写清楚各自用在哪 - 字体:用哪几款,各自负责什么 - 布局:一句话说明思路,必要时画个简单的 ASCII 线框,写清楚对齐方式 - 主角:这个页面最有说服力的东西是什么,手上**真的有**什么素材(不要按不存在的图片来设计) ### 5. 对照方案自问:这是默认值还是选择? - 换一个类似的需求,我会不会得到差不多的方案?会 → 这一项是默认值,回到第 2 步的清单里找想法。 - 有没有中了 `references/ai-tells.md` 里的某一条?中了 → 改掉,或者能说出这个产品为什么需要它。 - 装饰是不是比内容还多? 改了什么、为什么,简单写在回复里。 ### 6. 实现 - 颜色、间距等用 CSS 变量统一管理;注意选择器优先级,避免类名之间互相覆盖(尤其是区块的 padding)。 - 示例内容要真实具体,数字要能对得上。 - 页面上展示产品界面时(比如 SaaS 官网首屏的截图位置),把它当成这个产品的一个真实片段来做:真实的数据、能对上的数字、一个明确的结论,而不是灰色色块和假数字。 - 做工细节见 `references/craft-details.md`。 ### 7. 看成品,批量修改,最后删掉一样东西 - 在实际尺寸下看:桌面、手机(约 375px)、深色模式(如果做了)。一次看完、一起改,不要每改一处就截一次图。 - 对照 `checklist.md`。 - 像出门前照镜子一样,去掉一件多余的装饰。 ### 克制不等于空 去掉装饰只是一半。一个去掉了小标签、细线、卡片却什么都没补上的页面会显得单薄,甚至不如一个有点 AI 味但内容丰富的页面。另一半是**实质**:更大胆的字号、整块的颜色、这个对象世界里的真实画面、每个板块都把内容写满。 交付时用一两句话说明设计思路,方便用户直接提修改方向;同时附上占位清单(见"不伪造,不糊弄开发者")。 ### 用户要求调整时 | 用户说 | 意思 | |---|---| | 更大胆一点 | 加大尺度对比、用整块颜色、让主角更大,而不是加装饰 | | 安静一点 / 太花了 | 减少颜色和动效、统一字号档位、去掉次要元素 | | 精简 | 删掉没有主张的板块和元素,只留核心 | | 再精致一点 | 做工细节:对齐、间距、圆角、阴影、状态、浏览器自带部件 | | 能上线吗 | 补齐报错、空状态、超长内容、多语言、各种边界情况 | --- ## 不伪造,不糊弄开发者 做出来的东西要让用户和开发者都清楚:哪些是真的,哪些还没做。 **不伪造给最终用户看的内容** - 不编造 logo、客户 logo 墙、合作伙伴标志;不用"$""▲""●"这类符号拼假 logo,没有 logo 就用产品名的纯文字。 - 不编造用户数、满意度、增长率、评价、媒体报道。 - 涉及专业事实(技术细节、规范、法规、数据)时先核对再写。写不准的地方宁可不写。 **不糊弄开发者** - **不编功能**:界面上出现的每个功能,项目里都要真的有,或者是用户明确要求做的。不要为了页面好看加上"智能推荐""一键导出"这类不存在的功能。 - **假数据不能冒充真数据**:能接真实接口就接;接不了时,模拟数据集中放在一个文件里(比如 `mock/`),字段和真实接口一致,代码里注明是模拟数据。不要把一堆假数字直接写死在组件里,让页面看起来"已经做完了"。 - **不做假交互**:没有接通的按钮、表单、链接,不能只做一个点击动画假装能用。要么禁用并写明"未接入",要么在交付说明里列出来。 - **从零做演示或概念稿时**可以虚构品牌和数据,但要在页面上标明是示例。 **交付时附一份占位清单** 在回复里列出离真正上线还差什么,例如: ``` 占位清单 - 模拟数据:mock/orders.ts(字段按 GET /api/orders 的返回结构) - 未接通:「导出 CSV」按钮,「订阅」表单提交 - 待替换:首页客户评价【待补充】、产品截图【待补充】 - 我的假设:退款状态只有三种(待处理、已退款、已拒绝),需要确认 ``` 没有占位就写"无"。 ## 文案 文字也是设计的一部分,套话和模板化布局一样有 AI 味。 - 说清楚是什么、做什么,而不是推销:❌"释放团队潜能" ✅"把会议录音整理成待办清单" - 按钮写会发生什么:❌"提交" ✅"保存修改"。同一个动作从头到尾用同一个词。 - 报错说清楚发生了什么、怎么解决,不道歉、不含糊。 - 空状态告诉用户下一步可以做什么。 - 不加没有用处的小标签、副标题、口号。 ## 质量底线 这些不需要特意提,但必须做到: - 文字对比度足够(正文至少 4.5:1) - 键盘焦点可见 - 每个可交互元素都有悬停、按下、禁用等状态 - 手机宽度下不横向滚动、不重叠、不截断 - 尊重"减少动态效果"的系统设置 - 加载中、空数据、出错这些状态也要设计 - 深色模式不是简单反色(见 `references/big-company-details.md`) ## 参考文件 | 文件 | 内容 | |---|---| | `references/ai-tells.md` | AI 味识别清单:是什么、为什么、什么时候可以用 | | `references/benchmarks.md` | Vercel、GitHub、ChatGPT、Google、Linear 实测数据 | | `references/craft-details.md` | 做工细节:圆角、阴影、对齐、图标、交互、表单、浏览器自带部件 | | `references/readme.md` | 项目 README 的结构和写法,以及 README 里思维导图的设计 | | `references/big-company-details.md` | 苹果、谷歌、IBM、微软规范里的细节(深色模式、动效、点击区域等) | | `references/typography.md` | 排版原则和中文字体的技术注意事项 | | `references/color.md` | 配色思路和深色模式实现 | | `references/web.md` | 网页 / 营销页常见问题 | | `references/app-desktop.md` | 软件 / 后台 / 桌面端常见问题 | | `references/mobile.md` | 移动端常见问题 | | `checklist.md` | 截图自评时用的问题清单 |