timelabs 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +30 -20
- package/package.json +1 -1
- package/skills/web-design/claude-code/SKILL.md +270 -0
- package/skills/web-design/claude-code/analyze/analyze-benchmark-rules.md +229 -0
- package/skills/web-design/claude-code/analyze/analyze-benchmark.md +302 -0
- package/skills/web-design/claude-code/analyze/analyze-mockup.md +572 -0
- package/skills/web-design/claude-code/collect/collect-app.md +258 -0
- package/skills/web-design/claude-code/collect/collect-desktop.md +231 -0
- package/skills/web-design/claude-code/collect/collect-hybrid.md +222 -0
- package/skills/web-design/claude-code/collect/collect-style.md +155 -0
- package/skills/web-design/claude-code/collect/collect-type.md +42 -0
- package/skills/web-design/claude-code/collect/collect-video.md +239 -0
- package/skills/web-design/claude-code/collect/collect-web.md +279 -0
- package/skills/web-design/claude-code/defs/ai-recommend/01-style-design-recommend.md +64 -0
- package/skills/web-design/claude-code/defs/ai-recommend.md +58 -0
- package/skills/web-design/claude-code/defs/app-layouts/02-utility.md +54 -0
- package/skills/web-design/claude-code/defs/app-layouts/03-social.md +71 -0
- package/skills/web-design/claude-code/defs/app-layouts/04-game.md +54 -0
- package/skills/web-design/claude-code/defs/app-layouts/05-fintech.md +62 -0
- package/skills/web-design/claude-code/defs/app-layouts/06-healthcare.md +66 -0
- package/skills/web-design/claude-code/defs/app-layouts/07-ecommerce.md +63 -0
- package/skills/web-design/claude-code/defs/app-layouts/08-education.md +88 -0
- package/skills/web-design/claude-code/defs/app-layouts/09-creative.md +86 -0
- package/skills/web-design/claude-code/defs/app-layouts.md +59 -0
- package/skills/web-design/claude-code/defs/app-motions/01-utility.md +51 -0
- package/skills/web-design/claude-code/defs/app-motions/02-social.md +55 -0
- package/skills/web-design/claude-code/defs/app-motions/03-game.md +52 -0
- package/skills/web-design/claude-code/defs/app-motions/04-fintech.md +52 -0
- package/skills/web-design/claude-code/defs/app-motions/05-healthcare.md +52 -0
- package/skills/web-design/claude-code/defs/app-motions/06-ecommerce.md +55 -0
- package/skills/web-design/claude-code/defs/app-motions/07-education.md +54 -0
- package/skills/web-design/claude-code/defs/app-motions/08-creative.md +53 -0
- package/skills/web-design/claude-code/defs/app-motions/10-intensity-preset-motion.md +12 -0
- package/skills/web-design/claude-code/defs/app-motions.md +64 -0
- package/skills/web-design/claude-code/defs/component-specs/01-set-component.md +24 -0
- package/skills/web-design/claude-code/defs/component-specs/02-features-flow.md +51 -0
- package/skills/web-design/claude-code/defs/component-specs/03-system-visual.md +193 -0
- package/skills/web-design/claude-code/defs/component-specs/04-interaction-pattern-visual.md +61 -0
- package/skills/web-design/claude-code/defs/component-specs/domains/admin.md +55 -0
- package/skills/web-design/claude-code/defs/component-specs/domains/dashboard.md +60 -0
- package/skills/web-design/claude-code/defs/component-specs/domains/erp.md +68 -0
- package/skills/web-design/claude-code/defs/component-specs/domains/saas.md +65 -0
- package/skills/web-design/claude-code/defs/component-specs.md +24 -0
- package/skills/web-design/claude-code/defs/design-guide-sections.md +37 -0
- package/skills/web-design/claude-code/defs/desktop-layouts/01-utility.md +69 -0
- package/skills/web-design/claude-code/defs/desktop-layouts/02-data.md +71 -0
- package/skills/web-design/claude-code/defs/desktop-layouts/03-creative.md +73 -0
- package/skills/web-design/claude-code/defs/desktop-layouts/04-communication.md +71 -0
- package/skills/web-design/claude-code/defs/desktop-layouts/05-game.md +73 -0
- package/skills/web-design/claude-code/defs/desktop-layouts/06-business.md +74 -0
- package/skills/web-design/claude-code/defs/desktop-layouts.md +49 -0
- package/skills/web-design/claude-code/defs/desktop-motions/01-utility.md +56 -0
- package/skills/web-design/claude-code/defs/desktop-motions/02-data.md +60 -0
- package/skills/web-design/claude-code/defs/desktop-motions/03-creative.md +60 -0
- package/skills/web-design/claude-code/defs/desktop-motions/04-communication.md +57 -0
- package/skills/web-design/claude-code/defs/desktop-motions/05-game.md +55 -0
- package/skills/web-design/claude-code/defs/desktop-motions/06-business.md +52 -0
- package/skills/web-design/claude-code/defs/desktop-motions.md +75 -0
- package/skills/web-design/claude-code/defs/hybrid-layouts/01-web_mobile.md +81 -0
- package/skills/web-design/claude-code/defs/hybrid-layouts/02-web_desktop.md +78 -0
- package/skills/web-design/claude-code/defs/hybrid-layouts/03-mobile_desktop.md +79 -0
- package/skills/web-design/claude-code/defs/hybrid-layouts/04-all.md +81 -0
- package/skills/web-design/claude-code/defs/hybrid-layouts.md +49 -0
- package/skills/web-design/claude-code/defs/hybrid-motions/01-web_mobile.md +69 -0
- package/skills/web-design/claude-code/defs/hybrid-motions/02-web_desktop.md +69 -0
- package/skills/web-design/claude-code/defs/hybrid-motions/03-mobile_desktop.md +74 -0
- package/skills/web-design/claude-code/defs/hybrid-motions/04-all.md +96 -0
- package/skills/web-design/claude-code/defs/hybrid-motions/07-intensity-preset-motion.md +16 -0
- package/skills/web-design/claude-code/defs/hybrid-motions.md +65 -0
- package/skills/web-design/claude-code/defs/ia-patterns/01-management-dashboard.md +37 -0
- package/skills/web-design/claude-code/defs/ia-patterns/05-video.md +33 -0
- package/skills/web-design/claude-code/defs/ia-patterns/06-video_saas-saas.md +37 -0
- package/skills/web-design/claude-code/defs/ia-patterns.md +85 -0
- package/skills/web-design/claude-code/defs/icon-mappings/04-mapping-design-system.md +25 -0
- package/skills/web-design/claude-code/defs/icon-mappings.md +49 -0
- package/skills/web-design/claude-code/defs/icon-usage.md +56 -0
- package/skills/web-design/claude-code/defs/illustration-guide.md +44 -0
- package/skills/web-design/claude-code/defs/image-strategies/01-landing.md +76 -0
- package/skills/web-design/claude-code/defs/image-strategies/02-dashboard.md +51 -0
- package/skills/web-design/claude-code/defs/image-strategies/03-ecommerce.md +47 -0
- package/skills/web-design/claude-code/defs/image-strategies/04-blog.md +58 -0
- package/skills/web-design/claude-code/defs/image-strategies/05-saas.md +56 -0
- package/skills/web-design/claude-code/defs/image-strategies/06-portfolio.md +62 -0
- package/skills/web-design/claude-code/defs/image-strategies/08-strategy-common-image.md +57 -0
- package/skills/web-design/claude-code/defs/image-strategies.md +58 -0
- package/skills/web-design/claude-code/defs/seo-guide.md +79 -0
- package/skills/web-design/claude-code/defs/styles/02-style-list.md +421 -0
- package/skills/web-design/claude-code/defs/styles/03-custom-animation-keyframes.md +39 -0
- package/skills/web-design/claude-code/defs/styles.md +50 -0
- package/skills/web-design/claude-code/defs/tokens/01-token-format.md +75 -0
- package/skills/web-design/claude-code/defs/tokens/02-token-scope.md +251 -0
- package/skills/web-design/claude-code/defs/tokens.md +24 -0
- package/skills/web-design/claude-code/defs/video-compositions/01-composition-single.md +66 -0
- package/skills/web-design/claude-code/defs/video-compositions/02-composition-multi.md +66 -0
- package/skills/web-design/claude-code/defs/video-compositions/03-composition-parametric.md +81 -0
- package/skills/web-design/claude-code/defs/video-compositions.md +37 -0
- package/skills/web-design/claude-code/defs/video-motions/01-animation-basic.md +49 -0
- package/skills/web-design/claude-code/defs/video-motions/02-animation.md +52 -0
- package/skills/web-design/claude-code/defs/video-motions/03-reference.md +17 -0
- package/skills/web-design/claude-code/defs/video-motions/05-pattern-composition.md +61 -0
- package/skills/web-design/claude-code/defs/video-motions/06-transition-effects.md +49 -0
- package/skills/web-design/claude-code/defs/video-motions/07-audio-sync.md +29 -0
- package/skills/web-design/claude-code/defs/video-motions.md +55 -0
- package/skills/web-design/claude-code/defs/web-layouts/01-landing.md +101 -0
- package/skills/web-design/claude-code/defs/web-layouts/02-dashboard.md +85 -0
- package/skills/web-design/claude-code/defs/web-layouts/03-ecommerce.md +73 -0
- package/skills/web-design/claude-code/defs/web-layouts/04-blog.md +69 -0
- package/skills/web-design/claude-code/defs/web-layouts/05-saas.md +83 -0
- package/skills/web-design/claude-code/defs/web-layouts/06-portfolio.md +62 -0
- package/skills/web-design/claude-code/defs/web-layouts.md +38 -0
- package/skills/web-design/claude-code/defs/web-motions/01-landing.md +91 -0
- package/skills/web-design/claude-code/defs/web-motions/02-dashboard.md +55 -0
- package/skills/web-design/claude-code/defs/web-motions/03-ecommerce.md +52 -0
- package/skills/web-design/claude-code/defs/web-motions/04-blog.md +57 -0
- package/skills/web-design/claude-code/defs/web-motions/05-saas.md +49 -0
- package/skills/web-design/claude-code/defs/web-motions/06-portfolio.md +73 -0
- package/skills/web-design/claude-code/defs/web-motions/08-intensity-preset-motion.md +14 -0
- package/skills/web-design/claude-code/defs/web-motions.md +55 -0
- package/skills/web-design/claude-code/gen/gen-design-guide/01-project-overview.md +304 -0
- package/skills/web-design/claude-code/gen/gen-design-guide-interaction/01-interaction-motion.md +129 -0
- package/skills/web-design/claude-code/gen/gen-design-guide-interaction/04-project-video.md +69 -0
- package/skills/web-design/claude-code/gen/gen-design-guide-interaction.md +45 -0
- package/skills/web-design/claude-code/gen/gen-design-guide.md +43 -0
- package/skills/web-design/claude-code/gen/gen-tokens/01-generate-process.md +318 -0
- package/skills/web-design/claude-code/gen/gen-tokens/02-structure-output-file.md +31 -0
- package/skills/web-design/claude-code/gen/gen-tokens/03-connect-frontend.md +150 -0
- package/skills/web-design/claude-code/gen/gen-tokens.md +54 -0
- package/skills/web-design/claude-code/gen/gen-video.md +73 -0
- package/skills/web-design/claude-code/verify/verify-components.md +52 -0
- package/skills/web-design/claude-code/verify/verify-motions.md +74 -0
- package/skills/web-design/claude-code/verify/verify-pipeline.md +69 -0
- package/skills/web-design/claude-code/verify/verify-report.md +75 -0
- package/skills/web-design/claude-code/verify/verify-responsive.md +49 -0
- package/skills/web-design/claude-code/verify/verify-tokens.md +84 -0
- package/skills/test-skill/claude-code/SKILL.md +0 -7
- package/skills/test-skill/cursor/test-skill.md +0 -7
- package/skills/test-skill/openclaw/SKILL.md +0 -13
- package/skills/test-skill/skill.json +0 -6
|
@@ -0,0 +1,572 @@
|
|
|
1
|
+
# 디자인 목업 분석
|
|
2
|
+
|
|
3
|
+
> 원본: commands/design-mockup-analyzer.md
|
|
4
|
+
> Dependencies: defs/web-layouts.md, defs/web-motions.md
|
|
5
|
+
|
|
6
|
+
## 개요
|
|
7
|
+
|
|
8
|
+
디자인 목업 파일(이미지, HTML, Figma Export 등) 또는 웹사이트 URL을 체계적으로 분석하여 개발에 필요한 정보를 추출합니다.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 분석 결과 저장 (.design 폴더)
|
|
13
|
+
|
|
14
|
+
**모든 분석 결과는 프로젝트 루트의 `.design/` 폴더에 저장됩니다.**
|
|
15
|
+
|
|
16
|
+
### 폴더 구조
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
.design/
|
|
20
|
+
└── [site-name]/ # 예: seaart-ai/
|
|
21
|
+
├── analysis.json # 전체 분석 데이터 (JSON)
|
|
22
|
+
├── design-tokens.css # CSS 변수 (색상, 타이포, 간격)
|
|
23
|
+
├── dom-structure.md # DOM 계층 구조
|
|
24
|
+
├── components.md # 컴포넌트 인벤토리
|
|
25
|
+
├── screenshots/ # 캡처 이미지
|
|
26
|
+
│ ├── desktop.png
|
|
27
|
+
│ ├── tablet.png
|
|
28
|
+
│ └── mobile.png
|
|
29
|
+
└── clone.html # 생성된 클론 HTML
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### 저장 파일 설명
|
|
33
|
+
|
|
34
|
+
| 파일 | 내용 | 용도 |
|
|
35
|
+
|------|------|------|
|
|
36
|
+
| `analysis.json` | 모든 분석 데이터 통합 | HTML 생성 시 참조 |
|
|
37
|
+
| `design-tokens.css` | CSS 변수 정의 | 스타일 복사/붙여넣기 |
|
|
38
|
+
| `dom-structure.md` | DOM 트리 + 클래스명 | 구조 파악 |
|
|
39
|
+
| `components.md` | 컴포넌트 목록 + 스타일 | 개발 체크리스트 |
|
|
40
|
+
| `clone.html` | 완성된 클론 HTML | 최종 산출물 |
|
|
41
|
+
|
|
42
|
+
### analysis.json 구조
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"meta": {
|
|
47
|
+
"url": "https://example.com",
|
|
48
|
+
"analyzedAt": "2024-01-20T12:00:00Z",
|
|
49
|
+
"framework": "Nuxt.js",
|
|
50
|
+
"uiLibrary": ["Element UI"]
|
|
51
|
+
},
|
|
52
|
+
"layout": {
|
|
53
|
+
"pattern": "Dashboard",
|
|
54
|
+
"sidebar": { "width": "240px", "position": "fixed" },
|
|
55
|
+
"content": { "maxWidth": "1280px" },
|
|
56
|
+
"header": { "height": "108px" }
|
|
57
|
+
},
|
|
58
|
+
"colors": {
|
|
59
|
+
"primary": "#CA75FF",
|
|
60
|
+
"background": "#000000",
|
|
61
|
+
"text": "#FFFFFF",
|
|
62
|
+
"secondary": "#1E2A3B"
|
|
63
|
+
},
|
|
64
|
+
"typography": {
|
|
65
|
+
"fontFamily": "PingFang SC, sans-serif",
|
|
66
|
+
"h1": "28px",
|
|
67
|
+
"h2": "18px",
|
|
68
|
+
"body": "16px"
|
|
69
|
+
},
|
|
70
|
+
"dom": {
|
|
71
|
+
"tree": { },
|
|
72
|
+
"sections": [ ]
|
|
73
|
+
},
|
|
74
|
+
"components": [ ],
|
|
75
|
+
"images": {
|
|
76
|
+
"summary": {
|
|
77
|
+
"totalDomImages": 15,
|
|
78
|
+
"totalVisualImages": 18,
|
|
79
|
+
"compositeImages": 2
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"dynamicEffects": {
|
|
83
|
+
"detected": [
|
|
84
|
+
{
|
|
85
|
+
"element": ".panel-item",
|
|
86
|
+
"effects": ["hover-zoom-intense"],
|
|
87
|
+
"css": "transform: scale(1.08) on hover"
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 워크플로우
|
|
97
|
+
|
|
98
|
+
### 1. 분석만 수행
|
|
99
|
+
```
|
|
100
|
+
"seaart.ai 분석해줘"
|
|
101
|
+
→ .design/seaart-ai/ 폴더 생성
|
|
102
|
+
→ 분석 결과 파일들 저장
|
|
103
|
+
→ 분석 리포트 출력
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### 2. 분석 + HTML 생성
|
|
107
|
+
```
|
|
108
|
+
"seaart.ai 분석하고 HTML 만들어줘"
|
|
109
|
+
→ .design/seaart-ai/ 폴더 생성
|
|
110
|
+
→ 분석 결과 저장
|
|
111
|
+
→ analysis.json 기반으로 clone.html 생성
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 3. 기존 분석 활용
|
|
115
|
+
```
|
|
116
|
+
"seaart HTML 다시 만들어줘"
|
|
117
|
+
→ .design/seaart-ai/analysis.json 읽기
|
|
118
|
+
→ 저장된 데이터로 clone.html 재생성
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## 공유 컨텍스트 연동
|
|
124
|
+
|
|
125
|
+
### 시작 시 읽기
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
1. Read 도구로 .claude/project-context.json 읽기
|
|
129
|
+
2. 파일이 있으면:
|
|
130
|
+
- design.style → 스타일 참조 (색상 해석에 활용)
|
|
131
|
+
- design.theme → dark/light 모드 참조
|
|
132
|
+
- design.token_format → 토큰 출력 형식 참조
|
|
133
|
+
- tech_stack.frontend → 프레임워크별 컴포넌트 권장
|
|
134
|
+
3. 파일이 없으면 → 무시하고 정상 진행
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### 분석 완료 시 쓰기 (선택적)
|
|
138
|
+
|
|
139
|
+
분석 결과 중 프로젝트 디자인 정보를 context에 기록합니다.
|
|
140
|
+
|
|
141
|
+
```json
|
|
142
|
+
{
|
|
143
|
+
"last_updated": "{현재 시간}",
|
|
144
|
+
"updated_by": "/web-design",
|
|
145
|
+
|
|
146
|
+
"design": {
|
|
147
|
+
"analyzed_sources": ["{분석한 파일/URL 목록}"],
|
|
148
|
+
"detected_colors": {
|
|
149
|
+
"primary": "{추출된 primary color}",
|
|
150
|
+
"secondary": "{추출된 secondary color}"
|
|
151
|
+
},
|
|
152
|
+
"detected_layout": "{식별된 레이아웃 패턴}",
|
|
153
|
+
"detected_components": ["{식별된 컴포넌트 목록}"]
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
> **주의**: design.style, design.theme 등 기존 필드는 보존! 새 필드만 추가(merge).
|
|
159
|
+
> 참조: `~/.claude/skills/shared/context-rules.md`
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## 분석 대상
|
|
164
|
+
|
|
165
|
+
| 입력 타입 | 예시 | 분석 방법 |
|
|
166
|
+
|----------|------|----------|
|
|
167
|
+
| **로컬 파일** | design/*.png, *.html | Read 도구로 직접 분석 |
|
|
168
|
+
| **웹사이트 URL** | https://example.com | Chrome 브라우저로 실시간 분석 |
|
|
169
|
+
| **Figma Export** | design.json | JSON 파싱 후 분석 |
|
|
170
|
+
|
|
171
|
+
## 분석 프로세스
|
|
172
|
+
|
|
173
|
+
### 1단계: 파일 스캔
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
design/ # 목업 이미지 및 HTML
|
|
177
|
+
├── *.png, *.jpg # 스크린샷/목업 이미지
|
|
178
|
+
├── *.html # HTML 프로토타입
|
|
179
|
+
└── assets/ # 아이콘, 이미지 에셋
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
먼저 `design/` 폴더 또는 사용자가 지정한 경로에서 분석할 파일들을 찾습니다.
|
|
183
|
+
|
|
184
|
+
### 2단계: 시각적 분석 (이미지 파일)
|
|
185
|
+
|
|
186
|
+
이미지 파일을 읽고 다음을 분석합니다:
|
|
187
|
+
|
|
188
|
+
#### 색상 팔레트
|
|
189
|
+
- **Primary Color**: 주요 브랜드 색상
|
|
190
|
+
- **Secondary Color**: 보조 색상
|
|
191
|
+
- **Accent Color**: 강조 색상
|
|
192
|
+
- **Background Colors**: 배경색 (light/dark)
|
|
193
|
+
- **Text Colors**: 텍스트 색상 계층
|
|
194
|
+
- **Status Colors**: success, warning, error, info
|
|
195
|
+
|
|
196
|
+
출력 형식:
|
|
197
|
+
```css
|
|
198
|
+
:root {
|
|
199
|
+
--color-primary: #3B82F6;
|
|
200
|
+
--color-secondary: #6366F1;
|
|
201
|
+
--color-accent: #F59E0B;
|
|
202
|
+
--color-bg-light: #FFFFFF;
|
|
203
|
+
--color-bg-dark: #1F2937;
|
|
204
|
+
--color-text-primary: #111827;
|
|
205
|
+
--color-text-secondary: #6B7280;
|
|
206
|
+
}
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
#### 타이포그래피
|
|
210
|
+
- 폰트 패밀리 추정
|
|
211
|
+
- 제목 크기 계층 (h1~h6)
|
|
212
|
+
- 본문 텍스트 크기
|
|
213
|
+
- 줄 높이 및 자간
|
|
214
|
+
|
|
215
|
+
출력 형식:
|
|
216
|
+
```css
|
|
217
|
+
:root {
|
|
218
|
+
--font-family-heading: 'Inter', sans-serif;
|
|
219
|
+
--font-family-body: 'Inter', sans-serif;
|
|
220
|
+
--font-size-h1: 2.5rem;
|
|
221
|
+
--font-size-h2: 2rem;
|
|
222
|
+
--font-size-h3: 1.5rem;
|
|
223
|
+
--font-size-body: 1rem;
|
|
224
|
+
--font-size-small: 0.875rem;
|
|
225
|
+
--line-height-normal: 1.5;
|
|
226
|
+
}
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
#### 간격 시스템
|
|
230
|
+
- 여백 패턴 (4px, 8px, 16px, 24px, 32px...)
|
|
231
|
+
- 컴포넌트 간 간격
|
|
232
|
+
- 섹션 간 간격
|
|
233
|
+
|
|
234
|
+
### 3단계: 컴포넌트 식별
|
|
235
|
+
|
|
236
|
+
목업에서 반복되는 UI 패턴을 식별합니다:
|
|
237
|
+
|
|
238
|
+
#### 기본 컴포넌트
|
|
239
|
+
- [ ] Button (Primary, Secondary, Ghost, Disabled)
|
|
240
|
+
- [ ] Input (Text, Password, Search, Textarea)
|
|
241
|
+
- [ ] Checkbox / Radio / Toggle
|
|
242
|
+
- [ ] Select / Dropdown
|
|
243
|
+
- [ ] Badge / Tag / Chip
|
|
244
|
+
- [ ] Avatar
|
|
245
|
+
- [ ] Icon
|
|
246
|
+
|
|
247
|
+
#### 복합 컴포넌트
|
|
248
|
+
- [ ] Card
|
|
249
|
+
- [ ] Modal / Dialog
|
|
250
|
+
- [ ] Navigation (Header, Sidebar, Tabs)
|
|
251
|
+
- [ ] Table / List
|
|
252
|
+
- [ ] Form
|
|
253
|
+
- [ ] Toast / Alert
|
|
254
|
+
|
|
255
|
+
#### 레이아웃 컴포넌트
|
|
256
|
+
- [ ] Container
|
|
257
|
+
- [ ] Grid System
|
|
258
|
+
- [ ] Flex Layout
|
|
259
|
+
- [ ] Stack (Vertical/Horizontal)
|
|
260
|
+
|
|
261
|
+
### 4단계: 레이아웃 분석
|
|
262
|
+
|
|
263
|
+
#### 레이아웃 패턴 매칭
|
|
264
|
+
|
|
265
|
+
참조: defs/web-layouts.md
|
|
266
|
+
|
|
267
|
+
목업을 분석하여 레이아웃 패턴 레퍼런스에서 매칭되는 패턴을 식별합니다.
|
|
268
|
+
|
|
269
|
+
#### 그리드 시스템 분석
|
|
270
|
+
- 컬럼 수 (12-column 등)
|
|
271
|
+
- Gutter 크기
|
|
272
|
+
- 컨테이너 최대 너비
|
|
273
|
+
- 브레이크포인트 추정
|
|
274
|
+
|
|
275
|
+
```css
|
|
276
|
+
/* 추정 브레이크포인트 */
|
|
277
|
+
--breakpoint-sm: 640px;
|
|
278
|
+
--breakpoint-md: 768px;
|
|
279
|
+
--breakpoint-lg: 1024px;
|
|
280
|
+
--breakpoint-xl: 1280px;
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
#### 레이아웃 출력 형식
|
|
284
|
+
|
|
285
|
+
분석된 레이아웃을 ASCII 다이어그램으로 표현:
|
|
286
|
+
|
|
287
|
+
```
|
|
288
|
+
예시: Dashboard 레이아웃
|
|
289
|
+
┌─────────────────────────────────────────┐
|
|
290
|
+
│ Logo │ Top Navigation │ │
|
|
291
|
+
├────────┼────────────────────────────────┤
|
|
292
|
+
│ │ ┌────────┐ ┌────────┐ ┌──────┐│
|
|
293
|
+
│ Side │ │ Metric │ │ Metric │ │Metric││
|
|
294
|
+
│ bar │ └────────┘ └────────┘ └──────┘│
|
|
295
|
+
│ │ ┌─────────────────────────────┐│
|
|
296
|
+
│ │ │ Data Table ││
|
|
297
|
+
│ │ └─────────────────────────────┘│
|
|
298
|
+
└────────┴────────────────────────────────┘
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
### 5단계: DOM 구조 분석 (URL 분석 필수!)
|
|
302
|
+
|
|
303
|
+
**웹사이트 URL 분석 시 DOM 구조를 반드시 파악해야 정확한 클론이 가능합니다.**
|
|
304
|
+
|
|
305
|
+
#### 분석 순서
|
|
306
|
+
|
|
307
|
+
```
|
|
308
|
+
1. 프레임워크 감지 (Nuxt, Next, React, Vue)
|
|
309
|
+
2. 전체 DOM 트리 계층 구조 추출
|
|
310
|
+
3. 메인 콘텐츠 컨테이너 식별
|
|
311
|
+
4. 섹션별 CSS 클래스 및 레이아웃 타입 파악
|
|
312
|
+
5. Grid/Flex 컨테이너 매핑
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
#### 필수 분석 항목
|
|
316
|
+
|
|
317
|
+
| 분석 대상 | 추출 정보 | 용도 |
|
|
318
|
+
|----------|----------|------|
|
|
319
|
+
| **컨테이너 계층** | #app > .container > .content | HTML 구조 재현 |
|
|
320
|
+
| **섹션 클래스** | .hero-section, .card-grid | 컴포넌트 분리 |
|
|
321
|
+
| **레이아웃 타입** | flex, grid, position | CSS 레이아웃 재현 |
|
|
322
|
+
| **자식 요소 수** | childCount | 반복 패턴 파악 |
|
|
323
|
+
|
|
324
|
+
#### 출력 형식
|
|
325
|
+
|
|
326
|
+
```
|
|
327
|
+
## DOM 레이아웃 구조
|
|
328
|
+
|
|
329
|
+
### 컨테이너 계층
|
|
330
|
+
#__nuxt
|
|
331
|
+
└── #app
|
|
332
|
+
└── .main-container
|
|
333
|
+
├── header.site-header
|
|
334
|
+
├── .page-content
|
|
335
|
+
│ ├── .hero-section (flex, 3 children)
|
|
336
|
+
│ ├── .feature-grid (grid, 6 children)
|
|
337
|
+
│ └── .gallery (masonry, N children)
|
|
338
|
+
└── footer.site-footer
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
### 6단계: 이미지 컴포지션 분석 (필수!)
|
|
344
|
+
|
|
345
|
+
**중요: 이미지 파일 1개가 시각적으로 여러 이미지를 포함할 수 있습니다.**
|
|
346
|
+
|
|
347
|
+
#### 왜 중요한가?
|
|
348
|
+
|
|
349
|
+
실제 사례 (SeaArt Hero Card):
|
|
350
|
+
- DOM: `<img src="image-mark-1.webp">` (1개)
|
|
351
|
+
- 시각적: 두 개의 겹쳐진 아트워크 이미지
|
|
352
|
+
- 원인: 단일 이미지 파일에 여러 요소가 **미리 합성**됨
|
|
353
|
+
|
|
354
|
+
#### 분석 체크리스트
|
|
355
|
+
|
|
356
|
+
| 확인 항목 | 분석 방법 | 판단 기준 |
|
|
357
|
+
|----------|----------|----------|
|
|
358
|
+
| **이미지 개수** | DOM `<img>` 태그 수 | 시각적 이미지 수와 비교 |
|
|
359
|
+
| **자연 크기 vs 표시 크기** | `naturalWidth/Height` | 2배 이상이면 합성 의심 |
|
|
360
|
+
| **가로세로 비율** | `width / height` | 2.0 이상이면 가로 합성 의심 |
|
|
361
|
+
| **파일명** | URL 분석 | `mark`, `composite`, `stack` 포함 여부 |
|
|
362
|
+
| **시각적 확인** | 스크린샷 줌 | 이미지 내 경계선, 그림자 확인 |
|
|
363
|
+
|
|
364
|
+
#### 이미지 구성 패턴
|
|
365
|
+
|
|
366
|
+
| 패턴 | 설명 | 예시 |
|
|
367
|
+
|------|------|------|
|
|
368
|
+
| **단일 이미지** | 1 파일 = 1 시각적 이미지 | 일반 아이콘 |
|
|
369
|
+
| **합성 이미지** | 1 파일 = N 시각적 이미지 | SeaArt Hero Card |
|
|
370
|
+
| **레이어드** | 배경 + 전경 이미지 분리 | 카드 배경 + 아이콘 |
|
|
371
|
+
| **오버랩** | 여러 img 태그가 겹침 | 프로필 카드 |
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
### 7단계: 인터랙션 패턴 & 역동적 요소
|
|
376
|
+
|
|
377
|
+
#### 인터랙션 상태
|
|
378
|
+
|
|
379
|
+
- **Hover States**: 버튼, 링크, 카드
|
|
380
|
+
- **Active States**: 선택된 탭, 메뉴 아이템
|
|
381
|
+
- **Focus States**: 입력 필드, 버튼
|
|
382
|
+
- **Loading States**: 스피너, 스켈레톤
|
|
383
|
+
- **Empty States**: 데이터 없음 화면
|
|
384
|
+
- **Error States**: 폼 에러, 페이지 에러
|
|
385
|
+
|
|
386
|
+
#### 역동적 요소 선택 가이드
|
|
387
|
+
|
|
388
|
+
참조: defs/web-motions.md
|
|
389
|
+
|
|
390
|
+
분석 시 원본에서 감지된 효과를 식별하고, 클론 제작 시 역동적 디자인 요소 라이브러리에서 선택하여 적용합니다.
|
|
391
|
+
|
|
392
|
+
### 8단계: 접근성 검토
|
|
393
|
+
|
|
394
|
+
- [ ] 색상 대비 비율 (WCAG AA 4.5:1)
|
|
395
|
+
- [ ] 터치 타겟 크기 (최소 44x44px)
|
|
396
|
+
- [ ] 포커스 인디케이터 존재
|
|
397
|
+
- [ ] 텍스트 크기 적절성 (최소 16px)
|
|
398
|
+
|
|
399
|
+
---
|
|
400
|
+
|
|
401
|
+
## 출력 형식
|
|
402
|
+
|
|
403
|
+
분석 결과는 다음 구조로 제공합니다:
|
|
404
|
+
|
|
405
|
+
### 1. 요약 보고서
|
|
406
|
+
전체 디자인 시스템 개요
|
|
407
|
+
|
|
408
|
+
### 2. 디자인 토큰 (CSS Variables)
|
|
409
|
+
```css
|
|
410
|
+
/* colors.css */
|
|
411
|
+
/* typography.css */
|
|
412
|
+
/* spacing.css */
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
### 3. 컴포넌트 목록
|
|
416
|
+
개발이 필요한 컴포넌트 체크리스트
|
|
417
|
+
|
|
418
|
+
### 4. DOM 구조 (URL 분석 시)
|
|
419
|
+
```
|
|
420
|
+
프레임워크: Nuxt.js / Element UI
|
|
421
|
+
|
|
422
|
+
#__nuxt > #app > .container
|
|
423
|
+
├── header (.top-menu)
|
|
424
|
+
├── .page-content
|
|
425
|
+
│ ├── .hero-box (flex, 3개)
|
|
426
|
+
│ ├── .card-section (grid, 12개)
|
|
427
|
+
│ └── .gallery (masonry)
|
|
428
|
+
└── footer
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
### 5. 구현 권장사항
|
|
432
|
+
- 권장 CSS 프레임워크 (Tailwind, CSS Modules 등)
|
|
433
|
+
- 컴포넌트 라이브러리 제안
|
|
434
|
+
- 반응형 전략
|
|
435
|
+
|
|
436
|
+
### 6. 주의사항
|
|
437
|
+
디자인에서 발견된 잠재적 이슈
|
|
438
|
+
|
|
439
|
+
---
|
|
440
|
+
|
|
441
|
+
## 사용 예시
|
|
442
|
+
|
|
443
|
+
### 로컬 파일 분석
|
|
444
|
+
- "design 폴더의 목업을 분석해줘"
|
|
445
|
+
- "이 UI의 색상 팔레트를 추출해줘"
|
|
446
|
+
- "목업에서 필요한 컴포넌트 목록 만들어줘"
|
|
447
|
+
- "디자인 시스템 가이드 만들어줘"
|
|
448
|
+
|
|
449
|
+
### URL 웹사이트 분석
|
|
450
|
+
- "https://example.com 분석해줘"
|
|
451
|
+
- "이 사이트 디자인 시스템 추출해줘"
|
|
452
|
+
- "URL의 색상 팔레트 뽑아줘"
|
|
453
|
+
- "웹사이트 반응형 테스트해줘"
|
|
454
|
+
- "이 사이트 레이아웃 패턴 분석해줘"
|
|
455
|
+
|
|
456
|
+
### 비교 분석
|
|
457
|
+
- "이 두 사이트 디자인 비교해줘"
|
|
458
|
+
- "목업과 실제 구현 비교 분석해줘"
|
|
459
|
+
|
|
460
|
+
**분석 대상:**
|
|
461
|
+
- PNG, JPG, WEBP (목업 이미지)
|
|
462
|
+
- HTML (프로토타입)
|
|
463
|
+
- SVG (아이콘, 일러스트)
|
|
464
|
+
- JSON (Figma/Sketch export)
|
|
465
|
+
- URL (실시간 웹사이트)
|
|
466
|
+
|
|
467
|
+
---
|
|
468
|
+
|
|
469
|
+
## URL 분석 시 Chrome 브라우저 사용
|
|
470
|
+
|
|
471
|
+
### 사전 요구사항
|
|
472
|
+
|
|
473
|
+
URL 분석을 위해 **Claude in Chrome** 확장 프로그램이 필요합니다:
|
|
474
|
+
1. https://claude.ai/chrome 에서 확장 프로그램 설치
|
|
475
|
+
2. Chrome 완전 재시작
|
|
476
|
+
3. 확장 프로그램 활성화 확인
|
|
477
|
+
|
|
478
|
+
### 분석 도구
|
|
479
|
+
|
|
480
|
+
```
|
|
481
|
+
1. tabs_context_mcp → 탭 상태 확인
|
|
482
|
+
2. tabs_create_mcp → 새 탭 생성
|
|
483
|
+
3. navigate → URL 이동
|
|
484
|
+
4. computer(screenshot) → 스크린샷 캡처
|
|
485
|
+
5. computer(scroll) → 페이지 스크롤
|
|
486
|
+
6. read_page → DOM 구조 분석
|
|
487
|
+
7. javascript_tool → CSS 스타일 추출
|
|
488
|
+
8. resize_window → 반응형 테스트
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
### 전체 페이지 스크롤 분석 (중요!)
|
|
492
|
+
|
|
493
|
+
**랜딩 페이지처럼 긴 페이지는 스크롤하며 전체 섹션을 분석해야 합니다:**
|
|
494
|
+
|
|
495
|
+
```
|
|
496
|
+
1. 초기 화면 스크린샷 (Hero 섹션)
|
|
497
|
+
2. 페이지 높이 확인 (javascript_tool)
|
|
498
|
+
3. 스크롤 다운 → 스크린샷 → 분석 반복
|
|
499
|
+
4. Footer가 보일 때까지 계속
|
|
500
|
+
5. 각 섹션의 컴포넌트, 색상, 레이아웃 수집
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
---
|
|
504
|
+
|
|
505
|
+
## 분석 체크리스트
|
|
506
|
+
|
|
507
|
+
### 색상 분석
|
|
508
|
+
- [ ] Primary Color 식별
|
|
509
|
+
- [ ] Secondary Color 식별
|
|
510
|
+
- [ ] Accent/CTA Color 식별
|
|
511
|
+
- [ ] 배경색 (Light/Dark Mode)
|
|
512
|
+
- [ ] 텍스트 색상 계층 (Primary, Secondary, Muted)
|
|
513
|
+
- [ ] Border/Divider 색상
|
|
514
|
+
- [ ] Status Colors (Success, Warning, Error, Info)
|
|
515
|
+
|
|
516
|
+
### 타이포그래피 분석
|
|
517
|
+
- [ ] Heading 폰트 패밀리
|
|
518
|
+
- [ ] Body 폰트 패밀리
|
|
519
|
+
- [ ] H1 ~ H6 크기
|
|
520
|
+
- [ ] Body Large / Regular / Small
|
|
521
|
+
- [ ] Font Weight 변화
|
|
522
|
+
- [ ] Line Height
|
|
523
|
+
|
|
524
|
+
### 컴포넌트 분석
|
|
525
|
+
#### 기초 요소
|
|
526
|
+
- [ ] Button (Primary, Secondary, Outline, Ghost)
|
|
527
|
+
- [ ] Input (Text, Email, Password)
|
|
528
|
+
- [ ] Checkbox / Radio / Toggle
|
|
529
|
+
- [ ] Select / Dropdown
|
|
530
|
+
- [ ] Badge / Tag
|
|
531
|
+
|
|
532
|
+
#### 복합 컴포넌트
|
|
533
|
+
- [ ] Card
|
|
534
|
+
- [ ] Modal / Dialog
|
|
535
|
+
- [ ] Navigation (Header, Sidebar, Tabs)
|
|
536
|
+
- [ ] Table / List
|
|
537
|
+
- [ ] Form
|
|
538
|
+
- [ ] Toast / Alert
|
|
539
|
+
|
|
540
|
+
### 레이아웃 분석
|
|
541
|
+
- [ ] 컬럼 수 (12-column 등)
|
|
542
|
+
- [ ] Gutter 크기
|
|
543
|
+
- [ ] Container Max Width
|
|
544
|
+
- [ ] Spacing Scale 정의
|
|
545
|
+
- [ ] 브레이크포인트
|
|
546
|
+
|
|
547
|
+
### 접근성 체크
|
|
548
|
+
- [ ] 텍스트 대비 비율 4.5:1 이상
|
|
549
|
+
- [ ] 터치 타겟 최소 44x44px
|
|
550
|
+
- [ ] 포커스 인디케이터 명확함
|
|
551
|
+
- [ ] 텍스트 최소 16px (모바일)
|
|
552
|
+
|
|
553
|
+
---
|
|
554
|
+
|
|
555
|
+
## 산출물 체크리스트
|
|
556
|
+
|
|
557
|
+
### 필수 산출물
|
|
558
|
+
- [ ] 색상 토큰 (CSS Variables)
|
|
559
|
+
- [ ] 타이포그래피 토큰
|
|
560
|
+
- [ ] 간격 토큰
|
|
561
|
+
- [ ] 컴포넌트 목록
|
|
562
|
+
|
|
563
|
+
### 선택 산출물
|
|
564
|
+
- [ ] 컴포넌트 구현 우선순위
|
|
565
|
+
- [ ] 기술 스택 권장사항
|
|
566
|
+
- [ ] 접근성 이슈 리포트
|
|
567
|
+
|
|
568
|
+
---
|
|
569
|
+
|
|
570
|
+
## verify 연동
|
|
571
|
+
|
|
572
|
+
분석 결과는 verify/ 모듈에서 검증 기준으로 활용됩니다.
|