Connects Figma design components to code components using Code Connect. Use when user says "code connect", "connect this component to code", "connect Figma to code", "map this component", "link component to code", "create code connect mapping", "add code connect", "connect design to code", or wants to establish mappings between Figma designs and code implementations. Requires Figma MCP server connection.
Install with Tessl CLI
npx tessl i github:figma/mcp-server-guide --skill code-connect-components86
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillAgent success when using this skill
Validation for skill structure
This skill helps you connect Figma design components to their corresponding code implementations using Figma's Code Connect feature. It analyzes the Figma design structure, searches your codebase for matching components, and establishes mappings that maintain design-code consistency.
get_code_connect_suggestions) are available.https://figma.com/design/:fileKey/:fileName?node-id=1-2
node-id parameter. Code Connect mapping will fail without it.Follow these steps in order. Do not skip steps.
Call get_code_connect_suggestions to identify all unmapped components in a single operation. This tool automatically:
Parse the URL to extract fileKey and nodeId, then call get_code_connect_suggestions.
IMPORTANT: When extracting the node ID from a Figma URL, convert the format:
node-id=1-2nodeId=1:2Parse the Figma URL:
https://figma.com/design/:fileKey/:fileName?node-id=1-2:fileKey (segment after /design/)1-2 from URL, then convert to 1:2 for the toolget_code_connect_suggestions(fileKey=":fileKey", nodeId="1:2")Handle the response:
For each unmapped component returned by get_code_connect_suggestions, search the codebase for a matching code component.
What to look for:
src/components/, components/, ui/, etc.)Search strategy:
Example search patterns:
Button.tsx, PrimaryButton.tsx, Button.jsxsrc/components/, app/components/, lib/ui/variant, size, color that match Figma variantsPresent your findings and let the user choose which mappings to create. The user can accept all, some, or none of the suggested mappings.
Present matches in this format:
The following components match the design:
- [ComponentName](path/to/component): DesignComponentName at nodeId [nodeId](figmaUrl?node-id=X-Y)
- [AnotherComponent](path/to/another): AnotherDesign at nodeId [nodeId2](figmaUrl?node-id=X-Y)
Would you like to connect these components? You can accept all, select specific ones, or skip.If no exact match is found for a component:
If the user declines all mappings, inform them and stop. No further tool calls are needed.
Once the user confirms their selections, call send_code_connect_mappings with only the accepted mappings. This tool handles batch creation of all mappings in a single call.
Example:
send_code_connect_mappings(
fileKey=":fileKey",
nodeId="1:2",
mappings=[
{ nodeId: "1:2", componentName: "Button", source: "src/components/Button.tsx", label: "React" },
{ nodeId: "1:5", componentName: "Card", source: "src/components/Card.tsx", label: "React" }
]
)Key parameters for each mapping:
nodeId: The Figma node ID (with colon format: 1:2)componentName: Name of the component to connect (e.g., "Button", "Card")source: Path to the code component file (relative to project root)label: The framework or language label for this Code Connect mapping. Valid values include:
After the call:
Provide a summary after processing:
Code Connect Summary:
- Successfully connected: 3
- Button (1:2) → src/components/Button.tsx
- Card (1:5) → src/components/Card.tsx
- Input (1:8) → src/components/Input.tsx
- Could not connect: 1
- CustomWidget (1:10) - No matching component found in codebaseUser says: "Connect this Figma button to my code: https://figma.com/design/kL9xQn2VwM8pYrTb4ZcHjF/DesignSystem?node-id=42-15"
Actions:
Parse URL: fileKey=kL9xQn2VwM8pYrTb4ZcHjF, nodeId=42-15 → convert to 42:15
Run get_code_connect_suggestions(fileKey="kL9xQn2VwM8pYrTb4ZcHjF", nodeId="42:15")
Response shows: Button component (unmapped) with variant (primary/secondary) and size (sm/md/lg) properties, plus a thumbnail image
Search codebase for Button components: Find src/components/Button.tsx
Read Button.tsx and confirm it has variant and size props
Present to user: "I found a match:
Would you like to connect this component?"
User confirms: "Yes"
Detect that it's a TypeScript React component
Run send_code_connect_mappings(fileKey="kL9xQn2VwM8pYrTb4ZcHjF", nodeId="42:15", mappings=[{ nodeId: "42:15", componentName: "Button", source: "src/components/Button.tsx", label: "React" }])
Result: Figma button component is now connected to the code Button component.
User says: "Connect components in this frame: https://figma.com/design/pR8mNv5KqXzGwY2JtCfL4D/Components?node-id=10-50"
Actions:
Parse URL: fileKey=pR8mNv5KqXzGwY2JtCfL4D, nodeId=10-50 → convert to 10:50
Run get_code_connect_suggestions(fileKey="pR8mNv5KqXzGwY2JtCfL4D", nodeId="10:50")
Response shows 3 unmapped components: ProductCard, Badge, and CustomWidget
Search codebase:
src/components/ProductCard.tsx (props match)src/components/Badge.tsx (props match)Present to user: "The following components match the design:
I couldn't find a match for CustomWidget (10:53).
Would you like to connect these components? You can accept all, select specific ones, or skip."
User: "Just connect ProductCard, skip Badge for now"
Run send_code_connect_mappings(fileKey="pR8mNv5KqXzGwY2JtCfL4D", nodeId="10:50", mappings=[{ nodeId: "10:51", componentName: "ProductCard", source: "src/components/ProductCard.tsx", label: "React" }])
Result: Only ProductCard is connected, per the user's selection.
User says: "Connect this icon: https://figma.com/design/8yJDMeWDyBz71EnMOSuUiw/Icons?node-id=5-20"
Actions:
8yJDMeWDyBz71EnMOSuUiw, nodeId=5-20 → convert to 5:20get_code_connect_suggestions(fileKey="8yJDMeWDyBz71EnMOSuUiw", nodeId="5:20")src/icons/ directory with other iconssend_code_connect_mappings(fileKey="8yJDMeWDyBz71EnMOSuUiw", nodeId="5:20", mappings=[{ nodeId: "5:20", componentName: "CheckIcon", source: "src/icons/CheckIcon.tsx", label: "React" }])Result: CheckIcon component is successfully connected to the Figma design.
Don't just ask the user for the file path — actively search their codebase to find matching components. This provides a better experience and catches potential mapping opportunities.
When comparing Figma components to code components, look beyond just names. Check that:
When offering to create a mapping, clearly explain:
If multiple components could match, present options rather than guessing. Let the user make the final decision about which component to connect.
If you can't find an exact match, provide helpful next steps:
Cause: The Figma component is not published to a team library. Code Connect only works with published components. Solution: The user needs to publish the component to a team library in Figma:
Cause: The user's Figma plan does not include Code Connect access. Solution: The user needs to upgrade to an Organization or Enterprise plan, or contact their administrator.
Cause: The codebase search did not find a component with a matching name or structure. Solution: Ask the user if the component exists under a different name or in a different location. They may need to create the component first, or it might be located in an unexpected directory.
Cause: The source file path is incorrect, the component doesn't exist at that location, or the componentName doesn't match the actual export. Solution: Verify the source path is correct and relative to the project root. Check that the component is properly exported from the file with the exact componentName specified.
Cause: A Code Connect mapping already exists for this component. Solution: The component is already connected. If the user wants to update the mapping, they may need to remove the existing one first in Figma.
Cause: The user does not have edit permissions on the Figma file or library. Solution: The user needs edit access to the file containing the component. Contact the file owner or team admin.
Cause: The Figma URL format is incorrect or missing the node-id parameter.
Solution: Verify the URL follows the required format: https://figma.com/design/:fileKey/:fileName?node-id=1-2. The node-id parameter is required. Also ensure you convert 1-2 to 1:2 when calling tools.
Cause: The codebase contains multiple components that could match the Figma component.
Solution: Present all candidates to the user with their file paths and let them choose which one to connect. Different components might be used in different contexts (e.g., Button.tsx vs LinkButton.tsx).
Code Connect establishes a bidirectional link between design and code:
For designers: See which code component implements a Figma component For developers: Navigate from Figma designs directly to the code that implements them For teams: Maintain a single source of truth for component mappings
The mapping you create helps keep design and code in sync by making these connections explicit and discoverable.
For more information about Code Connect:
46a7d1b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.