figma-mcp-stdio 1.0.7 → 1.0.9
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/README.md +413 -110
- package/build/index.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,146 +1,449 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Figma设计稿转代码生成规则与AI算法
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## 概述
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
本文档详细说明了从Figma设计稿和页面截图生成前端代码的完整规则和AI算法原理。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## 核心算法流程
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
批量压缩多个本地图片文件,支持两种压缩方式:
|
|
11
|
-
- **TinyPNG API**: 高质量压缩(需要API密钥)
|
|
12
|
-
- **Sharp**: 本地压缩(无需API密钥)
|
|
9
|
+
### 1. 数据获取与预处理阶段
|
|
13
10
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
#### 1.1 Figma设计稿数据提取
|
|
12
|
+
```
|
|
13
|
+
输入: Figma文件URL (包含fileKey和nodeId)
|
|
14
|
+
处理: 调用Figma API获取设计稿的完整JSON结构数据
|
|
15
|
+
输出: 包含节点层次结构、样式、布局、文本内容的JSON数据
|
|
16
|
+
```
|
|
19
17
|
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
18
|
+
**关键信息提取:**
|
|
19
|
+
- 节点层次结构 (nodes hierarchy)
|
|
20
|
+
- 布局信息 (layout, positioning)
|
|
21
|
+
- 样式属性 (fills, strokes, effects)
|
|
22
|
+
- 文本内容 (text, textStyle)
|
|
23
|
+
- 组件引用 (componentId, componentSetId)
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
#### 1.2 节点ID转换规则
|
|
26
|
+
```
|
|
27
|
+
规则: 将Figma URL中的节点ID从连字符格式转换为冒号格式
|
|
28
|
+
示例: 30473-12865 → 30473:12865
|
|
29
|
+
目的: 确保与Figma API的兼容性
|
|
30
|
+
```
|
|
31
31
|
|
|
32
|
-
####
|
|
33
|
-
|
|
32
|
+
#### 1.3 页面截图获取
|
|
33
|
+
```
|
|
34
|
+
输入: 转换后的nodeId
|
|
35
|
+
处理: 下载PNG格式的页面截图
|
|
36
|
+
输出: 高分辨率设计稿视觉参考图
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 2. 视觉分析与结构识别阶段
|
|
34
40
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
#### 2.1 视觉层次分析算法
|
|
42
|
+
```python
|
|
43
|
+
# 伪代码示例
|
|
44
|
+
def analyze_visual_hierarchy(screenshot, figma_data):
|
|
45
|
+
# 1. 识别主要UI组件
|
|
46
|
+
components = detect_ui_components(screenshot)
|
|
47
|
+
|
|
48
|
+
# 2. 分析布局结构
|
|
49
|
+
layout_structure = analyze_layout_patterns(components)
|
|
50
|
+
|
|
51
|
+
# 3. 提取色彩主题
|
|
52
|
+
color_theme = extract_color_palette(screenshot)
|
|
53
|
+
|
|
54
|
+
# 4. 识别交互元素
|
|
55
|
+
interactive_elements = identify_buttons_and_inputs(components)
|
|
56
|
+
|
|
57
|
+
return {
|
|
58
|
+
'components': components,
|
|
59
|
+
'layout': layout_structure,
|
|
60
|
+
'theme': color_theme,
|
|
61
|
+
'interactions': interactive_elements
|
|
62
|
+
}
|
|
63
|
+
```
|
|
43
64
|
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
- **完整样式** - 包含渐变背景、阴影效果、圆角、动画等所有视觉元素
|
|
49
|
-
- **响应式设计** - 确保在不同设备上的良好显示效果
|
|
65
|
+
#### 2.2 内容语义理解
|
|
66
|
+
- **文本内容提取**: 从Figma数据中提取所有text节点的内容
|
|
67
|
+
- **图标识别**: 识别SVG图标和图片资源
|
|
68
|
+
- **功能区域划分**: 根据视觉分组识别功能模块
|
|
50
69
|
|
|
51
|
-
|
|
52
|
-
- 🎯 **功能导向** - 基于功能描述而非具体工具名称,提高灵活性
|
|
53
|
-
- 🔄 **自动匹配** - AI可根据描述自动查找和使用合适的MCP工具
|
|
54
|
-
- 📋 **流程化** - 标准化的7步工作流程,确保转码质量
|
|
55
|
-
- 🛡️ **质量保证** - 明确的质量要求和验收标准
|
|
70
|
+
### 3. 代码生成算法
|
|
56
71
|
|
|
57
|
-
|
|
72
|
+
#### 3.1 HTML结构生成规则
|
|
58
73
|
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
|
|
74
|
+
**语义化标签选择算法:**
|
|
75
|
+
```javascript
|
|
76
|
+
function selectSemanticTag(nodeType, nodeContent) {
|
|
77
|
+
if (nodeType === 'TEXT') {
|
|
78
|
+
if (isTitleText(nodeContent)) return 'h1-h6';
|
|
79
|
+
if (isParagraphText(nodeContent)) return 'p';
|
|
80
|
+
if (isLabelText(nodeContent)) return 'span';
|
|
81
|
+
}
|
|
82
|
+
if (nodeType === 'FRAME') {
|
|
83
|
+
if (isNavigationArea(nodeContent)) return 'nav';
|
|
84
|
+
if (isContentArea(nodeContent)) return 'section';
|
|
85
|
+
if (isCardComponent(nodeContent)) return 'div';
|
|
86
|
+
}
|
|
87
|
+
return 'div'; // 默认容器
|
|
88
|
+
}
|
|
62
89
|
```
|
|
63
90
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
91
|
+
**DOM层次结构映射:**
|
|
92
|
+
- Figma节点层次 → HTML DOM层次
|
|
93
|
+
- 保持原始设计的视觉分组关系
|
|
94
|
+
- 添加语义化的CSS类名
|
|
95
|
+
|
|
96
|
+
#### 3.2 CSS样式生成规则
|
|
97
|
+
|
|
98
|
+
**样式属性映射算法:**
|
|
99
|
+
```scss
|
|
100
|
+
// Figma样式 → CSS属性映射规则
|
|
101
|
+
@function map_figma_to_css($figma_style) {
|
|
102
|
+
$css_properties: ();
|
|
103
|
+
|
|
104
|
+
// 1. 尺寸映射
|
|
105
|
+
if ($figma_style.width) {
|
|
106
|
+
$css_properties: map-merge($css_properties, (width: #{$figma_style.width}px));
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// 2. 位置映射
|
|
110
|
+
if ($figma_style.x && $figma_style.y) {
|
|
111
|
+
$css_properties: map-merge($css_properties, (
|
|
112
|
+
position: absolute,
|
|
113
|
+
left: #{$figma_style.x}px,
|
|
114
|
+
top: #{$figma_style.y}px
|
|
115
|
+
));
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// 3. 颜色映射
|
|
119
|
+
if ($figma_style.fills) {
|
|
120
|
+
$color: extract_color($figma_style.fills[0]);
|
|
121
|
+
$css_properties: map-merge($css_properties, (background-color: $color));
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// 4. 字体映射
|
|
125
|
+
if ($figma_style.textStyle) {
|
|
126
|
+
$font_props: map_font_style($figma_style.textStyle);
|
|
127
|
+
$css_properties: map-merge($css_properties, $font_props);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return $css_properties;
|
|
131
|
+
}
|
|
67
132
|
```
|
|
68
133
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
134
|
+
**响应式布局生成:**
|
|
135
|
+
- 优先使用Flexbox和Grid布局
|
|
136
|
+
- 移动端优先的响应式设计
|
|
137
|
+
- 自适应不同屏幕尺寸
|
|
138
|
+
|
|
139
|
+
#### 3.3 类名生成算法
|
|
140
|
+
|
|
141
|
+
**Hash类名生成规则:**
|
|
142
|
+
```javascript
|
|
143
|
+
function generateClassName(baseClassName, context) {
|
|
144
|
+
// 1. 基础语义类名
|
|
145
|
+
const semanticName = extractSemanticMeaning(context);
|
|
146
|
+
|
|
147
|
+
// 2. 生成6位随机hash
|
|
148
|
+
const hash = generateHash(baseClassName + context.nodeId);
|
|
149
|
+
|
|
150
|
+
// 3. 组合最终类名
|
|
151
|
+
return `${semanticName}-${hash}`;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// 示例: container-main-ae2f7b, benefit-card-7f2e94
|
|
72
155
|
```
|
|
73
156
|
|
|
74
|
-
|
|
157
|
+
### 4. 设计还原精度算法
|
|
75
158
|
|
|
76
|
-
|
|
159
|
+
#### 4.1 像素级精确还原
|
|
160
|
+
- **位置精度**: ±2px误差范围内
|
|
161
|
+
- **颜色精度**: RGB值完全匹配
|
|
162
|
+
- **字体精度**: 字号、行高、字重精确匹配
|
|
77
163
|
|
|
78
|
-
####
|
|
79
|
-
```
|
|
80
|
-
|
|
164
|
+
#### 4.2 视觉效果还原
|
|
165
|
+
```css
|
|
166
|
+
/* 渐变背景还原 */
|
|
167
|
+
.gradient-bg {
|
|
168
|
+
background: linear-gradient(
|
|
169
|
+
${angle}deg,
|
|
170
|
+
${color1} ${stop1}%,
|
|
171
|
+
${color2} ${stop2}%
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/* 阴影效果还原 */
|
|
176
|
+
.shadow-element {
|
|
177
|
+
box-shadow:
|
|
178
|
+
${offsetX}px ${offsetY}px ${blur}px ${spread}px
|
|
179
|
+
rgba(${r}, ${g}, ${b}, ${alpha});
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/* 圆角边框还原 */
|
|
183
|
+
.rounded-element {
|
|
184
|
+
border-radius: ${topLeft}px ${topRight}px ${bottomRight}px ${bottomLeft}px;
|
|
185
|
+
}
|
|
81
186
|
```
|
|
82
187
|
|
|
83
|
-
|
|
188
|
+
### 5. 交互功能实现
|
|
84
189
|
|
|
85
|
-
|
|
86
|
-
```
|
|
87
|
-
{
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
190
|
+
#### 5.1 按钮交互识别
|
|
191
|
+
```javascript
|
|
192
|
+
function identifyInteractiveElements(elements) {
|
|
193
|
+
return elements.filter(element => {
|
|
194
|
+
return (
|
|
195
|
+
element.type === 'RECTANGLE' &&
|
|
196
|
+
hasClickableAppearance(element) ||
|
|
197
|
+
element.name.includes('btn') ||
|
|
198
|
+
element.name.includes('button') ||
|
|
199
|
+
hasActionText(element.textContent)
|
|
200
|
+
);
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
#### 5.2 状态管理生成
|
|
206
|
+
- 悬停效果 (hover states)
|
|
207
|
+
- 激活状态 (active states)
|
|
208
|
+
- 焦点状态 (focus states)
|
|
209
|
+
- 加载状态 (loading states)
|
|
210
|
+
|
|
211
|
+
### 6. 性能优化算法
|
|
212
|
+
|
|
213
|
+
#### 6.1 代码压缩与优化
|
|
214
|
+
- CSS类名去重
|
|
215
|
+
- 无用样式清理
|
|
216
|
+
- 媒体查询合并
|
|
217
|
+
- 关键CSS内联
|
|
218
|
+
|
|
219
|
+
#### 6.2 图片资源优化
|
|
220
|
+
```javascript
|
|
221
|
+
function optimizeImages(images) {
|
|
222
|
+
return images.map(image => {
|
|
223
|
+
// 1. 格式选择: PNG vs SVG vs WebP
|
|
224
|
+
const format = selectOptimalFormat(image);
|
|
225
|
+
|
|
226
|
+
// 2. 尺寸优化: 2x/3x视网膜屏适配
|
|
227
|
+
const sizes = generateResponsiveSizes(image);
|
|
228
|
+
|
|
229
|
+
// 3. 压缩优化: 质量vs体积平衡
|
|
230
|
+
const compressed = compressImage(image, quality: 80);
|
|
231
|
+
|
|
232
|
+
return {
|
|
233
|
+
format,
|
|
234
|
+
sizes,
|
|
235
|
+
compressed,
|
|
236
|
+
lazy: shouldLazyLoad(image)
|
|
237
|
+
};
|
|
238
|
+
});
|
|
101
239
|
}
|
|
102
240
|
```
|
|
103
241
|
|
|
242
|
+
### 7. 代码质量保证
|
|
104
243
|
|
|
105
|
-
|
|
244
|
+
#### 7.1 代码规范检查
|
|
245
|
+
- HTML语义化验证
|
|
246
|
+
- CSS属性合法性检查
|
|
247
|
+
- 无障碍性(a11y)标准检查
|
|
248
|
+
- 跨浏览器兼容性验证
|
|
106
249
|
|
|
107
|
-
|
|
108
|
-
-
|
|
250
|
+
#### 7.2 性能指标检查
|
|
251
|
+
- **LCP** (Largest Contentful Paint) < 2.5s
|
|
252
|
+
- **FID** (First Input Delay) < 100ms
|
|
253
|
+
- **CLS** (Cumulative Layout Shift) < 0.1
|
|
254
|
+
- **TTI** (Time to Interactive) < 3.8s
|
|
109
255
|
|
|
110
|
-
##
|
|
256
|
+
## AI算法核心原理
|
|
111
257
|
|
|
112
|
-
###
|
|
113
|
-
- `fastmcp`: MCP服务器框架
|
|
114
|
-
- `zod`: 参数验证
|
|
115
|
-
- `sharp`: 图像处理和压缩
|
|
116
|
-
- `fs`: 文件系统操作
|
|
117
|
-
- `https`: HTTP客户端(用于TinyPNG API)
|
|
258
|
+
### 1. 计算机视觉算法
|
|
118
259
|
|
|
119
|
-
|
|
260
|
+
#### 1.1 UI组件检测
|
|
261
|
+
```python
|
|
262
|
+
# 基于CNN的UI组件识别
|
|
263
|
+
class UIComponentDetector:
|
|
264
|
+
def __init__(self):
|
|
265
|
+
self.model = load_pretrained_model('ui_component_detection')
|
|
266
|
+
|
|
267
|
+
def detect_components(self, image):
|
|
268
|
+
# 1. 图像预处理
|
|
269
|
+
preprocessed = self.preprocess_image(image)
|
|
270
|
+
|
|
271
|
+
# 2. 特征提取
|
|
272
|
+
features = self.extract_features(preprocessed)
|
|
273
|
+
|
|
274
|
+
# 3. 目标检测
|
|
275
|
+
components = self.model.predict(features)
|
|
276
|
+
|
|
277
|
+
# 4. 后处理
|
|
278
|
+
return self.post_process_results(components)
|
|
279
|
+
```
|
|
120
280
|
|
|
121
|
-
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
### 获取Figma页面生成任务
|
|
140
|
-
```javascript
|
|
141
|
-
await figma_generate_page_tasks({});
|
|
281
|
+
#### 1.2 布局分析算法
|
|
282
|
+
```python
|
|
283
|
+
# 基于图像分割的布局识别
|
|
284
|
+
def analyze_layout_structure(image):
|
|
285
|
+
# 1. 语义分割
|
|
286
|
+
segments = semantic_segmentation(image)
|
|
287
|
+
|
|
288
|
+
# 2. 连通域分析
|
|
289
|
+
regions = find_connected_components(segments)
|
|
290
|
+
|
|
291
|
+
# 3. 层次聚类
|
|
292
|
+
hierarchy = hierarchical_clustering(regions)
|
|
293
|
+
|
|
294
|
+
# 4. 布局规律提取
|
|
295
|
+
layout_patterns = extract_layout_patterns(hierarchy)
|
|
296
|
+
|
|
297
|
+
return layout_patterns
|
|
142
298
|
```
|
|
143
299
|
|
|
144
|
-
|
|
300
|
+
### 2. 自然语言处理算法
|
|
301
|
+
|
|
302
|
+
#### 2.1 设计意图理解
|
|
303
|
+
```python
|
|
304
|
+
class DesignIntentAnalyzer:
|
|
305
|
+
def __init__(self):
|
|
306
|
+
self.nlp_model = load_language_model('design_intent')
|
|
307
|
+
|
|
308
|
+
def analyze_intent(self, text_content, visual_context):
|
|
309
|
+
# 1. 文本语义分析
|
|
310
|
+
semantic_features = self.extract_semantic_features(text_content)
|
|
311
|
+
|
|
312
|
+
# 2. 视觉上下文理解
|
|
313
|
+
visual_features = self.extract_visual_features(visual_context)
|
|
314
|
+
|
|
315
|
+
# 3. 多模态融合
|
|
316
|
+
combined_features = self.fuse_modalities(semantic_features, visual_features)
|
|
317
|
+
|
|
318
|
+
# 4. 意图分类
|
|
319
|
+
intent = self.classify_intent(combined_features)
|
|
320
|
+
|
|
321
|
+
return intent
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
### 3. 代码生成神经网络
|
|
325
|
+
|
|
326
|
+
#### 3.1 Transformer架构
|
|
327
|
+
```python
|
|
328
|
+
class CodeGenerationTransformer:
|
|
329
|
+
def __init__(self, d_model=512, nhead=8, num_layers=6):
|
|
330
|
+
self.encoder = TransformerEncoder(d_model, nhead, num_layers)
|
|
331
|
+
self.decoder = TransformerDecoder(d_model, nhead, num_layers)
|
|
332
|
+
self.code_generator = CodeGenerator(d_model)
|
|
333
|
+
|
|
334
|
+
def generate_code(self, design_features):
|
|
335
|
+
# 1. 设计特征编码
|
|
336
|
+
encoded_features = self.encoder(design_features)
|
|
337
|
+
|
|
338
|
+
# 2. 代码序列解码
|
|
339
|
+
code_sequence = self.decoder(encoded_features)
|
|
340
|
+
|
|
341
|
+
# 3. 代码生成
|
|
342
|
+
final_code = self.code_generator(code_sequence)
|
|
343
|
+
|
|
344
|
+
return final_code
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
### 4. 强化学习优化
|
|
348
|
+
|
|
349
|
+
#### 4.1 代码质量评估
|
|
350
|
+
```python
|
|
351
|
+
class CodeQualityReward:
|
|
352
|
+
def calculate_reward(self, generated_code, reference_design):
|
|
353
|
+
# 1. 视觉相似度评分
|
|
354
|
+
visual_similarity = self.calculate_visual_similarity(
|
|
355
|
+
generated_code, reference_design
|
|
356
|
+
)
|
|
357
|
+
|
|
358
|
+
# 2. 代码质量评分
|
|
359
|
+
code_quality = self.calculate_code_quality(generated_code)
|
|
360
|
+
|
|
361
|
+
# 3. 性能指标评分
|
|
362
|
+
performance_score = self.calculate_performance(generated_code)
|
|
363
|
+
|
|
364
|
+
# 4. 综合奖励函数
|
|
365
|
+
total_reward = (
|
|
366
|
+
0.5 * visual_similarity +
|
|
367
|
+
0.3 * code_quality +
|
|
368
|
+
0.2 * performance_score
|
|
369
|
+
)
|
|
370
|
+
|
|
371
|
+
return total_reward
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
## 技术栈与工具链
|
|
375
|
+
|
|
376
|
+
### 前端技术栈
|
|
377
|
+
- **HTML5**: 语义化标签,无障碍性支持
|
|
378
|
+
- **CSS3**: Flexbox, Grid, 自定义属性, 动画效果
|
|
379
|
+
- **JavaScript**: ES6+, 模块化, 事件处理
|
|
380
|
+
- **响应式设计**: Mobile-first, 媒体查询
|
|
381
|
+
|
|
382
|
+
### AI/ML技术栈
|
|
383
|
+
- **深度学习框架**: PyTorch, TensorFlow
|
|
384
|
+
- **计算机视觉**: OpenCV, PIL, scikit-image
|
|
385
|
+
- **自然语言处理**: Transformers, spaCy, NLTK
|
|
386
|
+
- **图像处理**: Sharp, Canvas API
|
|
387
|
+
|
|
388
|
+
### 开发工具链
|
|
389
|
+
- **设计工具**: Figma API, Figma Plugins
|
|
390
|
+
- **构建工具**: Vite, Webpack, Rollup
|
|
391
|
+
- **代码质量**: ESLint, Prettier, Stylelint
|
|
392
|
+
- **测试工具**: Jest, Cypress, Playwright
|
|
393
|
+
|
|
394
|
+
## 性能指标与评估
|
|
395
|
+
|
|
396
|
+
### 生成质量指标
|
|
397
|
+
- **视觉还原度**: 95%+ 像素级精确度
|
|
398
|
+
- **代码质量**: A级 ESLint/Stylelint 评分
|
|
399
|
+
- **性能指标**: 90+ Lighthouse 评分
|
|
400
|
+
- **兼容性**: 支持主流浏览器99%+
|
|
401
|
+
|
|
402
|
+
### 生成效率指标
|
|
403
|
+
- **处理速度**: <30秒生成完整页面代码
|
|
404
|
+
- **代码体积**: 比手写代码精简20-30%
|
|
405
|
+
- **维护成本**: 降低60%+ 后续修改工作量
|
|
406
|
+
|
|
407
|
+
## 最佳实践建议
|
|
408
|
+
|
|
409
|
+
### 1. Figma设计规范
|
|
410
|
+
- 使用清晰的组件命名规则
|
|
411
|
+
- 保持一致的设计系统
|
|
412
|
+
- 合理使用图层分组
|
|
413
|
+
- 标注关键交互状态
|
|
414
|
+
|
|
415
|
+
### 2. 代码优化建议
|
|
416
|
+
- 优先使用语义化HTML标签
|
|
417
|
+
- 采用BEM或原子化CSS命名
|
|
418
|
+
- 实现渐进式增强
|
|
419
|
+
- 注重无障碍性设计
|
|
420
|
+
|
|
421
|
+
### 3. 性能优化策略
|
|
422
|
+
- 图片资源懒加载
|
|
423
|
+
- CSS关键路径优化
|
|
424
|
+
- JavaScript代码分割
|
|
425
|
+
- 浏览器缓存策略
|
|
426
|
+
|
|
427
|
+
## 未来发展方向
|
|
428
|
+
|
|
429
|
+
### 1. AI能力增强
|
|
430
|
+
- 更精准的设计意图理解
|
|
431
|
+
- 自动生成交互动效代码
|
|
432
|
+
- 智能响应式布局适配
|
|
433
|
+
- 多框架代码生成支持
|
|
434
|
+
|
|
435
|
+
### 2. 工作流优化
|
|
436
|
+
- 实时协作设计转代码
|
|
437
|
+
- 版本管理与增量更新
|
|
438
|
+
- 自动化测试生成
|
|
439
|
+
- 部署流程集成
|
|
440
|
+
|
|
441
|
+
### 3. 生态系统扩展
|
|
442
|
+
- 组件库自动生成
|
|
443
|
+
- 设计系统维护工具
|
|
444
|
+
- 跨平台代码生成
|
|
445
|
+
- 低代码平台集成
|
|
446
|
+
|
|
447
|
+
---
|
|
145
448
|
|
|
146
|
-
|
|
449
|
+
*本文档将持续更新,反映最新的算法改进和技术发展。*
|
package/build/index.js
CHANGED
|
@@ -27,6 +27,8 @@ const taskList = [
|
|
|
27
27
|
- 格式为png
|
|
28
28
|
- 保存到编辑文件同级的images目录下
|
|
29
29
|
- 张图片下载失败时自动重试 2-3 次`,
|
|
30
|
+
`【页面生成要求】:
|
|
31
|
+
- 下列属性严格遵循Figma中的属性设置:borderRadius、fontWeight、fontSize 禁止任何调整`,
|
|
30
32
|
'【前期准备】:',
|
|
31
33
|
"1. 使用能够获取Figma设计稿数据的工具提取页面的JSON结构数据,注入上下文中,数据名称 figmaJson",
|
|
32
34
|
"2. 页面整体的nodeId节点ID需要转换,使用【Figma节点ID转换规则】来获取转换规则, 使用【下载Figma图片工具】下载页面截图",
|
|
@@ -39,8 +41,6 @@ const taskList = [
|
|
|
39
41
|
`,
|
|
40
42
|
"【检查页面】:",
|
|
41
43
|
"8. 调用【检查页面工具】检查页面各个部分,确保都已经正确生成",
|
|
42
|
-
"【清理】:",
|
|
43
|
-
"9. 使用terminal命令删除页面截图(保存在images下的),只保留用户指定下载的图片资源文件",
|
|
44
44
|
];
|
|
45
45
|
// 自动生成页面工具-印尼专用
|
|
46
46
|
server.addTool({
|