关于 implementing-figma-designs
Implementing Figma Designs 是使用 OneKey 组件库按像素精度实现 Figma 界面的技能,强调先用模拟数据匹配布局和样式,再处理 API 或本地化。
主要功能
- 01使用 OneKey 组件实现 Figma 设计
- 02优先保证视觉准确而非数据集成
- 03使用模拟数据和硬编码文本
- 04查阅组件源码与演示
- 05应用间距、颜色和字体令牌
适用场景
- 01根据 Figma 设计构建界面
- 02使组件样式符合设计稿
- 03在 API 集成前制作界面原型
MCP 相关
工作流先通过 Figma MCP 分析设计,再识别并查阅所需组件。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ onekeyhq/ app-monorepo --skill implementing-figma-designs安装后在 Claude Code 中输入/implementing-figma-designs确认已加载。
详细介绍
实现 Figma 设计
此技能可帮助你使用 OneKey 组件库 1:1 实现 Figma 设计。
核心原则
先关注 UI,再处理数据
实现 Figma 设计时,优先保证 像素级精确的 UI,而不是集成数据:
- 使用模拟数据 - 硬编码与设计完全一致的数据
- 跳过 i18n - 直接使用设计中的纯文本,不使用
intl.formatMessage - 跳过 API 调用 - 当前阶段无需获取真实数据
- 匹配设计 - 专注于视觉精确度、间距、颜色和布局
不要做的事
- 不必考虑数据来源
- 不要添加翻译键(ETranslations)
- 不要创建 API 集成或用于获取数据的钩子
- 不要添加复杂的状态管理
要做的事
- 按照 Figma 中显示的内容精确硬编码文本
- 创建与设计相匹配的模拟数据数组/对象
- 专注于组件结构和样式
- 匹配设计中的间距、颜色和字体排版
组件查找(按需)
需要使用组件时,查找其源代码和演示:
源代码位置格式
packages/components/src/{category}/{ComponentName}/
分类:
primitives/- Button、Icon、Image、Skeleton、Spinner、Stack、Heading、SizeableTextforms/- Input、TextArea、Select、Checkbox、Radio、Switch、Slider、Form、OTPInputactions/- IconButton、ActionList、Alert、Toast、Popover、SegmentControl、Pagination、Tooltipcomposite/- Dialog、Tabs、Banner、Carousel、Table、Steppercontent/- Badge、Progress、Empty、Divider、QRCode、Markdown、LottieView、LinearGradient、BlurViewlayouts/- Page、ScrollView、ListView、SectionList、Accordion、Swiper、SearchBar
演示位置格式
packages/kit/src/views/Developer/pages/Gallery/Components/stories/{ComponentName}.tsx
注意:有些演示使用了不同的名称(例如 AccordionGallery.tsx、NewTabsGallery.tsx)
如何查找组件
-
阅读源代码以了解属性和结构:
Read: packages/components/src/{category}/{ComponentName}/index.tsx -
阅读演示以查看使用示例:
Glob: packages/kit/src/views/Developer/pages/Gallery/Components/stories/*{ComponentName}*.tsx
快速参考
所有导入均来自 @onekeyhq/components
import { Button, Stack, XStack, YStack, Icon, ... } from '@onekeyhq/components';
间距令牌
$1= 4px,$2= 8px,$3= 12px,$4= 16px$5= 20px,$6= 24px,$8= 32px,$10= 40px
颜色令牌
- 文本:
$text、$textSubdued、$textDisabled - 背景:
$bg、$bgSubdued、$bgHover、$bgActive - 边框:
$border、$borderSubdued、$borderActive - 图标:
$icon、$iconSubdued、$iconDisabled
字体大小令牌
标题(从大到小):
$headingXxl、$headingXl、$headingLg、$headingMd、$headingSm、$headingXs
正文文本(从大到小):
$bodyLg、$bodyMd、$bodySm、$bodyXs
中等字重(追加 Medium):
$bodyLgMedium、$bodyMdMedium、$bodySmMedium、$bodyXsMedium
与 SizableText 搭配使用:
<SizableText size="$bodyMd">Regular text</SizableText>
<SizableText size="$bodyMdMedium">Medium weight text</SizableText>
<SizableText size="$headingSm">Small heading</SizableText>
常见模式
使用 Stack 布局:
<YStack gap="$4"> {/* Vertical */}
<XStack gap="$4"> {/* Horizontal */}
<Stack gap="$4"> {/* Default vertical */}
模拟数据:
const mockItems = [
{ name: 'Bitcoin', symbol: 'BTC', value: '$21,432.50' },
{ name: 'Ethereum', symbol: 'ETH', value: '$5,892.30' },
];
按钮操作:
<Button onPress={() => console.log('clicked')}>Action</Button>
工作流
- 使用 Figma MCP 分析 Figma 设计
- 确定所需组件
- 查找每个组件 - 按需阅读源代码和演示
- 创建与设计相匹配的模拟数据
- 使用硬编码值实现 UI
评论
支持 Markdown