ismail c5f76b3855
Some checks are pending
Build and Push Docker Image / build (push) Waiting to run
updates
2026-05-11 14:45:30 +03:00

6.5 KiB
Raw Blame History

Design Context从已有上下文出发

这是这个skill最重要的one thing。

好的hi-fi设计一定是从已有design context长出来的。凭空做hi-fi是last resort一定会产出generic的作品。所以每次设计任务开始,先问:有没有可以参考的东西?

什么是Design Context

按优先级从高到低:

1. 用户的Design System/UI Kit

用户自己产品已有的组件库、色彩token、字型规范、icon系统。最完美的情况

2. 用户的Codebase

如果用户给了代码库里面就有活生生的组件实现。Read那些组件文件

  • theme.ts / colors.ts / tokens.css / _variables.scss
  • 具体的组件Button.tsx、Card.tsx
  • Layout scaffoldApp.tsx、MainLayout.tsx
  • Global stylesheets

读代码抄exact valueshex codes、spacing scale、font stack、border radius。不要凭记忆重画。

3. 用户已发布的产品

如果用户有上线的产品但没给代码用Playwright或让用户提供截图。

# 用Playwright截图一个公开URL
npx playwright screenshot https://example.com screenshot.png --viewport-size=1920,1080

让你看到真实的视觉vocabulary。

4. 品牌指南/Logo/已有素材

用户可能有Logo文件、品牌色规范、营销物料、slide模板。这些都是context。

5. 竞品参考

用户说"像XX网站那样"——让他提供URL或截图。不要凭你训练数据里的模糊印象做。

6. 已知的design systemfallback

如果以上都没有用公认的设计系统作为base

  • Apple HIG
  • Material Design 3
  • Radix Colors配色
  • shadcn/ui组件
  • Tailwind默认palette

明确告诉用户你用的什么,让他知道这是起点不是定稿。

获取Context的流程

Step 1问用户

任务开始时的必问清单(来自workflow.md

1. 你有现成的design system/UI kit/组件库吗?在哪?
2. 有品牌指南、色彩/字体规范吗?
3. 可以给我现有产品的截图或URL吗
4. 有codebase我可以读吗

Step 2用户说"没有"时,帮他找

别直接放弃。尝试:

让我看看有没有线索:
- 你之前的项目有相关设计吗?
- 公司的marketing网站用什么色彩/字型?
- 你产品的Logo什么风格能给我一张吗
- 有什么你欣赏的产品作为参考?

Step 3Read所有能找到的context

如果用户给了codebase路径你读

  1. 先list文件结构找style/theme/component相关的文件
  2. 读theme/token文件lift具体的hex/px values
  3. 读2-3个代表性组件看视觉vocabularyhover state、shadow、border、padding node pattern
  4. 读global stylesheet基础重置、font loading
  5. 如果有Figma链接/截图:看图,但更相信代码

重要不要看了一眼就凭印象做。读下来有30+个具体values才真的lift到了。

Step 4Vocalize你要用的系统

看完context后告诉用户你要用的系统

根据你的codebase和产品截图我提炼的设计系统

**色彩**
- Primary: #C27558从tokens.css
- Background: #FDF9F0
- Text: #1A1A1A
- Muted: #6B6B6B

**字型**
- Display: Instrument Serif从global.css的@font-face
- Body: Geist Sans
- Mono: JetBrains Mono

**Spacing**来自你的scale系统
- 4, 8, 12, 16, 24, 32, 48, 64

**Shadow pattern**
- `0 1px 2px rgba(0,0,0,0.04)`subtle card
- `0 10px 40px rgba(0,0,0,0.1)`elevated modal

**Border-radius**
- 小组件 4px卡片 12px按钮 8px

**component vocabulary**
- Buttonfilled primaryoutlined secondaryghost tertiary全部圆角8px
- Card白色背景subtle shadow无border

我按这套系统开始做。确认没问题?

用户确认后再动手。

凭空做设计没Context时的 fallback

强烈警告:这种情况下的产出质量会显著下降。明确告诉用户。

你没有design context我就只能基于通用直觉做。
产出会是"看起来OK但缺乏独特性"的东西。
你愿意继续,还是先补一些参考材料?

用户执意要你做,按这个顺序做决策:

1. 选一个aesthetic direction

不要给generic结果。挑一个明确方向

  • brutally minimal
  • editorial/magazine
  • brutalist/raw
  • organic/natural
  • luxury/refined
  • playful/toy
  • retro-futuristic
  • soft/pastel

告诉用户你选了哪个。

2. 选一个known design system作为骨架

3. 选有特点的字体配对

不要用Inter/Roboto。建议组合从Google Fonts白嫖

  • Instrument Serif + Geist Sans
  • Cormorant Garamond + Inter Tight
  • Bricolage Grotesque + Söhne付费
  • Fraunces + Work Sans注意Fraunces已经被AI用烂
  • JetBrains Mono + Geist Sanstechnical feel

4. 每个关键决策都有reasoning

不要默默选。在HTML的comment里写

<!--
Design decisions:
- Primary color: warm terracotta (oklch 0.65 0.18 25) — fits the "editorial" direction  
- Display: Instrument Serif for humanist, literary feel
- Body: Geist Sans for cleanness contrast
- No gradients — committed to minimal, no AI slop
- Spacing: 8px base, golden ratio friendly (8/13/21/34)
-->

Import策略用户给了codebase

如果用户说"import这个codebase做参考"

小型(<50文件

全部Read把context内化。

中型50-500文件

Focus在

  • src/components/components/
  • 所有styles/tokens/theme相关的文件
  • 2-3个代表性的整页组件Home.tsx、Dashboard.tsx

大型(>500文件

让用户指明focus

  • "我要做settings页面" → 读现有的settings相关
  • "我要做一个新的feature" → 读整体shell + 最接近的参考
  • 不求全,求准

和Figma/设计稿的配合

如果用户给了Figma链接

  • 不要期望你能直接"转Figma为HTML"——那需要额外工具
  • Figma链接通常不公开可访问
  • 让用户:导出为截图发给你 + 告诉你具体的color/spacing values

如果只给了Figma截图告诉用户

  • 我能看到视觉但取不到精确values
  • 关键数字hex、px请告诉我或者export as codeFigma支持

最后的提醒

一个项目的设计质量上限由你拿到的context质量决定

花10分钟收集context比花1小时凭空画hi-fi更有价值。

遇到没context的情况优先问用户要而不是硬上