Local MCP Server
在Termux中运行本地MCP服务器,支持Ollama模型的文件读取与命令执行。
下载 11
根据Figma设计稿生成符合组件库和规范的生产级前端代码。
openclaw skills install @garvin131/figma-code-optimizer命令、参数、文件名以原文为准
这个技能帮助AI代理从Figma设计稿生成代码时,能够:
为了获得最佳效果,用户的Figma设计稿应该满足以下条件[citation:1][citation:6]:
| 要求 | 说明 | 为什么重要 |
|---|---|---|
| 使用组件和变体 | 将重复元素转为Component,用Variants表示不同状态 | AI能将它们映射为代码组件和props |
| 应用Auto Layout | 用自动布局代替手动排列 | 便于转换为flex/grid布局 |
| 使用样式和变量 | 统一用颜色样式、文字样式、间距变量 | 避免生成硬编码值 |
| 图层命名清晰 | 避免"Frame 42"、"Group Copy"这类自动命名 | 帮助AI理解每个元素的作用 |
| 避免过度嵌套 | 保持图层层级尽量浅 | 防止生成冗余的div嵌套 |
| 优先使用Frame | 用Frame而不是Group作为容器 | Group在转换时行为不可预测[citation:6] |
当用户在Figma中选中一个Frame并请求生成代码时,AI代理应该:
- 获取选中的Frame及其所有子图层
- 提取应用的样式和变量(颜色、字体、间距)
- 识别使用的组件及其属性[citation:2][citation:7]
- 识别哪些部分可以映射到现有组件库
- 分析布局方式(Auto Layout对应flex/grid)
- 检查是否有不符合规范的地方
根据用户的组件库文档,将Figma中的元素映射到代码组件[citation:9]:
| Figma中的元素 | 应映射到的代码组件 |
|---|---|
| Button组件 | `<Button variant="primary\ |
| Input组件 | `<Input size="md\ |
| Card组件 | <Card padding="md" /> |
| Icon实例 | <Icon name="..." size={16} /> |
映射规则示例:
variant="primary"size="sm"/"md"/"lg"leftIconprop根据用户的设计规范文档,将Figma中的样式值转换为代码token[citation:2][citation:7]:
| Figma中的值 | 应转换为的token |
|---|---|
| #1890FF (蓝色) | colors.primary.500 |
| 16px间距 | spacing.md |
| Inter 14px medium | typography.body.medium |
| 8px圆角 | radius.md |
生成符合以下标准的代码:
import { Button, Card } from 'your-component-library'color: ${theme.colors.primary.500} 而不是 #1890FFReact组件示例:
import React from 'react';
import { Card, Button, Text } from '@your-company/ui';
import { useTheme } from '@your-company/theme';
export const ProfileCard = ({ user, variant = 'default' }) => {
const theme = useTheme();
return (
<Card padding="lg" shadow="sm">
<div css={{ display: 'flex', gap: theme.spacing.md }}>
<Avatar src={user.avatar} size="lg" />
<div css={{ flex: 1 }}>
<Text variant="heading" size="md">
{user.name}
</Text>
<Text variant="body" color="secondary">
{user.bio}
</Text>
</div>
</div>
<div css={{ marginTop: theme.spacing.lg }}>
<Button variant="primary" size="sm" onClick={handleFollow}>
Follow
</Button>
</div>
</Card>
);
};已收录 1 个 Skill