implementing-figma-designs

implementing-figma-designs

热门

Implements Figma designs 1:1 using OneKey component library. Use when implementing UI from Figma, converting designs to code, or building pages/components from design specs. Triggers on figma, design, UI, 还原设计稿, 切图, 页面, 组件, implementation, Button, Input, Badge, Icon, Stack, XStack, YStack, Dialog, Toast, Alert, Form, Select, Switch, Checkbox, Radio, Tabs, Popover, ActionList, Progress, Skeleton, Image, Avatar, Banner, Carousel, Table, Accordion, ScrollView, ListView, SectionList, Page, Divider, Empty, QRCode, Markdown, Spinner.

2.3KStar
478Fork
更新于 1/27/2026
SKILL.md
readonly只读
name
implementing-figma-designs
description

Implements Figma designs 1:1 using OneKey component library. Use when implementing UI from Figma, converting designs to code, or building pages/components from design specs. Triggers on figma, design, UI, 还原设计稿, 切图, 页面, 组件, implementation, Button, Input, Badge, Icon, Stack, XStack, YStack, Dialog, Toast, Alert, Form, Select, Switch, Checkbox, Radio, Tabs, Popover, ActionList, Progress, Skeleton, Image, Avatar, Banner, Carousel, Table, Accordion, ScrollView, ListView, SectionList, Page, Divider, Empty, QRCode, Markdown, Spinner.

Implementing Figma Designs

This skill helps you implement Figma designs 1:1 using the OneKey component library.

Core Principles

Focus on UI First, Data Later

When implementing Figma designs, prioritize pixel-perfect UI over data integration:

  1. Use mock data - Hardcode data that matches the design exactly
  2. Skip i18n - Use plain strings directly from the design, no intl.formatMessage
  3. Skip API calls - No need to fetch real data at this stage
  4. Match the design - Focus on visual accuracy, spacing, colors, and layout

What NOT to do

  • Don't worry about where data comes from
  • Don't add translation keys (ETranslations)
  • Don't create API integration or hooks for fetching
  • Don't add complex state management

What TO do

  • Hardcode text exactly as shown in Figma
  • Create mock data arrays/objects that match the design
  • Focus on component structure and styling
  • Match spacing, colors, and typography from design

Component Lookup (On-Demand)

When you need to use a component, look up its source and demo:

Source Code Location Pattern

packages/components/src/{category}/{ComponentName}/

Categories:

  • primitives/ - Button, Icon, Image, Skeleton, Spinner, Stack, Heading, SizeableText
  • forms/ - Input, TextArea, Select, Checkbox, Radio, Switch, Slider, Form, OTPInput
  • actions/ - IconButton, ActionList, Alert, Toast, Popover, SegmentControl, Pagination, Tooltip
  • composite/ - Dialog, Tabs, Banner, Carousel, Table, Stepper
  • content/ - Badge, Progress, Empty, Divider, QRCode, Markdown, LottieView, LinearGradient, BlurView
  • layouts/ - Page, ScrollView, ListView, SectionList, Accordion, Swiper, SearchBar

Demo Location Pattern

packages/kit/src/views/Developer/pages/Gallery/Components/stories/{ComponentName}.tsx

Note: Some demos have different names (e.g., AccordionGallery.tsx, NewTabsGallery.tsx)

How to Look Up a Component

  1. Read the source to understand props and structure:

    Read: packages/components/src/{category}/{ComponentName}/index.tsx
    
  2. Read the demo for usage examples:

    Glob: packages/kit/src/views/Developer/pages/Gallery/Components/stories/*{ComponentName}*.tsx
    

Quick Reference

All imports from @onekeyhq/components

import { Button, Stack, XStack, YStack, Icon, ... } from '@onekeyhq/components';

Spacing Tokens

  • $1 = 4px, $2 = 8px, $3 = 12px, $4 = 16px
  • $5 = 20px, $6 = 24px, $8 = 32px, $10 = 40px

Color Tokens

  • Text: $text, $textSubdued, $textDisabled
  • Background: $bg, $bgSubdued, $bgHover, $bgActive
  • Border: $border, $borderSubdued, $borderActive
  • Icon: $icon, $iconSubdued, $iconDisabled

Font Size Tokens

Headings (large to small):

  • $headingXxl, $headingXl, $headingLg, $headingMd, $headingSm, $headingXs

Body text (large to small):

  • $bodyLg, $bodyMd, $bodySm, $bodyXs

With medium weight (append Medium):

  • $bodyLgMedium, $bodyMdMedium, $bodySmMedium, $bodyXsMedium

Usage with SizableText:

<SizableText size="$bodyMd">Regular text</SizableText>
<SizableText size="$bodyMdMedium">Medium weight text</SizableText>
<SizableText size="$headingSm">Small heading</SizableText>

Common Patterns

Layout with Stack:

<YStack gap="$4">        {/* Vertical */}
<XStack gap="$4">        {/* Horizontal */}
<Stack gap="$4">         {/* Default vertical */}

Mock Data:

const mockItems = [
  { name: 'Bitcoin', symbol: 'BTC', value: '$21,432.50' },
  { name: 'Ethereum', symbol: 'ETH', value: '$5,892.30' },
];

Button Actions:

<Button onPress={() => console.log('clicked')}>Action</Button>

Workflow

  1. Analyze the Figma design using Figma MCP
  2. Identify which components are needed
  3. Look up each component - read source and demo on-demand
  4. Create mock data matching the design
  5. Implement the UI with hardcoded values

You Might Also Like

Related Skills

verify

verify

243K

Use when you want to validate changes before committing, or when you need to check all React contribution requirements.

facebook avatarfacebook
获取
test

test

243K

Use when you need to run tests for React core. Supports source, www, stable, and experimental channels.

facebook avatarfacebook
获取

Use when feature flag tests fail, flags need updating, understanding @gate pragmas, debugging channel-specific test failures, or adding new flags to React.

facebook avatarfacebook
获取

Use when adding new error messages to React, or seeing "unknown error code" warnings.

facebook avatarfacebook
获取
flow

flow

243K

Use when you need to run Flow type checking, or when seeing Flow type errors in React code.

facebook avatarfacebook
获取
flags

flags

243K

Use when you need to check feature flag states, compare channels, or debug why a feature behaves differently across release channels.

facebook avatarfacebook
获取