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

214 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 values**hex codes、spacing scale、font stack、border radius。不要凭记忆重画。
### 3. 用户已发布的产品
如果用户有上线的产品但没给代码用Playwright或让用户提供截图。
```bash
# 用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`
```markdown
1. 你有现成的design system/UI kit/组件库吗?在哪?
2. 有品牌指南、色彩/字体规范吗?
3. 可以给我现有产品的截图或URL吗
4. 有codebase我可以读吗
```
### Step 2用户说"没有"时,帮他找
别直接放弃。尝试:
```markdown
让我看看有没有线索:
- 你之前的项目有相关设计吗?
- 公司的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后告诉用户你要用的系统
```markdown
根据你的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
**强烈警告**:这种情况下的产出质量会显著下降。明确告诉用户。
```markdown
你没有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作为骨架
- 用Radix Colors做配色https://www.radix-ui.com/colors
- 用shadcn/ui做组件vocabularyhttps://ui.shadcn.com
- 用Tailwind spacing scale4的倍数
### 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里写
```html
<!--
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的情况优先问用户要而不是硬上**