这个技能帮助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代理应该:
根据用户的组件库文档,将Figma中的元素映射到代码组件[citation:9]:
Figma中的元素应映射到的代码组件Button组件<Button variant="primary|secondary">Input组件<Input size="md|lg" />Card组件<Card padding="md" />Icon实例<Icon name="..." size={16} />
映射规则示例:
variant="primary"size="sm"/ "md"/ "lg"leftIcon prop根据用户的设计规范文档,将Figma中的样式值转换为代码token[citation:2][citation:7]:
Figma中的值应转换为的token#1890FF (蓝色)colors.primary.50016px间距spacing.mdInter 14px mediumtypography.body.medium8px圆角radius.md
生成符合以下标准的代码:
import { Button, Card } from 'your-component-library'color: ${theme.colors.primary.500} 而不是 #1890FFReact组件示例:
jsx
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>
);
};