[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openai-figma-code-connect-components":3,"mdc-evd1c7-key":39,"related-repo-openai-figma-code-connect-components":1882,"related-org-openai-figma-code-connect-components":1995},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":28,"repoUrl":29,"updatedAt":30,"license":31,"forks":32,"topics":33,"repo":34,"sourceUrl":37,"mdContent":38},"figma-code-connect-components","connect Figma designs to code components","Connects Figma design components to code components using Code Connect mapping tools. Use when user says \"code connect\", \"connect this component to code\", \"map this component\", \"link component to code\", \"create code connect mapping\", or wants to establish mappings between Figma designs and code implementations. For canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"openai","OpenAI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fopenai.png",[12,16,19,22,25],{"name":13,"slug":14,"type":15},"Design System","design-system","tag",{"name":17,"slug":18,"type":15},"UI Components","ui-components",{"name":20,"slug":21,"type":15},"Frontend","frontend",{"name":23,"slug":24,"type":15},"Figma","figma",{"name":26,"slug":27,"type":15},"Design","design",23787,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills","2026-05-10T05:59:52.971881",null,1614,[],{"repoUrl":29,"stars":28,"forks":32,"topics":35,"description":36},[],"Skills Catalog for Codex","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002F.curated\u002Ffigma-code-connect-components","---\nname: figma-code-connect-components\ndescription: Connects Figma design components to code components using Code Connect mapping tools. Use when user says \"code connect\", \"connect this component to code\", \"map this component\", \"link component to code\", \"create code connect mapping\", or wants to establish mappings between Figma designs and code implementations. For canvas writes via `use_figma`, use `figma-use`.\n---\n\n# Code Connect Components\n\n## Overview\n\nThis 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.\n\n## Skill Boundaries\n\n- Use this skill for `get_code_connect_suggestions` + `send_code_connect_mappings` workflows.\n- If the task requires writing to the Figma canvas with Plugin API scripts, switch to [figma-use](..\u002Ffigma-use\u002FSKILL.md).\n- If the task is building or updating a full-page screen in Figma from code or a description, switch to [figma-generate-design](..\u002Ffigma-generate-design\u002FSKILL.md).\n- If the task is implementing product code from Figma, switch to [figma-implement-design](..\u002Ffigma-implement-design\u002FSKILL.md).\n\n## Prerequisites\n\n- Figma MCP server must be connected and accessible\n- User must provide a Figma URL with node ID: `https:\u002F\u002Ffigma.com\u002Fdesign\u002F:fileKey\u002F:fileName?node-id=1-2`\n  - **IMPORTANT:** The Figma URL must include the `node-id` parameter. Code Connect mapping will fail without it.\n- **OR** when using `figma-desktop` MCP: User can select a node directly in the Figma desktop app (no URL required)\n- **IMPORTANT:** The Figma component must be published to a team library. Code Connect only works with published components or component sets.\n- **IMPORTANT:** Code Connect is only available on Organization and Enterprise plans.\n- Access to the project codebase for component scanning\n\n## Required Workflow\n\n**Follow these steps in order. Do not skip steps.**\n\n### Step 1: Get Code Connect Suggestions\n\nCall `get_code_connect_suggestions` to identify all unmapped components in a single operation. This tool automatically:\n\n- Fetches component info from the Figma scenegraph\n- Identifies published components in the selection\n- Checks existing Code Connect mappings and filters out already-connected components\n- Returns component names, properties, and thumbnail images for each unmapped component\n\n#### Option A: Using `figma-desktop` MCP (no URL provided)\n\nIf the `figma-desktop` MCP server is connected and the user has NOT provided a Figma URL, immediately call `get_code_connect_suggestions`. No URL parsing is needed — the desktop MCP server automatically uses the currently selected node from the open Figma file.\n\n**Note:** The user must have the Figma desktop app open with a node selected. `fileKey` is not passed as a parameter — the server uses the currently open file.\n\n#### Option B: When a Figma URL is provided\n\nParse the URL to extract `fileKey` and `nodeId`, then call `get_code_connect_suggestions`.\n\n**IMPORTANT:** When extracting the node ID from a Figma URL, convert the format:\n\n- URL format uses hyphens: `node-id=1-2`\n- Tool expects colons: `nodeId=1:2`\n\n**Parse the Figma URL:**\n\n- URL format: `https:\u002F\u002Ffigma.com\u002Fdesign\u002F:fileKey\u002F:fileName?node-id=1-2`\n- Extract file key: `:fileKey` (segment after `\u002Fdesign\u002F`)\n- Extract node ID: `1-2` from URL, then convert to `1:2` for the tool\n\n```\nget_code_connect_suggestions(fileKey=\":fileKey\", nodeId=\"1:2\")\n```\n\n**Handle the response:**\n\n- If the tool returns **\"No published components found in this selection\"** → inform the user and stop. The components may need to be published to a team library first.\n- If the tool returns **\"All component instances in this selection are already connected to code via Code Connect\"** → inform the user that everything is already mapped.\n- Otherwise, the response contains a list of unmapped components, each with:\n  - Component name\n  - Node ID\n  - Component properties (JSON with prop names and values)\n  - A thumbnail image of the component (for visual inspection)\n\n### Step 2: Scan Codebase for Matching Components\n\nFor each unmapped component returned by `get_code_connect_suggestions`, search the codebase for a matching code component.\n\n**What to look for:**\n\n- Component names that match or are similar to the Figma component name\n- Component structure that aligns with the Figma hierarchy\n- Props that correspond to Figma properties (variants, text, styles)\n- Files in typical component directories (`src\u002Fcomponents\u002F`, `components\u002F`, `ui\u002F`, etc.)\n\n**Search strategy:**\n\n1. Search for component files with matching names\n2. Read candidate files to check structure and props\n3. Compare the code component's props with the Figma component properties returned in Step 1\n4. Detect the programming language (TypeScript, JavaScript) and framework (React, Vue, etc.)\n5. Identify the best match based on structural similarity, weighing:\n   - Prop names and their correspondence to Figma properties\n   - Default values that match Figma defaults\n   - CSS classes or style objects\n   - Descriptive comments that clarify intent\n6. If multiple candidates are equally good, pick the one with the closest prop-interface match and document your reasoning in a 1-2 sentence comment before your tool call\n\n**Example search patterns:**\n\n- If Figma component is \"PrimaryButton\", search for `Button.tsx`, `PrimaryButton.tsx`, `Button.jsx`\n- Check common component paths: `src\u002Fcomponents\u002F`, `app\u002Fcomponents\u002F`, `lib\u002Fui\u002F`\n- Look for variant props like `variant`, `size`, `color` that match Figma variants\n\n### Step 3: Present Matches to User\n\nPresent your findings and let the user choose which mappings to create. The user can accept all, some, or none of the suggested mappings.\n\n**Present matches in this format:**\n\n```\nThe following components match the design:\n- [ComponentName](path\u002Fto\u002Fcomponent): DesignComponentName at nodeId [nodeId](figmaUrl?node-id=X-Y)\n- [AnotherComponent](path\u002Fto\u002Fanother): AnotherDesign at nodeId [nodeId2](figmaUrl?node-id=X-Y)\n\nWould you like to connect these components? You can accept all, select specific ones, or skip.\n```\n\n**If no exact match is found for a component:**\n\n- Show the 2 closest candidates\n- Explain the differences\n- Ask the user to confirm which component to use or provide the correct path\n\n**If the user declines all mappings**, inform them and stop. No further tool calls are needed.\n\n### Step 4: Create Code Connect Mappings\n\nOnce 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.\n\n**Example:**\n\n```\nsend_code_connect_mappings(\n  fileKey=\":fileKey\",\n  nodeId=\"1:2\",\n  mappings=[\n    { nodeId: \"1:2\", componentName: \"Button\", source: \"src\u002Fcomponents\u002FButton.tsx\", label: \"React\" },\n    { nodeId: \"1:5\", componentName: \"Card\", source: \"src\u002Fcomponents\u002FCard.tsx\", label: \"React\" }\n  ]\n)\n```\n\n**Key parameters for each mapping:**\n\n- `nodeId`: The Figma node ID (with colon format: `1:2`)\n- `componentName`: Name of the component to connect (e.g., \"Button\", \"Card\")\n- `source`: Path to the code component file (relative to project root)\n- `label`: The framework or language label for this Code Connect mapping. Valid values include:\n  - Web: 'React', 'Web Components', 'Vue', 'Svelte', 'Storybook', 'Javascript'\n  - iOS: 'Swift UIKit', 'Objective-C UIKit', 'SwiftUI'\n  - Android: 'Compose', 'Java', 'Kotlin', 'Android XML Layout'\n  - Cross-platform: 'Flutter'\n  - Docs: 'Markdown'\n\n**After the call:**\n\n- On success: the tool confirms the mappings were created\n- On error: the tool reports which specific mappings failed and why (e.g., \"Component is already mapped to code\", \"Published component not found\", \"Insufficient permissions\")\n\n**Provide a summary** after processing:\n\n```\nCode Connect Summary:\n- Successfully connected: 3\n  - Button (1:2) → src\u002Fcomponents\u002FButton.tsx\n  - Card (1:5) → src\u002Fcomponents\u002FCard.tsx\n  - Input (1:8) → src\u002Fcomponents\u002FInput.tsx\n- Could not connect: 1\n  - CustomWidget (1:10) - No matching component found in codebase\n```\n\n## Examples\n\n### Example 1: Connecting a Button Component\n\nUser says: \"Connect this Figma button to my code: https:\u002F\u002Ffigma.com\u002Fdesign\u002FkL9xQn2VwM8pYrTb4ZcHjF\u002FDesignSystem?node-id=42-15\"\n\n**Actions:**\n\n1. Parse URL: fileKey=`kL9xQn2VwM8pYrTb4ZcHjF`, nodeId=`42-15` → convert to `42:15`\n2. Run `get_code_connect_suggestions(fileKey=\"kL9xQn2VwM8pYrTb4ZcHjF\", nodeId=\"42:15\")`\n3. Response shows: Button component (unmapped) with `variant` (primary\u002Fsecondary) and `size` (sm\u002Fmd\u002Flg) properties, plus a thumbnail image\n4. Search codebase for Button components: Find `src\u002Fcomponents\u002FButton.tsx`\n5. Read `Button.tsx` and confirm it has `variant` and `size` props\n6. Present to user:\n   ```\n   I found a match:\n   - [Button](src\u002Fcomponents\u002FButton.tsx): Button at nodeId [42:15](https:\u002F\u002Ffigma.com\u002Fdesign\u002FkL9xQn2VwM8pYrTb4ZcHjF\u002FDesignSystem?node-id=42-15)\n\n   Would you like to connect this component?\n   ```\n\n7. User confirms: \"Yes\"\n8. Detect that it's a TypeScript React component\n9. Run `send_code_connect_mappings(fileKey=\"kL9xQn2VwM8pYrTb4ZcHjF\", nodeId=\"42:15\", mappings=[{ nodeId: \"42:15\", componentName: \"Button\", source: \"src\u002Fcomponents\u002FButton.tsx\", label: \"React\" }])`\n\n**Result:** Figma button component is now connected to the code Button component.\n\n### Example 2: Multiple Components with Partial Selection\n\nUser says: \"Connect components in this frame: https:\u002F\u002Ffigma.com\u002Fdesign\u002FpR8mNv5KqXzGwY2JtCfL4D\u002FComponents?node-id=10-50\"\n\n**Actions:**\n\n1. Parse URL: fileKey=`pR8mNv5KqXzGwY2JtCfL4D`, nodeId=`10-50` → convert to `10:50`\n2. Run `get_code_connect_suggestions(fileKey=\"pR8mNv5KqXzGwY2JtCfL4D\", nodeId=\"10:50\")`\n3. Response shows 3 unmapped components: ProductCard, Badge, and CustomWidget\n4. Search codebase:\n   - ProductCard: Found `src\u002Fcomponents\u002FProductCard.tsx` (props match)\n   - Badge: Found `src\u002Fcomponents\u002FBadge.tsx` (props match)\n   - CustomWidget: No matching component found\n5. Present to user:\n   ```\n   The following components match the design:\n   - [ProductCard](src\u002Fcomponents\u002FProductCard.tsx): ProductCard at nodeId [10:51](https:\u002F\u002Ffigma.com\u002Fdesign\u002FpR8mNv5KqXzGwY2JtCfL4D\u002FComponents?node-id=10-51)\n   - [Badge](src\u002Fcomponents\u002FBadge.tsx): Badge at nodeId [10:52](https:\u002F\u002Ffigma.com\u002Fdesign\u002FpR8mNv5KqXzGwY2JtCfL4D\u002FComponents?node-id=10-52)\n\n   I couldn't find a match for CustomWidget (10:53).\n\n   Would you like to connect these components? You can accept all, select specific ones, or skip.\n   ```\n\n6. User: \"Just connect ProductCard, skip Badge for now\"\n7. Run `send_code_connect_mappings(fileKey=\"pR8mNv5KqXzGwY2JtCfL4D\", nodeId=\"10:50\", mappings=[{ nodeId: \"10:51\", componentName: \"ProductCard\", source: \"src\u002Fcomponents\u002FProductCard.tsx\", label: \"React\" }])`\n\n**Result:** Only ProductCard is connected, per the user's selection.\n\n### Example 3: Component Needs Creation\n\nUser says: \"Connect this icon: https:\u002F\u002Ffigma.com\u002Fdesign\u002F8yJDMeWDyBz71EnMOSuUiw\u002FIcons?node-id=5-20\"\n\n**Actions:**\n\n1. Parse URL: fileKey=`8yJDMeWDyBz71EnMOSuUiw`, nodeId=`5-20` → convert to `5:20`\n2. Run `get_code_connect_suggestions(fileKey=\"8yJDMeWDyBz71EnMOSuUiw\", nodeId=\"5:20\")`\n3. Response shows: CheckIcon component (unmapped) with color and size properties\n4. Search codebase for CheckIcon: No matches found\n5. Search for generic Icon components: Find `src\u002Ficons\u002F` directory with other icons\n6. Report to user: \"I couldn't find a CheckIcon component, but I found an icons directory at src\u002Ficons\u002F. Would you like to:\n   - Create a new CheckIcon.tsx component first, then connect it\n   - Connect to a different existing icon\n   - Provide the path to the CheckIcon if it exists elsewhere\"\n7. User provides path: \"src\u002Ficons\u002FCheckIcon.tsx\"\n8. Detect language and framework from the file\n9. Run `send_code_connect_mappings(fileKey=\"8yJDMeWDyBz71EnMOSuUiw\", nodeId=\"5:20\", mappings=[{ nodeId: \"5:20\", componentName: \"CheckIcon\", source: \"src\u002Ficons\u002FCheckIcon.tsx\", label: \"React\" }])`\n\n**Result:** CheckIcon component is successfully connected to the Figma design.\n\n## Best Practices\n\n### Proactive Component Discovery\n\nDon'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.\n\n### Accurate Structure Matching\n\nWhen comparing Figma components to code components, look beyond just names. Check that:\n\n- Props align (variant types, size options, etc.)\n- Component hierarchy matches (nested elements)\n- The component serves the same purpose\n\n### Clear Communication\n\nWhen offering to create a mapping, clearly explain:\n\n- What you found\n- Why it's a good match\n- What the mapping will do\n- How props will be connected\n\n### Handle Ambiguity\n\nIf multiple components could match, present options rather than guessing. Let the user make the final decision about which component to connect.\n\n### Graceful Degradation\n\nIf you can't find an exact match, provide helpful next steps:\n\n- Show close candidates\n- Suggest component creation\n- Ask for user guidance\n\n## Common Issues and Solutions\n\n### Issue: \"No published components found in this selection\"\n\n**Cause:** The Figma component is not published to a team library. Code Connect only works with published components.\n**Solution:** The user needs to publish the component to a team library in Figma:\n\n1. In Figma, select the component or component set\n2. Right-click and choose \"Publish to library\" or use the Team Library publish modal\n3. Publish the component\n4. Once published, retry the Code Connect mapping with the same node ID\n\n### Issue: \"Code Connect is only available on Organization and Enterprise plans\"\n\n**Cause:** The user's Figma plan does not include Code Connect access.\n**Solution:** The user needs to upgrade to an Organization or Enterprise plan, or contact their administrator.\n\n### Issue: No matching component found in codebase\n\n**Cause:** The codebase search did not find a component with a matching name or structure.\n**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.\n\n### Issue: \"Published component not found\" (CODE_CONNECT_ASSET_NOT_FOUND)\n\n**Cause:** The source file path is incorrect, the component doesn't exist at that location, or the componentName doesn't match the actual export.\n**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.\n\n### Issue: \"Component is already mapped to code\" (CODE_CONNECT_MAPPING_ALREADY_EXISTS)\n\n**Cause:** A Code Connect mapping already exists for this component.\n**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.\n\n### Issue: \"Insufficient permissions to create mapping\" (CODE_CONNECT_INSUFFICIENT_PERMISSIONS)\n\n**Cause:** The user does not have edit permissions on the Figma file or library.\n**Solution:** The user needs edit access to the file containing the component. Contact the file owner or team admin.\n\n### Issue: Code Connect mapping fails with URL errors\n\n**Cause:** The Figma URL format is incorrect or missing the `node-id` parameter.\n**Solution:** Verify the URL follows the required format: `https:\u002F\u002Ffigma.com\u002Fdesign\u002F:fileKey\u002F:fileName?node-id=1-2`. The `node-id` parameter is required. Also ensure you convert `1-2` to `1:2` when calling tools.\n\n### Issue: Multiple similar components found\n\n**Cause:** The codebase contains multiple components that could match the Figma component.\n**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`).\n\n## Understanding Code Connect\n\nCode Connect establishes a bidirectional link between design and code:\n\n**For designers:** See which code component implements a Figma component\n**For developers:** Navigate from Figma designs directly to the code that implements them\n**For teams:** Maintain a single source of truth for component mappings\n\nThe mapping you create helps keep design and code in sync by making these connections explicit and discoverable.\n\n## Additional Resources\n\nFor more information about Code Connect:\n\n- [Code Connect Documentation](https:\u002F\u002Fhelp.figma.com\u002Fhc\u002Fen-us\u002Farticles\u002F23920389749655-Code-Connect)\n- [Figma MCP Server Tools and Prompts](https:\u002F\u002Fdevelopers.figma.com\u002Fdocs\u002Ffigma-mcp-server\u002Ftools-and-prompts\u002F)\n",{"data":40,"body":41},{"name":4,"description":6},{"type":42,"children":43},"root",[44,53,60,66,72,137,143,225,231,239,246,258,281,295,314,332,338,364,373,398,406,461,473,481,535,541,553,561,607,615,672,680,759,765,770,778,787,795,813,823,829,841,849,858,866,946,954,967,977,986,992,998,1012,1020,1150,1160,1166,1178,1185,1293,1302,1308,1320,1327,1430,1439,1445,1451,1456,1462,1467,1485,1491,1496,1519,1525,1530,1536,1541,1559,1565,1571,1588,1611,1617,1632,1638,1653,1659,1674,1680,1695,1701,1716,1722,1772,1778,1808,1814,1819,1843,1848,1854,1859],{"type":45,"tag":46,"props":47,"children":49},"element","h1",{"id":48},"code-connect-components",[50],{"type":51,"value":52},"text","Code Connect Components",{"type":45,"tag":54,"props":55,"children":57},"h2",{"id":56},"overview",[58],{"type":51,"value":59},"Overview",{"type":45,"tag":61,"props":62,"children":63},"p",{},[64],{"type":51,"value":65},"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.",{"type":45,"tag":54,"props":67,"children":69},{"id":68},"skill-boundaries",[70],{"type":51,"value":71},"Skill Boundaries",{"type":45,"tag":73,"props":74,"children":75},"ul",{},[76,99,113,125],{"type":45,"tag":77,"props":78,"children":79},"li",{},[80,82,89,91,97],{"type":51,"value":81},"Use this skill for ",{"type":45,"tag":83,"props":84,"children":86},"code",{"className":85},[],[87],{"type":51,"value":88},"get_code_connect_suggestions",{"type":51,"value":90}," + ",{"type":45,"tag":83,"props":92,"children":94},{"className":93},[],[95],{"type":51,"value":96},"send_code_connect_mappings",{"type":51,"value":98}," workflows.",{"type":45,"tag":77,"props":100,"children":101},{},[102,104,111],{"type":51,"value":103},"If the task requires writing to the Figma canvas with Plugin API scripts, switch to ",{"type":45,"tag":105,"props":106,"children":108},"a",{"href":107},"..\u002Ffigma-use\u002FSKILL.md",[109],{"type":51,"value":110},"figma-use",{"type":51,"value":112},".",{"type":45,"tag":77,"props":114,"children":115},{},[116,118,124],{"type":51,"value":117},"If the task is building or updating a full-page screen in Figma from code or a description, switch to ",{"type":45,"tag":105,"props":119,"children":121},{"href":120},"..\u002Ffigma-generate-design\u002FSKILL.md",[122],{"type":51,"value":123},"figma-generate-design",{"type":51,"value":112},{"type":45,"tag":77,"props":126,"children":127},{},[128,130,136],{"type":51,"value":129},"If the task is implementing product code from Figma, switch to ",{"type":45,"tag":105,"props":131,"children":133},{"href":132},"..\u002Ffigma-implement-design\u002FSKILL.md",[134],{"type":51,"value":135},"figma-implement-design",{"type":51,"value":112},{"type":45,"tag":54,"props":138,"children":140},{"id":139},"prerequisites",[141],{"type":51,"value":142},"Prerequisites",{"type":45,"tag":73,"props":144,"children":145},{},[146,151,184,202,211,220],{"type":45,"tag":77,"props":147,"children":148},{},[149],{"type":51,"value":150},"Figma MCP server must be connected and accessible",{"type":45,"tag":77,"props":152,"children":153},{},[154,156,162],{"type":51,"value":155},"User must provide a Figma URL with node ID: ",{"type":45,"tag":83,"props":157,"children":159},{"className":158},[],[160],{"type":51,"value":161},"https:\u002F\u002Ffigma.com\u002Fdesign\u002F:fileKey\u002F:fileName?node-id=1-2",{"type":45,"tag":73,"props":163,"children":164},{},[165],{"type":45,"tag":77,"props":166,"children":167},{},[168,174,176,182],{"type":45,"tag":169,"props":170,"children":171},"strong",{},[172],{"type":51,"value":173},"IMPORTANT:",{"type":51,"value":175}," The Figma URL must include the ",{"type":45,"tag":83,"props":177,"children":179},{"className":178},[],[180],{"type":51,"value":181},"node-id",{"type":51,"value":183}," parameter. Code Connect mapping will fail without it.",{"type":45,"tag":77,"props":185,"children":186},{},[187,192,194,200],{"type":45,"tag":169,"props":188,"children":189},{},[190],{"type":51,"value":191},"OR",{"type":51,"value":193}," when using ",{"type":45,"tag":83,"props":195,"children":197},{"className":196},[],[198],{"type":51,"value":199},"figma-desktop",{"type":51,"value":201}," MCP: User can select a node directly in the Figma desktop app (no URL required)",{"type":45,"tag":77,"props":203,"children":204},{},[205,209],{"type":45,"tag":169,"props":206,"children":207},{},[208],{"type":51,"value":173},{"type":51,"value":210}," The Figma component must be published to a team library. Code Connect only works with published components or component sets.",{"type":45,"tag":77,"props":212,"children":213},{},[214,218],{"type":45,"tag":169,"props":215,"children":216},{},[217],{"type":51,"value":173},{"type":51,"value":219}," Code Connect is only available on Organization and Enterprise plans.",{"type":45,"tag":77,"props":221,"children":222},{},[223],{"type":51,"value":224},"Access to the project codebase for component scanning",{"type":45,"tag":54,"props":226,"children":228},{"id":227},"required-workflow",[229],{"type":51,"value":230},"Required Workflow",{"type":45,"tag":61,"props":232,"children":233},{},[234],{"type":45,"tag":169,"props":235,"children":236},{},[237],{"type":51,"value":238},"Follow these steps in order. Do not skip steps.",{"type":45,"tag":240,"props":241,"children":243},"h3",{"id":242},"step-1-get-code-connect-suggestions",[244],{"type":51,"value":245},"Step 1: Get Code Connect Suggestions",{"type":45,"tag":61,"props":247,"children":248},{},[249,251,256],{"type":51,"value":250},"Call ",{"type":45,"tag":83,"props":252,"children":254},{"className":253},[],[255],{"type":51,"value":88},{"type":51,"value":257}," to identify all unmapped components in a single operation. This tool automatically:",{"type":45,"tag":73,"props":259,"children":260},{},[261,266,271,276],{"type":45,"tag":77,"props":262,"children":263},{},[264],{"type":51,"value":265},"Fetches component info from the Figma scenegraph",{"type":45,"tag":77,"props":267,"children":268},{},[269],{"type":51,"value":270},"Identifies published components in the selection",{"type":45,"tag":77,"props":272,"children":273},{},[274],{"type":51,"value":275},"Checks existing Code Connect mappings and filters out already-connected components",{"type":45,"tag":77,"props":277,"children":278},{},[279],{"type":51,"value":280},"Returns component names, properties, and thumbnail images for each unmapped component",{"type":45,"tag":282,"props":283,"children":285},"h4",{"id":284},"option-a-using-figma-desktop-mcp-no-url-provided",[286,288,293],{"type":51,"value":287},"Option A: Using ",{"type":45,"tag":83,"props":289,"children":291},{"className":290},[],[292],{"type":51,"value":199},{"type":51,"value":294}," MCP (no URL provided)",{"type":45,"tag":61,"props":296,"children":297},{},[298,300,305,307,312],{"type":51,"value":299},"If the ",{"type":45,"tag":83,"props":301,"children":303},{"className":302},[],[304],{"type":51,"value":199},{"type":51,"value":306}," MCP server is connected and the user has NOT provided a Figma URL, immediately call ",{"type":45,"tag":83,"props":308,"children":310},{"className":309},[],[311],{"type":51,"value":88},{"type":51,"value":313},". No URL parsing is needed — the desktop MCP server automatically uses the currently selected node from the open Figma file.",{"type":45,"tag":61,"props":315,"children":316},{},[317,322,324,330],{"type":45,"tag":169,"props":318,"children":319},{},[320],{"type":51,"value":321},"Note:",{"type":51,"value":323}," The user must have the Figma desktop app open with a node selected. ",{"type":45,"tag":83,"props":325,"children":327},{"className":326},[],[328],{"type":51,"value":329},"fileKey",{"type":51,"value":331}," is not passed as a parameter — the server uses the currently open file.",{"type":45,"tag":282,"props":333,"children":335},{"id":334},"option-b-when-a-figma-url-is-provided",[336],{"type":51,"value":337},"Option B: When a Figma URL is provided",{"type":45,"tag":61,"props":339,"children":340},{},[341,343,348,350,356,358,363],{"type":51,"value":342},"Parse the URL to extract ",{"type":45,"tag":83,"props":344,"children":346},{"className":345},[],[347],{"type":51,"value":329},{"type":51,"value":349}," and ",{"type":45,"tag":83,"props":351,"children":353},{"className":352},[],[354],{"type":51,"value":355},"nodeId",{"type":51,"value":357},", then call ",{"type":45,"tag":83,"props":359,"children":361},{"className":360},[],[362],{"type":51,"value":88},{"type":51,"value":112},{"type":45,"tag":61,"props":365,"children":366},{},[367,371],{"type":45,"tag":169,"props":368,"children":369},{},[370],{"type":51,"value":173},{"type":51,"value":372}," When extracting the node ID from a Figma URL, convert the format:",{"type":45,"tag":73,"props":374,"children":375},{},[376,387],{"type":45,"tag":77,"props":377,"children":378},{},[379,381],{"type":51,"value":380},"URL format uses hyphens: ",{"type":45,"tag":83,"props":382,"children":384},{"className":383},[],[385],{"type":51,"value":386},"node-id=1-2",{"type":45,"tag":77,"props":388,"children":389},{},[390,392],{"type":51,"value":391},"Tool expects colons: ",{"type":45,"tag":83,"props":393,"children":395},{"className":394},[],[396],{"type":51,"value":397},"nodeId=1:2",{"type":45,"tag":61,"props":399,"children":400},{},[401],{"type":45,"tag":169,"props":402,"children":403},{},[404],{"type":51,"value":405},"Parse the Figma URL:",{"type":45,"tag":73,"props":407,"children":408},{},[409,419,440],{"type":45,"tag":77,"props":410,"children":411},{},[412,414],{"type":51,"value":413},"URL format: ",{"type":45,"tag":83,"props":415,"children":417},{"className":416},[],[418],{"type":51,"value":161},{"type":45,"tag":77,"props":420,"children":421},{},[422,424,430,432,438],{"type":51,"value":423},"Extract file key: ",{"type":45,"tag":83,"props":425,"children":427},{"className":426},[],[428],{"type":51,"value":429},":fileKey",{"type":51,"value":431}," (segment after ",{"type":45,"tag":83,"props":433,"children":435},{"className":434},[],[436],{"type":51,"value":437},"\u002Fdesign\u002F",{"type":51,"value":439},")",{"type":45,"tag":77,"props":441,"children":442},{},[443,445,451,453,459],{"type":51,"value":444},"Extract node ID: ",{"type":45,"tag":83,"props":446,"children":448},{"className":447},[],[449],{"type":51,"value":450},"1-2",{"type":51,"value":452}," from URL, then convert to ",{"type":45,"tag":83,"props":454,"children":456},{"className":455},[],[457],{"type":51,"value":458},"1:2",{"type":51,"value":460}," for the tool",{"type":45,"tag":462,"props":463,"children":467},"pre",{"className":464,"code":466,"language":51},[465],"language-text","get_code_connect_suggestions(fileKey=\":fileKey\", nodeId=\"1:2\")\n",[468],{"type":45,"tag":83,"props":469,"children":471},{"__ignoreMap":470},"",[472],{"type":51,"value":466},{"type":45,"tag":61,"props":474,"children":475},{},[476],{"type":45,"tag":169,"props":477,"children":478},{},[479],{"type":51,"value":480},"Handle the response:",{"type":45,"tag":73,"props":482,"children":483},{},[484,496,507],{"type":45,"tag":77,"props":485,"children":486},{},[487,489,494],{"type":51,"value":488},"If the tool returns ",{"type":45,"tag":169,"props":490,"children":491},{},[492],{"type":51,"value":493},"\"No published components found in this selection\"",{"type":51,"value":495}," → inform the user and stop. The components may need to be published to a team library first.",{"type":45,"tag":77,"props":497,"children":498},{},[499,500,505],{"type":51,"value":488},{"type":45,"tag":169,"props":501,"children":502},{},[503],{"type":51,"value":504},"\"All component instances in this selection are already connected to code via Code Connect\"",{"type":51,"value":506}," → inform the user that everything is already mapped.",{"type":45,"tag":77,"props":508,"children":509},{},[510,512],{"type":51,"value":511},"Otherwise, the response contains a list of unmapped components, each with:\n",{"type":45,"tag":73,"props":513,"children":514},{},[515,520,525,530],{"type":45,"tag":77,"props":516,"children":517},{},[518],{"type":51,"value":519},"Component name",{"type":45,"tag":77,"props":521,"children":522},{},[523],{"type":51,"value":524},"Node ID",{"type":45,"tag":77,"props":526,"children":527},{},[528],{"type":51,"value":529},"Component properties (JSON with prop names and values)",{"type":45,"tag":77,"props":531,"children":532},{},[533],{"type":51,"value":534},"A thumbnail image of the component (for visual inspection)",{"type":45,"tag":240,"props":536,"children":538},{"id":537},"step-2-scan-codebase-for-matching-components",[539],{"type":51,"value":540},"Step 2: Scan Codebase for Matching Components",{"type":45,"tag":61,"props":542,"children":543},{},[544,546,551],{"type":51,"value":545},"For each unmapped component returned by ",{"type":45,"tag":83,"props":547,"children":549},{"className":548},[],[550],{"type":51,"value":88},{"type":51,"value":552},", search the codebase for a matching code component.",{"type":45,"tag":61,"props":554,"children":555},{},[556],{"type":45,"tag":169,"props":557,"children":558},{},[559],{"type":51,"value":560},"What to look for:",{"type":45,"tag":73,"props":562,"children":563},{},[564,569,574,579],{"type":45,"tag":77,"props":565,"children":566},{},[567],{"type":51,"value":568},"Component names that match or are similar to the Figma component name",{"type":45,"tag":77,"props":570,"children":571},{},[572],{"type":51,"value":573},"Component structure that aligns with the Figma hierarchy",{"type":45,"tag":77,"props":575,"children":576},{},[577],{"type":51,"value":578},"Props that correspond to Figma properties (variants, text, styles)",{"type":45,"tag":77,"props":580,"children":581},{},[582,584,590,592,598,599,605],{"type":51,"value":583},"Files in typical component directories (",{"type":45,"tag":83,"props":585,"children":587},{"className":586},[],[588],{"type":51,"value":589},"src\u002Fcomponents\u002F",{"type":51,"value":591},", ",{"type":45,"tag":83,"props":593,"children":595},{"className":594},[],[596],{"type":51,"value":597},"components\u002F",{"type":51,"value":591},{"type":45,"tag":83,"props":600,"children":602},{"className":601},[],[603],{"type":51,"value":604},"ui\u002F",{"type":51,"value":606},", etc.)",{"type":45,"tag":61,"props":608,"children":609},{},[610],{"type":45,"tag":169,"props":611,"children":612},{},[613],{"type":51,"value":614},"Search strategy:",{"type":45,"tag":616,"props":617,"children":618},"ol",{},[619,624,629,634,639,667],{"type":45,"tag":77,"props":620,"children":621},{},[622],{"type":51,"value":623},"Search for component files with matching names",{"type":45,"tag":77,"props":625,"children":626},{},[627],{"type":51,"value":628},"Read candidate files to check structure and props",{"type":45,"tag":77,"props":630,"children":631},{},[632],{"type":51,"value":633},"Compare the code component's props with the Figma component properties returned in Step 1",{"type":45,"tag":77,"props":635,"children":636},{},[637],{"type":51,"value":638},"Detect the programming language (TypeScript, JavaScript) and framework (React, Vue, etc.)",{"type":45,"tag":77,"props":640,"children":641},{},[642,644],{"type":51,"value":643},"Identify the best match based on structural similarity, weighing:\n",{"type":45,"tag":73,"props":645,"children":646},{},[647,652,657,662],{"type":45,"tag":77,"props":648,"children":649},{},[650],{"type":51,"value":651},"Prop names and their correspondence to Figma properties",{"type":45,"tag":77,"props":653,"children":654},{},[655],{"type":51,"value":656},"Default values that match Figma defaults",{"type":45,"tag":77,"props":658,"children":659},{},[660],{"type":51,"value":661},"CSS classes or style objects",{"type":45,"tag":77,"props":663,"children":664},{},[665],{"type":51,"value":666},"Descriptive comments that clarify intent",{"type":45,"tag":77,"props":668,"children":669},{},[670],{"type":51,"value":671},"If multiple candidates are equally good, pick the one with the closest prop-interface match and document your reasoning in a 1-2 sentence comment before your tool call",{"type":45,"tag":61,"props":673,"children":674},{},[675],{"type":45,"tag":169,"props":676,"children":677},{},[678],{"type":51,"value":679},"Example search patterns:",{"type":45,"tag":73,"props":681,"children":682},{},[683,708,732],{"type":45,"tag":77,"props":684,"children":685},{},[686,688,694,695,701,702],{"type":51,"value":687},"If Figma component is \"PrimaryButton\", search for ",{"type":45,"tag":83,"props":689,"children":691},{"className":690},[],[692],{"type":51,"value":693},"Button.tsx",{"type":51,"value":591},{"type":45,"tag":83,"props":696,"children":698},{"className":697},[],[699],{"type":51,"value":700},"PrimaryButton.tsx",{"type":51,"value":591},{"type":45,"tag":83,"props":703,"children":705},{"className":704},[],[706],{"type":51,"value":707},"Button.jsx",{"type":45,"tag":77,"props":709,"children":710},{},[711,713,718,719,725,726],{"type":51,"value":712},"Check common component paths: ",{"type":45,"tag":83,"props":714,"children":716},{"className":715},[],[717],{"type":51,"value":589},{"type":51,"value":591},{"type":45,"tag":83,"props":720,"children":722},{"className":721},[],[723],{"type":51,"value":724},"app\u002Fcomponents\u002F",{"type":51,"value":591},{"type":45,"tag":83,"props":727,"children":729},{"className":728},[],[730],{"type":51,"value":731},"lib\u002Fui\u002F",{"type":45,"tag":77,"props":733,"children":734},{},[735,737,743,744,750,751,757],{"type":51,"value":736},"Look for variant props like ",{"type":45,"tag":83,"props":738,"children":740},{"className":739},[],[741],{"type":51,"value":742},"variant",{"type":51,"value":591},{"type":45,"tag":83,"props":745,"children":747},{"className":746},[],[748],{"type":51,"value":749},"size",{"type":51,"value":591},{"type":45,"tag":83,"props":752,"children":754},{"className":753},[],[755],{"type":51,"value":756},"color",{"type":51,"value":758}," that match Figma variants",{"type":45,"tag":240,"props":760,"children":762},{"id":761},"step-3-present-matches-to-user",[763],{"type":51,"value":764},"Step 3: Present Matches to User",{"type":45,"tag":61,"props":766,"children":767},{},[768],{"type":51,"value":769},"Present your findings and let the user choose which mappings to create. The user can accept all, some, or none of the suggested mappings.",{"type":45,"tag":61,"props":771,"children":772},{},[773],{"type":45,"tag":169,"props":774,"children":775},{},[776],{"type":51,"value":777},"Present matches in this format:",{"type":45,"tag":462,"props":779,"children":782},{"className":780,"code":781,"language":51},[465],"The following components match the design:\n- [ComponentName](path\u002Fto\u002Fcomponent): DesignComponentName at nodeId [nodeId](figmaUrl?node-id=X-Y)\n- [AnotherComponent](path\u002Fto\u002Fanother): AnotherDesign at nodeId [nodeId2](figmaUrl?node-id=X-Y)\n\nWould you like to connect these components? You can accept all, select specific ones, or skip.\n",[783],{"type":45,"tag":83,"props":784,"children":785},{"__ignoreMap":470},[786],{"type":51,"value":781},{"type":45,"tag":61,"props":788,"children":789},{},[790],{"type":45,"tag":169,"props":791,"children":792},{},[793],{"type":51,"value":794},"If no exact match is found for a component:",{"type":45,"tag":73,"props":796,"children":797},{},[798,803,808],{"type":45,"tag":77,"props":799,"children":800},{},[801],{"type":51,"value":802},"Show the 2 closest candidates",{"type":45,"tag":77,"props":804,"children":805},{},[806],{"type":51,"value":807},"Explain the differences",{"type":45,"tag":77,"props":809,"children":810},{},[811],{"type":51,"value":812},"Ask the user to confirm which component to use or provide the correct path",{"type":45,"tag":61,"props":814,"children":815},{},[816,821],{"type":45,"tag":169,"props":817,"children":818},{},[819],{"type":51,"value":820},"If the user declines all mappings",{"type":51,"value":822},", inform them and stop. No further tool calls are needed.",{"type":45,"tag":240,"props":824,"children":826},{"id":825},"step-4-create-code-connect-mappings",[827],{"type":51,"value":828},"Step 4: Create Code Connect Mappings",{"type":45,"tag":61,"props":830,"children":831},{},[832,834,839],{"type":51,"value":833},"Once the user confirms their selections, call ",{"type":45,"tag":83,"props":835,"children":837},{"className":836},[],[838],{"type":51,"value":96},{"type":51,"value":840}," with only the accepted mappings. This tool handles batch creation of all mappings in a single call.",{"type":45,"tag":61,"props":842,"children":843},{},[844],{"type":45,"tag":169,"props":845,"children":846},{},[847],{"type":51,"value":848},"Example:",{"type":45,"tag":462,"props":850,"children":853},{"className":851,"code":852,"language":51},[465],"send_code_connect_mappings(\n  fileKey=\":fileKey\",\n  nodeId=\"1:2\",\n  mappings=[\n    { nodeId: \"1:2\", componentName: \"Button\", source: \"src\u002Fcomponents\u002FButton.tsx\", label: \"React\" },\n    { nodeId: \"1:5\", componentName: \"Card\", source: \"src\u002Fcomponents\u002FCard.tsx\", label: \"React\" }\n  ]\n)\n",[854],{"type":45,"tag":83,"props":855,"children":856},{"__ignoreMap":470},[857],{"type":51,"value":852},{"type":45,"tag":61,"props":859,"children":860},{},[861],{"type":45,"tag":169,"props":862,"children":863},{},[864],{"type":51,"value":865},"Key parameters for each mapping:",{"type":45,"tag":73,"props":867,"children":868},{},[869,885,896,907],{"type":45,"tag":77,"props":870,"children":871},{},[872,877,879,884],{"type":45,"tag":83,"props":873,"children":875},{"className":874},[],[876],{"type":51,"value":355},{"type":51,"value":878},": The Figma node ID (with colon format: ",{"type":45,"tag":83,"props":880,"children":882},{"className":881},[],[883],{"type":51,"value":458},{"type":51,"value":439},{"type":45,"tag":77,"props":886,"children":887},{},[888,894],{"type":45,"tag":83,"props":889,"children":891},{"className":890},[],[892],{"type":51,"value":893},"componentName",{"type":51,"value":895},": Name of the component to connect (e.g., \"Button\", \"Card\")",{"type":45,"tag":77,"props":897,"children":898},{},[899,905],{"type":45,"tag":83,"props":900,"children":902},{"className":901},[],[903],{"type":51,"value":904},"source",{"type":51,"value":906},": Path to the code component file (relative to project root)",{"type":45,"tag":77,"props":908,"children":909},{},[910,916,918],{"type":45,"tag":83,"props":911,"children":913},{"className":912},[],[914],{"type":51,"value":915},"label",{"type":51,"value":917},": The framework or language label for this Code Connect mapping. Valid values include:\n",{"type":45,"tag":73,"props":919,"children":920},{},[921,926,931,936,941],{"type":45,"tag":77,"props":922,"children":923},{},[924],{"type":51,"value":925},"Web: 'React', 'Web Components', 'Vue', 'Svelte', 'Storybook', 'Javascript'",{"type":45,"tag":77,"props":927,"children":928},{},[929],{"type":51,"value":930},"iOS: 'Swift UIKit', 'Objective-C UIKit', 'SwiftUI'",{"type":45,"tag":77,"props":932,"children":933},{},[934],{"type":51,"value":935},"Android: 'Compose', 'Java', 'Kotlin', 'Android XML Layout'",{"type":45,"tag":77,"props":937,"children":938},{},[939],{"type":51,"value":940},"Cross-platform: 'Flutter'",{"type":45,"tag":77,"props":942,"children":943},{},[944],{"type":51,"value":945},"Docs: 'Markdown'",{"type":45,"tag":61,"props":947,"children":948},{},[949],{"type":45,"tag":169,"props":950,"children":951},{},[952],{"type":51,"value":953},"After the call:",{"type":45,"tag":73,"props":955,"children":956},{},[957,962],{"type":45,"tag":77,"props":958,"children":959},{},[960],{"type":51,"value":961},"On success: the tool confirms the mappings were created",{"type":45,"tag":77,"props":963,"children":964},{},[965],{"type":51,"value":966},"On error: the tool reports which specific mappings failed and why (e.g., \"Component is already mapped to code\", \"Published component not found\", \"Insufficient permissions\")",{"type":45,"tag":61,"props":968,"children":969},{},[970,975],{"type":45,"tag":169,"props":971,"children":972},{},[973],{"type":51,"value":974},"Provide a summary",{"type":51,"value":976}," after processing:",{"type":45,"tag":462,"props":978,"children":981},{"className":979,"code":980,"language":51},[465],"Code Connect Summary:\n- Successfully connected: 3\n  - Button (1:2) → src\u002Fcomponents\u002FButton.tsx\n  - Card (1:5) → src\u002Fcomponents\u002FCard.tsx\n  - Input (1:8) → src\u002Fcomponents\u002FInput.tsx\n- Could not connect: 1\n  - CustomWidget (1:10) - No matching component found in codebase\n",[982],{"type":45,"tag":83,"props":983,"children":984},{"__ignoreMap":470},[985],{"type":51,"value":980},{"type":45,"tag":54,"props":987,"children":989},{"id":988},"examples",[990],{"type":51,"value":991},"Examples",{"type":45,"tag":240,"props":993,"children":995},{"id":994},"example-1-connecting-a-button-component",[996],{"type":51,"value":997},"Example 1: Connecting a Button Component",{"type":45,"tag":61,"props":999,"children":1000},{},[1001,1003,1010],{"type":51,"value":1002},"User says: \"Connect this Figma button to my code: ",{"type":45,"tag":105,"props":1004,"children":1008},{"href":1005,"rel":1006},"https:\u002F\u002Ffigma.com\u002Fdesign\u002FkL9xQn2VwM8pYrTb4ZcHjF\u002FDesignSystem?node-id=42-15",[1007],"nofollow",[1009],{"type":51,"value":1005},{"type":51,"value":1011},"\"",{"type":45,"tag":61,"props":1013,"children":1014},{},[1015],{"type":45,"tag":169,"props":1016,"children":1017},{},[1018],{"type":51,"value":1019},"Actions:",{"type":45,"tag":616,"props":1021,"children":1022},{},[1023,1050,1061,1080,1091,1116,1130,1135,1140],{"type":45,"tag":77,"props":1024,"children":1025},{},[1026,1028,1034,1036,1042,1044],{"type":51,"value":1027},"Parse URL: fileKey=",{"type":45,"tag":83,"props":1029,"children":1031},{"className":1030},[],[1032],{"type":51,"value":1033},"kL9xQn2VwM8pYrTb4ZcHjF",{"type":51,"value":1035},", nodeId=",{"type":45,"tag":83,"props":1037,"children":1039},{"className":1038},[],[1040],{"type":51,"value":1041},"42-15",{"type":51,"value":1043}," → convert to ",{"type":45,"tag":83,"props":1045,"children":1047},{"className":1046},[],[1048],{"type":51,"value":1049},"42:15",{"type":45,"tag":77,"props":1051,"children":1052},{},[1053,1055],{"type":51,"value":1054},"Run ",{"type":45,"tag":83,"props":1056,"children":1058},{"className":1057},[],[1059],{"type":51,"value":1060},"get_code_connect_suggestions(fileKey=\"kL9xQn2VwM8pYrTb4ZcHjF\", nodeId=\"42:15\")",{"type":45,"tag":77,"props":1062,"children":1063},{},[1064,1066,1071,1073,1078],{"type":51,"value":1065},"Response shows: Button component (unmapped) with ",{"type":45,"tag":83,"props":1067,"children":1069},{"className":1068},[],[1070],{"type":51,"value":742},{"type":51,"value":1072}," (primary\u002Fsecondary) and ",{"type":45,"tag":83,"props":1074,"children":1076},{"className":1075},[],[1077],{"type":51,"value":749},{"type":51,"value":1079}," (sm\u002Fmd\u002Flg) properties, plus a thumbnail image",{"type":45,"tag":77,"props":1081,"children":1082},{},[1083,1085],{"type":51,"value":1084},"Search codebase for Button components: Find ",{"type":45,"tag":83,"props":1086,"children":1088},{"className":1087},[],[1089],{"type":51,"value":1090},"src\u002Fcomponents\u002FButton.tsx",{"type":45,"tag":77,"props":1092,"children":1093},{},[1094,1096,1101,1103,1108,1109,1114],{"type":51,"value":1095},"Read ",{"type":45,"tag":83,"props":1097,"children":1099},{"className":1098},[],[1100],{"type":51,"value":693},{"type":51,"value":1102}," and confirm it has ",{"type":45,"tag":83,"props":1104,"children":1106},{"className":1105},[],[1107],{"type":51,"value":742},{"type":51,"value":349},{"type":45,"tag":83,"props":1110,"children":1112},{"className":1111},[],[1113],{"type":51,"value":749},{"type":51,"value":1115}," props",{"type":45,"tag":77,"props":1117,"children":1118},{},[1119,1121],{"type":51,"value":1120},"Present to user:",{"type":45,"tag":462,"props":1122,"children":1125},{"className":1123,"code":1124,"language":51},[465],"I found a match:\n- [Button](src\u002Fcomponents\u002FButton.tsx): Button at nodeId [42:15](https:\u002F\u002Ffigma.com\u002Fdesign\u002FkL9xQn2VwM8pYrTb4ZcHjF\u002FDesignSystem?node-id=42-15)\n\nWould you like to connect this component?\n",[1126],{"type":45,"tag":83,"props":1127,"children":1128},{"__ignoreMap":470},[1129],{"type":51,"value":1124},{"type":45,"tag":77,"props":1131,"children":1132},{},[1133],{"type":51,"value":1134},"User confirms: \"Yes\"",{"type":45,"tag":77,"props":1136,"children":1137},{},[1138],{"type":51,"value":1139},"Detect that it's a TypeScript React component",{"type":45,"tag":77,"props":1141,"children":1142},{},[1143,1144],{"type":51,"value":1054},{"type":45,"tag":83,"props":1145,"children":1147},{"className":1146},[],[1148],{"type":51,"value":1149},"send_code_connect_mappings(fileKey=\"kL9xQn2VwM8pYrTb4ZcHjF\", nodeId=\"42:15\", mappings=[{ nodeId: \"42:15\", componentName: \"Button\", source: \"src\u002Fcomponents\u002FButton.tsx\", label: \"React\" }])",{"type":45,"tag":61,"props":1151,"children":1152},{},[1153,1158],{"type":45,"tag":169,"props":1154,"children":1155},{},[1156],{"type":51,"value":1157},"Result:",{"type":51,"value":1159}," Figma button component is now connected to the code Button component.",{"type":45,"tag":240,"props":1161,"children":1163},{"id":1162},"example-2-multiple-components-with-partial-selection",[1164],{"type":51,"value":1165},"Example 2: Multiple Components with Partial Selection",{"type":45,"tag":61,"props":1167,"children":1168},{},[1169,1171,1177],{"type":51,"value":1170},"User says: \"Connect components in this frame: ",{"type":45,"tag":105,"props":1172,"children":1175},{"href":1173,"rel":1174},"https:\u002F\u002Ffigma.com\u002Fdesign\u002FpR8mNv5KqXzGwY2JtCfL4D\u002FComponents?node-id=10-50",[1007],[1176],{"type":51,"value":1173},{"type":51,"value":1011},{"type":45,"tag":61,"props":1179,"children":1180},{},[1181],{"type":45,"tag":169,"props":1182,"children":1183},{},[1184],{"type":51,"value":1019},{"type":45,"tag":616,"props":1186,"children":1187},{},[1188,1212,1222,1227,1265,1278,1283],{"type":45,"tag":77,"props":1189,"children":1190},{},[1191,1192,1198,1199,1205,1206],{"type":51,"value":1027},{"type":45,"tag":83,"props":1193,"children":1195},{"className":1194},[],[1196],{"type":51,"value":1197},"pR8mNv5KqXzGwY2JtCfL4D",{"type":51,"value":1035},{"type":45,"tag":83,"props":1200,"children":1202},{"className":1201},[],[1203],{"type":51,"value":1204},"10-50",{"type":51,"value":1043},{"type":45,"tag":83,"props":1207,"children":1209},{"className":1208},[],[1210],{"type":51,"value":1211},"10:50",{"type":45,"tag":77,"props":1213,"children":1214},{},[1215,1216],{"type":51,"value":1054},{"type":45,"tag":83,"props":1217,"children":1219},{"className":1218},[],[1220],{"type":51,"value":1221},"get_code_connect_suggestions(fileKey=\"pR8mNv5KqXzGwY2JtCfL4D\", nodeId=\"10:50\")",{"type":45,"tag":77,"props":1223,"children":1224},{},[1225],{"type":51,"value":1226},"Response shows 3 unmapped components: ProductCard, Badge, and CustomWidget",{"type":45,"tag":77,"props":1228,"children":1229},{},[1230,1232],{"type":51,"value":1231},"Search codebase:",{"type":45,"tag":73,"props":1233,"children":1234},{},[1235,1248,1260],{"type":45,"tag":77,"props":1236,"children":1237},{},[1238,1240,1246],{"type":51,"value":1239},"ProductCard: Found ",{"type":45,"tag":83,"props":1241,"children":1243},{"className":1242},[],[1244],{"type":51,"value":1245},"src\u002Fcomponents\u002FProductCard.tsx",{"type":51,"value":1247}," (props match)",{"type":45,"tag":77,"props":1249,"children":1250},{},[1251,1253,1259],{"type":51,"value":1252},"Badge: Found ",{"type":45,"tag":83,"props":1254,"children":1256},{"className":1255},[],[1257],{"type":51,"value":1258},"src\u002Fcomponents\u002FBadge.tsx",{"type":51,"value":1247},{"type":45,"tag":77,"props":1261,"children":1262},{},[1263],{"type":51,"value":1264},"CustomWidget: No matching component found",{"type":45,"tag":77,"props":1266,"children":1267},{},[1268,1269],{"type":51,"value":1120},{"type":45,"tag":462,"props":1270,"children":1273},{"className":1271,"code":1272,"language":51},[465],"The following components match the design:\n- [ProductCard](src\u002Fcomponents\u002FProductCard.tsx): ProductCard at nodeId [10:51](https:\u002F\u002Ffigma.com\u002Fdesign\u002FpR8mNv5KqXzGwY2JtCfL4D\u002FComponents?node-id=10-51)\n- [Badge](src\u002Fcomponents\u002FBadge.tsx): Badge at nodeId [10:52](https:\u002F\u002Ffigma.com\u002Fdesign\u002FpR8mNv5KqXzGwY2JtCfL4D\u002FComponents?node-id=10-52)\n\nI couldn't find a match for CustomWidget (10:53).\n\nWould you like to connect these components? You can accept all, select specific ones, or skip.\n",[1274],{"type":45,"tag":83,"props":1275,"children":1276},{"__ignoreMap":470},[1277],{"type":51,"value":1272},{"type":45,"tag":77,"props":1279,"children":1280},{},[1281],{"type":51,"value":1282},"User: \"Just connect ProductCard, skip Badge for now\"",{"type":45,"tag":77,"props":1284,"children":1285},{},[1286,1287],{"type":51,"value":1054},{"type":45,"tag":83,"props":1288,"children":1290},{"className":1289},[],[1291],{"type":51,"value":1292},"send_code_connect_mappings(fileKey=\"pR8mNv5KqXzGwY2JtCfL4D\", nodeId=\"10:50\", mappings=[{ nodeId: \"10:51\", componentName: \"ProductCard\", source: \"src\u002Fcomponents\u002FProductCard.tsx\", label: \"React\" }])",{"type":45,"tag":61,"props":1294,"children":1295},{},[1296,1300],{"type":45,"tag":169,"props":1297,"children":1298},{},[1299],{"type":51,"value":1157},{"type":51,"value":1301}," Only ProductCard is connected, per the user's selection.",{"type":45,"tag":240,"props":1303,"children":1305},{"id":1304},"example-3-component-needs-creation",[1306],{"type":51,"value":1307},"Example 3: Component Needs Creation",{"type":45,"tag":61,"props":1309,"children":1310},{},[1311,1313,1319],{"type":51,"value":1312},"User says: \"Connect this icon: ",{"type":45,"tag":105,"props":1314,"children":1317},{"href":1315,"rel":1316},"https:\u002F\u002Ffigma.com\u002Fdesign\u002F8yJDMeWDyBz71EnMOSuUiw\u002FIcons?node-id=5-20",[1007],[1318],{"type":51,"value":1315},{"type":51,"value":1011},{"type":45,"tag":61,"props":1321,"children":1322},{},[1323],{"type":45,"tag":169,"props":1324,"children":1325},{},[1326],{"type":51,"value":1019},{"type":45,"tag":616,"props":1328,"children":1329},{},[1330,1354,1364,1369,1374,1387,1410,1415,1420],{"type":45,"tag":77,"props":1331,"children":1332},{},[1333,1334,1340,1341,1347,1348],{"type":51,"value":1027},{"type":45,"tag":83,"props":1335,"children":1337},{"className":1336},[],[1338],{"type":51,"value":1339},"8yJDMeWDyBz71EnMOSuUiw",{"type":51,"value":1035},{"type":45,"tag":83,"props":1342,"children":1344},{"className":1343},[],[1345],{"type":51,"value":1346},"5-20",{"type":51,"value":1043},{"type":45,"tag":83,"props":1349,"children":1351},{"className":1350},[],[1352],{"type":51,"value":1353},"5:20",{"type":45,"tag":77,"props":1355,"children":1356},{},[1357,1358],{"type":51,"value":1054},{"type":45,"tag":83,"props":1359,"children":1361},{"className":1360},[],[1362],{"type":51,"value":1363},"get_code_connect_suggestions(fileKey=\"8yJDMeWDyBz71EnMOSuUiw\", nodeId=\"5:20\")",{"type":45,"tag":77,"props":1365,"children":1366},{},[1367],{"type":51,"value":1368},"Response shows: CheckIcon component (unmapped) with color and size properties",{"type":45,"tag":77,"props":1370,"children":1371},{},[1372],{"type":51,"value":1373},"Search codebase for CheckIcon: No matches found",{"type":45,"tag":77,"props":1375,"children":1376},{},[1377,1379,1385],{"type":51,"value":1378},"Search for generic Icon components: Find ",{"type":45,"tag":83,"props":1380,"children":1382},{"className":1381},[],[1383],{"type":51,"value":1384},"src\u002Ficons\u002F",{"type":51,"value":1386}," directory with other icons",{"type":45,"tag":77,"props":1388,"children":1389},{},[1390,1392],{"type":51,"value":1391},"Report to user: \"I couldn't find a CheckIcon component, but I found an icons directory at src\u002Ficons\u002F. Would you like to:\n",{"type":45,"tag":73,"props":1393,"children":1394},{},[1395,1400,1405],{"type":45,"tag":77,"props":1396,"children":1397},{},[1398],{"type":51,"value":1399},"Create a new CheckIcon.tsx component first, then connect it",{"type":45,"tag":77,"props":1401,"children":1402},{},[1403],{"type":51,"value":1404},"Connect to a different existing icon",{"type":45,"tag":77,"props":1406,"children":1407},{},[1408],{"type":51,"value":1409},"Provide the path to the CheckIcon if it exists elsewhere\"",{"type":45,"tag":77,"props":1411,"children":1412},{},[1413],{"type":51,"value":1414},"User provides path: \"src\u002Ficons\u002FCheckIcon.tsx\"",{"type":45,"tag":77,"props":1416,"children":1417},{},[1418],{"type":51,"value":1419},"Detect language and framework from the file",{"type":45,"tag":77,"props":1421,"children":1422},{},[1423,1424],{"type":51,"value":1054},{"type":45,"tag":83,"props":1425,"children":1427},{"className":1426},[],[1428],{"type":51,"value":1429},"send_code_connect_mappings(fileKey=\"8yJDMeWDyBz71EnMOSuUiw\", nodeId=\"5:20\", mappings=[{ nodeId: \"5:20\", componentName: \"CheckIcon\", source: \"src\u002Ficons\u002FCheckIcon.tsx\", label: \"React\" }])",{"type":45,"tag":61,"props":1431,"children":1432},{},[1433,1437],{"type":45,"tag":169,"props":1434,"children":1435},{},[1436],{"type":51,"value":1157},{"type":51,"value":1438}," CheckIcon component is successfully connected to the Figma design.",{"type":45,"tag":54,"props":1440,"children":1442},{"id":1441},"best-practices",[1443],{"type":51,"value":1444},"Best Practices",{"type":45,"tag":240,"props":1446,"children":1448},{"id":1447},"proactive-component-discovery",[1449],{"type":51,"value":1450},"Proactive Component Discovery",{"type":45,"tag":61,"props":1452,"children":1453},{},[1454],{"type":51,"value":1455},"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.",{"type":45,"tag":240,"props":1457,"children":1459},{"id":1458},"accurate-structure-matching",[1460],{"type":51,"value":1461},"Accurate Structure Matching",{"type":45,"tag":61,"props":1463,"children":1464},{},[1465],{"type":51,"value":1466},"When comparing Figma components to code components, look beyond just names. Check that:",{"type":45,"tag":73,"props":1468,"children":1469},{},[1470,1475,1480],{"type":45,"tag":77,"props":1471,"children":1472},{},[1473],{"type":51,"value":1474},"Props align (variant types, size options, etc.)",{"type":45,"tag":77,"props":1476,"children":1477},{},[1478],{"type":51,"value":1479},"Component hierarchy matches (nested elements)",{"type":45,"tag":77,"props":1481,"children":1482},{},[1483],{"type":51,"value":1484},"The component serves the same purpose",{"type":45,"tag":240,"props":1486,"children":1488},{"id":1487},"clear-communication",[1489],{"type":51,"value":1490},"Clear Communication",{"type":45,"tag":61,"props":1492,"children":1493},{},[1494],{"type":51,"value":1495},"When offering to create a mapping, clearly explain:",{"type":45,"tag":73,"props":1497,"children":1498},{},[1499,1504,1509,1514],{"type":45,"tag":77,"props":1500,"children":1501},{},[1502],{"type":51,"value":1503},"What you found",{"type":45,"tag":77,"props":1505,"children":1506},{},[1507],{"type":51,"value":1508},"Why it's a good match",{"type":45,"tag":77,"props":1510,"children":1511},{},[1512],{"type":51,"value":1513},"What the mapping will do",{"type":45,"tag":77,"props":1515,"children":1516},{},[1517],{"type":51,"value":1518},"How props will be connected",{"type":45,"tag":240,"props":1520,"children":1522},{"id":1521},"handle-ambiguity",[1523],{"type":51,"value":1524},"Handle Ambiguity",{"type":45,"tag":61,"props":1526,"children":1527},{},[1528],{"type":51,"value":1529},"If multiple components could match, present options rather than guessing. Let the user make the final decision about which component to connect.",{"type":45,"tag":240,"props":1531,"children":1533},{"id":1532},"graceful-degradation",[1534],{"type":51,"value":1535},"Graceful Degradation",{"type":45,"tag":61,"props":1537,"children":1538},{},[1539],{"type":51,"value":1540},"If you can't find an exact match, provide helpful next steps:",{"type":45,"tag":73,"props":1542,"children":1543},{},[1544,1549,1554],{"type":45,"tag":77,"props":1545,"children":1546},{},[1547],{"type":51,"value":1548},"Show close candidates",{"type":45,"tag":77,"props":1550,"children":1551},{},[1552],{"type":51,"value":1553},"Suggest component creation",{"type":45,"tag":77,"props":1555,"children":1556},{},[1557],{"type":51,"value":1558},"Ask for user guidance",{"type":45,"tag":54,"props":1560,"children":1562},{"id":1561},"common-issues-and-solutions",[1563],{"type":51,"value":1564},"Common Issues and Solutions",{"type":45,"tag":240,"props":1566,"children":1568},{"id":1567},"issue-no-published-components-found-in-this-selection",[1569],{"type":51,"value":1570},"Issue: \"No published components found in this selection\"",{"type":45,"tag":61,"props":1572,"children":1573},{},[1574,1579,1581,1586],{"type":45,"tag":169,"props":1575,"children":1576},{},[1577],{"type":51,"value":1578},"Cause:",{"type":51,"value":1580}," The Figma component is not published to a team library. Code Connect only works with published components.\n",{"type":45,"tag":169,"props":1582,"children":1583},{},[1584],{"type":51,"value":1585},"Solution:",{"type":51,"value":1587}," The user needs to publish the component to a team library in Figma:",{"type":45,"tag":616,"props":1589,"children":1590},{},[1591,1596,1601,1606],{"type":45,"tag":77,"props":1592,"children":1593},{},[1594],{"type":51,"value":1595},"In Figma, select the component or component set",{"type":45,"tag":77,"props":1597,"children":1598},{},[1599],{"type":51,"value":1600},"Right-click and choose \"Publish to library\" or use the Team Library publish modal",{"type":45,"tag":77,"props":1602,"children":1603},{},[1604],{"type":51,"value":1605},"Publish the component",{"type":45,"tag":77,"props":1607,"children":1608},{},[1609],{"type":51,"value":1610},"Once published, retry the Code Connect mapping with the same node ID",{"type":45,"tag":240,"props":1612,"children":1614},{"id":1613},"issue-code-connect-is-only-available-on-organization-and-enterprise-plans",[1615],{"type":51,"value":1616},"Issue: \"Code Connect is only available on Organization and Enterprise plans\"",{"type":45,"tag":61,"props":1618,"children":1619},{},[1620,1624,1626,1630],{"type":45,"tag":169,"props":1621,"children":1622},{},[1623],{"type":51,"value":1578},{"type":51,"value":1625}," The user's Figma plan does not include Code Connect access.\n",{"type":45,"tag":169,"props":1627,"children":1628},{},[1629],{"type":51,"value":1585},{"type":51,"value":1631}," The user needs to upgrade to an Organization or Enterprise plan, or contact their administrator.",{"type":45,"tag":240,"props":1633,"children":1635},{"id":1634},"issue-no-matching-component-found-in-codebase",[1636],{"type":51,"value":1637},"Issue: No matching component found in codebase",{"type":45,"tag":61,"props":1639,"children":1640},{},[1641,1645,1647,1651],{"type":45,"tag":169,"props":1642,"children":1643},{},[1644],{"type":51,"value":1578},{"type":51,"value":1646}," The codebase search did not find a component with a matching name or structure.\n",{"type":45,"tag":169,"props":1648,"children":1649},{},[1650],{"type":51,"value":1585},{"type":51,"value":1652}," 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.",{"type":45,"tag":240,"props":1654,"children":1656},{"id":1655},"issue-published-component-not-found-code_connect_asset_not_found",[1657],{"type":51,"value":1658},"Issue: \"Published component not found\" (CODE_CONNECT_ASSET_NOT_FOUND)",{"type":45,"tag":61,"props":1660,"children":1661},{},[1662,1666,1668,1672],{"type":45,"tag":169,"props":1663,"children":1664},{},[1665],{"type":51,"value":1578},{"type":51,"value":1667}," The source file path is incorrect, the component doesn't exist at that location, or the componentName doesn't match the actual export.\n",{"type":45,"tag":169,"props":1669,"children":1670},{},[1671],{"type":51,"value":1585},{"type":51,"value":1673}," 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.",{"type":45,"tag":240,"props":1675,"children":1677},{"id":1676},"issue-component-is-already-mapped-to-code-code_connect_mapping_already_exists",[1678],{"type":51,"value":1679},"Issue: \"Component is already mapped to code\" (CODE_CONNECT_MAPPING_ALREADY_EXISTS)",{"type":45,"tag":61,"props":1681,"children":1682},{},[1683,1687,1689,1693],{"type":45,"tag":169,"props":1684,"children":1685},{},[1686],{"type":51,"value":1578},{"type":51,"value":1688}," A Code Connect mapping already exists for this component.\n",{"type":45,"tag":169,"props":1690,"children":1691},{},[1692],{"type":51,"value":1585},{"type":51,"value":1694}," The component is already connected. If the user wants to update the mapping, they may need to remove the existing one first in Figma.",{"type":45,"tag":240,"props":1696,"children":1698},{"id":1697},"issue-insufficient-permissions-to-create-mapping-code_connect_insufficient_permissions",[1699],{"type":51,"value":1700},"Issue: \"Insufficient permissions to create mapping\" (CODE_CONNECT_INSUFFICIENT_PERMISSIONS)",{"type":45,"tag":61,"props":1702,"children":1703},{},[1704,1708,1710,1714],{"type":45,"tag":169,"props":1705,"children":1706},{},[1707],{"type":51,"value":1578},{"type":51,"value":1709}," The user does not have edit permissions on the Figma file or library.\n",{"type":45,"tag":169,"props":1711,"children":1712},{},[1713],{"type":51,"value":1585},{"type":51,"value":1715}," The user needs edit access to the file containing the component. Contact the file owner or team admin.",{"type":45,"tag":240,"props":1717,"children":1719},{"id":1718},"issue-code-connect-mapping-fails-with-url-errors",[1720],{"type":51,"value":1721},"Issue: Code Connect mapping fails with URL errors",{"type":45,"tag":61,"props":1723,"children":1724},{},[1725,1729,1731,1736,1738,1742,1744,1749,1751,1756,1758,1763,1765,1770],{"type":45,"tag":169,"props":1726,"children":1727},{},[1728],{"type":51,"value":1578},{"type":51,"value":1730}," The Figma URL format is incorrect or missing the ",{"type":45,"tag":83,"props":1732,"children":1734},{"className":1733},[],[1735],{"type":51,"value":181},{"type":51,"value":1737}," parameter.\n",{"type":45,"tag":169,"props":1739,"children":1740},{},[1741],{"type":51,"value":1585},{"type":51,"value":1743}," Verify the URL follows the required format: ",{"type":45,"tag":83,"props":1745,"children":1747},{"className":1746},[],[1748],{"type":51,"value":161},{"type":51,"value":1750},". The ",{"type":45,"tag":83,"props":1752,"children":1754},{"className":1753},[],[1755],{"type":51,"value":181},{"type":51,"value":1757}," parameter is required. Also ensure you convert ",{"type":45,"tag":83,"props":1759,"children":1761},{"className":1760},[],[1762],{"type":51,"value":450},{"type":51,"value":1764}," to ",{"type":45,"tag":83,"props":1766,"children":1768},{"className":1767},[],[1769],{"type":51,"value":458},{"type":51,"value":1771}," when calling tools.",{"type":45,"tag":240,"props":1773,"children":1775},{"id":1774},"issue-multiple-similar-components-found",[1776],{"type":51,"value":1777},"Issue: Multiple similar components found",{"type":45,"tag":61,"props":1779,"children":1780},{},[1781,1785,1787,1791,1793,1798,1800,1806],{"type":45,"tag":169,"props":1782,"children":1783},{},[1784],{"type":51,"value":1578},{"type":51,"value":1786}," The codebase contains multiple components that could match the Figma component.\n",{"type":45,"tag":169,"props":1788,"children":1789},{},[1790],{"type":51,"value":1585},{"type":51,"value":1792}," 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., ",{"type":45,"tag":83,"props":1794,"children":1796},{"className":1795},[],[1797],{"type":51,"value":693},{"type":51,"value":1799}," vs ",{"type":45,"tag":83,"props":1801,"children":1803},{"className":1802},[],[1804],{"type":51,"value":1805},"LinkButton.tsx",{"type":51,"value":1807},").",{"type":45,"tag":54,"props":1809,"children":1811},{"id":1810},"understanding-code-connect",[1812],{"type":51,"value":1813},"Understanding Code Connect",{"type":45,"tag":61,"props":1815,"children":1816},{},[1817],{"type":51,"value":1818},"Code Connect establishes a bidirectional link between design and code:",{"type":45,"tag":61,"props":1820,"children":1821},{},[1822,1827,1829,1834,1836,1841],{"type":45,"tag":169,"props":1823,"children":1824},{},[1825],{"type":51,"value":1826},"For designers:",{"type":51,"value":1828}," See which code component implements a Figma component\n",{"type":45,"tag":169,"props":1830,"children":1831},{},[1832],{"type":51,"value":1833},"For developers:",{"type":51,"value":1835}," Navigate from Figma designs directly to the code that implements them\n",{"type":45,"tag":169,"props":1837,"children":1838},{},[1839],{"type":51,"value":1840},"For teams:",{"type":51,"value":1842}," Maintain a single source of truth for component mappings",{"type":45,"tag":61,"props":1844,"children":1845},{},[1846],{"type":51,"value":1847},"The mapping you create helps keep design and code in sync by making these connections explicit and discoverable.",{"type":45,"tag":54,"props":1849,"children":1851},{"id":1850},"additional-resources",[1852],{"type":51,"value":1853},"Additional Resources",{"type":45,"tag":61,"props":1855,"children":1856},{},[1857],{"type":51,"value":1858},"For more information about Code Connect:",{"type":45,"tag":73,"props":1860,"children":1861},{},[1862,1872],{"type":45,"tag":77,"props":1863,"children":1864},{},[1865],{"type":45,"tag":105,"props":1866,"children":1869},{"href":1867,"rel":1868},"https:\u002F\u002Fhelp.figma.com\u002Fhc\u002Fen-us\u002Farticles\u002F23920389749655-Code-Connect",[1007],[1870],{"type":51,"value":1871},"Code Connect Documentation",{"type":45,"tag":77,"props":1873,"children":1874},{},[1875],{"type":45,"tag":105,"props":1876,"children":1879},{"href":1877,"rel":1878},"https:\u002F\u002Fdevelopers.figma.com\u002Fdocs\u002Ffigma-mcp-server\u002Ftools-and-prompts\u002F",[1007],[1880],{"type":51,"value":1881},"Figma MCP Server Tools and Prompts",{"items":1883,"total":1994},[1884,1905,1922,1938,1957,1976,1986],{"slug":1885,"name":1885,"fn":1886,"description":1887,"org":1888,"tags":1889,"stars":28,"repoUrl":29,"updatedAt":1904},"aspnet-core","build ASP.NET Core web applications","Build, review, refactor, or architect ASP.NET Core web applications using current official guidance for .NET web development. Use when working on Blazor Web Apps, Razor Pages, MVC, Minimal APIs, controller-based Web APIs, SignalR, gRPC, middleware, dependency injection, configuration, authentication, authorization, testing, performance, deployment, or ASP.NET Core upgrades.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1890,1893,1895,1898,1901],{"name":1891,"slug":1892,"type":15},".NET","dotnet",{"name":1894,"slug":1885,"type":15},"ASP.NET Core",{"name":1896,"slug":1897,"type":15},"Blazor","blazor",{"name":1899,"slug":1900,"type":15},"C#","csharp",{"name":1902,"slug":1903,"type":15},"Web Development","web-development","2026-04-12T05:07:02.819491",{"slug":1906,"name":1906,"fn":1907,"description":1908,"org":1909,"tags":1910,"stars":28,"repoUrl":29,"updatedAt":1921},"chatgpt-apps","build ChatGPT Apps SDK applications","Build, scaffold, refactor, and troubleshoot ChatGPT Apps SDK applications that combine an MCP server and widget UI. Use when Codex needs to design tools, register UI resources, wire the MCP Apps bridge or ChatGPT compatibility APIs, apply Apps SDK metadata or CSP or domain settings, or produce a docs-aligned project scaffold. Prefer a docs-first workflow by invoking the openai-docs skill or OpenAI developer docs MCP tools before generating code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1911,1914,1917,1920],{"name":1912,"slug":1913,"type":15},"Apps SDK","apps-sdk",{"name":1915,"slug":1916,"type":15},"ChatGPT","chatgpt",{"name":1918,"slug":1919,"type":15},"MCP","mcp",{"name":9,"slug":8,"type":15},"2026-04-12T05:07:05.468097",{"slug":1923,"name":1923,"fn":1924,"description":1925,"org":1926,"tags":1927,"stars":28,"repoUrl":29,"updatedAt":1937},"cli-creator","build CLIs from API docs","Build a composable CLI for Codex from API docs, an OpenAPI spec, existing curl examples, an SDK, a web app, an admin tool, or a local script. Use when the user wants Codex to create a command-line tool that can run from any repo, expose composable read\u002Fwrite commands, return stable JSON, manage auth, and pair with a companion skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1928,1931,1934],{"name":1929,"slug":1930,"type":15},"API Development","api-development",{"name":1932,"slug":1933,"type":15},"CLI","cli",{"name":1935,"slug":1936,"type":15},"Codex","codex","2026-04-12T05:07:04.132762",{"slug":1939,"name":1939,"fn":1940,"description":1941,"org":1942,"tags":1943,"stars":28,"repoUrl":29,"updatedAt":1956},"cloudflare-deploy","deploy projects to Cloudflare","Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1944,1947,1950,1953],{"name":1945,"slug":1946,"type":15},"Cloudflare","cloudflare",{"name":1948,"slug":1949,"type":15},"Cloudflare Pages","cloudflare-pages",{"name":1951,"slug":1952,"type":15},"Cloudflare Workers","cloudflare-workers",{"name":1954,"slug":1955,"type":15},"Deployment","deployment","2026-04-12T05:07:14.275118",{"slug":1958,"name":1958,"fn":1959,"description":1960,"org":1961,"tags":1962,"stars":28,"repoUrl":29,"updatedAt":1975},"define-goal","define and set measurable project goals","Help the user define a concrete, measurable goal before starting work, especially when they ask to use the goal tool, create a goal, set an objective, clarify success criteria, or turn a fuzzy intention into a quantitative outcome. Use this skill for goal creation and goal refinement only; it does not manage durable snapshots, decision logs, or long-running execution artifacts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1963,1966,1969,1972],{"name":1964,"slug":1965,"type":15},"Productivity","productivity",{"name":1967,"slug":1968,"type":15},"Project Management","project-management",{"name":1970,"slug":1971,"type":15},"Strategy","strategy",{"name":1973,"slug":1974,"type":15},"Task Management","task-management","2026-05-23T06:17:16.870838",{"slug":24,"name":24,"fn":1977,"description":1978,"org":1979,"tags":1980,"stars":28,"repoUrl":29,"updatedAt":1985},"translate Figma designs into code","Use the Figma MCP server to fetch design context, screenshots, variables, and assets from Figma, and to translate Figma nodes into production code. Trigger when a task involves Figma URLs, node IDs, design-to-code implementation, or Figma MCP setup and troubleshooting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1981,1982,1983,1984],{"name":26,"slug":27,"type":15},{"name":23,"slug":24,"type":15},{"name":20,"slug":21,"type":15},{"name":1918,"slug":1919,"type":15},"2026-04-12T05:06:47.939943",{"slug":4,"name":4,"fn":5,"description":6,"org":1987,"tags":1988,"stars":28,"repoUrl":29,"updatedAt":30},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1989,1990,1991,1992,1993],{"name":26,"slug":27,"type":15},{"name":13,"slug":14,"type":15},{"name":23,"slug":24,"type":15},{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},29,{"items":1996,"total":2124},[1997,2018,2026,2033,2039,2046,2053,2060,2068,2082,2093,2108],{"slug":1998,"name":1998,"fn":1999,"description":2000,"org":2001,"tags":2002,"stars":2015,"repoUrl":2016,"updatedAt":2017},"prior-auth-packet-builder","build healthcare prior authorization packets","Build a concise prior authorization packet from local case files and payer policy docs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2003,2006,2009,2012],{"name":2004,"slug":2005,"type":15},"Documents","documents",{"name":2007,"slug":2008,"type":15},"Healthcare","healthcare",{"name":2010,"slug":2011,"type":15},"Insurance","insurance",{"name":2013,"slug":2014,"type":15},"Regulatory Compliance","regulatory-compliance",28169,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-python","2026-04-16T05:11:39.180399",{"slug":1885,"name":1885,"fn":1886,"description":1887,"org":2019,"tags":2020,"stars":28,"repoUrl":29,"updatedAt":1904},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2021,2022,2023,2024,2025],{"name":1891,"slug":1892,"type":15},{"name":1894,"slug":1885,"type":15},{"name":1896,"slug":1897,"type":15},{"name":1899,"slug":1900,"type":15},{"name":1902,"slug":1903,"type":15},{"slug":1906,"name":1906,"fn":1907,"description":1908,"org":2027,"tags":2028,"stars":28,"repoUrl":29,"updatedAt":1921},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2029,2030,2031,2032],{"name":1912,"slug":1913,"type":15},{"name":1915,"slug":1916,"type":15},{"name":1918,"slug":1919,"type":15},{"name":9,"slug":8,"type":15},{"slug":1923,"name":1923,"fn":1924,"description":1925,"org":2034,"tags":2035,"stars":28,"repoUrl":29,"updatedAt":1937},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2036,2037,2038],{"name":1929,"slug":1930,"type":15},{"name":1932,"slug":1933,"type":15},{"name":1935,"slug":1936,"type":15},{"slug":1939,"name":1939,"fn":1940,"description":1941,"org":2040,"tags":2041,"stars":28,"repoUrl":29,"updatedAt":1956},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2042,2043,2044,2045],{"name":1945,"slug":1946,"type":15},{"name":1948,"slug":1949,"type":15},{"name":1951,"slug":1952,"type":15},{"name":1954,"slug":1955,"type":15},{"slug":1958,"name":1958,"fn":1959,"description":1960,"org":2047,"tags":2048,"stars":28,"repoUrl":29,"updatedAt":1975},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2049,2050,2051,2052],{"name":1964,"slug":1965,"type":15},{"name":1967,"slug":1968,"type":15},{"name":1970,"slug":1971,"type":15},{"name":1973,"slug":1974,"type":15},{"slug":24,"name":24,"fn":1977,"description":1978,"org":2054,"tags":2055,"stars":28,"repoUrl":29,"updatedAt":1985},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2056,2057,2058,2059],{"name":26,"slug":27,"type":15},{"name":23,"slug":24,"type":15},{"name":20,"slug":21,"type":15},{"name":1918,"slug":1919,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":2061,"tags":2062,"stars":28,"repoUrl":29,"updatedAt":30},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2063,2064,2065,2066,2067],{"name":26,"slug":27,"type":15},{"name":13,"slug":14,"type":15},{"name":23,"slug":24,"type":15},{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"slug":2069,"name":2069,"fn":2070,"description":2071,"org":2072,"tags":2073,"stars":28,"repoUrl":29,"updatedAt":2081},"figma-create-design-system-rules","generate design system rules from Figma","Generates custom design system rules for the user's codebase. Use when user says \"create design system rules\", \"generate rules for my project\", \"set up design rules\", \"customize design system guidelines\", or wants to establish project-specific conventions for Figma-to-code workflows. Requires Figma MCP server connection.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2074,2075,2076,2079,2080],{"name":26,"slug":27,"type":15},{"name":13,"slug":14,"type":15},{"name":2077,"slug":2078,"type":15},"Documentation","documentation",{"name":23,"slug":24,"type":15},{"name":20,"slug":21,"type":15},"2026-05-16T06:07:47.821474",{"slug":135,"name":135,"fn":2083,"description":2084,"org":2085,"tags":2086,"stars":28,"repoUrl":29,"updatedAt":2092},"translate Figma designs into application code","Translates Figma designs into production-ready application code with 1:1 visual fidelity. Use when implementing UI code from Figma files, when user mentions \"implement design\", \"generate code\", \"implement component\", provides Figma URLs, or asks to build components matching Figma specs. For Figma canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2087,2088,2089,2090,2091],{"name":26,"slug":27,"type":15},{"name":23,"slug":24,"type":15},{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":1902,"slug":1903,"type":15},"2026-05-16T06:07:40.583615",{"slug":2094,"name":2094,"fn":2095,"description":2096,"org":2097,"tags":2098,"stars":28,"repoUrl":29,"updatedAt":2107},"hatch-pet","create animated pets for Codex","Create, repair, validate, visually QA, and package Codex-compatible animated pets and pet spritesheets from character art, generated images, company or prospect brand cues, or visual references. Use when a user wants a lightweight-worker Codex pet workflow, a non-pixel custom pet style, a prospect or company mascot pet, or a full 8x9 animated pet atlas with transparent unused cells, QA contact sheets, and pet.json packaging. This skill composes the installed $imagegen system skill for visual generation and uses bundled scripts for deterministic spritesheet assembly.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2099,2102,2103,2106],{"name":2100,"slug":2101,"type":15},"Animation","animation",{"name":1935,"slug":1936,"type":15},{"name":2104,"slug":2105,"type":15},"Creative","creative",{"name":26,"slug":27,"type":15},"2026-05-02T05:31:48.48485",{"slug":2109,"name":2109,"fn":2110,"description":2111,"org":2112,"tags":2113,"stars":28,"repoUrl":29,"updatedAt":2123},"imagegen","generate and edit raster images","Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output should be a bitmap asset rather than repo-native code or vector. Do not use when the task is better handled by editing existing SVG\u002Fvector\u002Fcode-native assets, extending an established icon or logo system, or building the visual directly in HTML\u002FCSS\u002Fcanvas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2114,2115,2116,2119,2122],{"name":2104,"slug":2105,"type":15},{"name":26,"slug":27,"type":15},{"name":2117,"slug":2118,"type":15},"Image Generation","image-generation",{"name":2120,"slug":2121,"type":15},"Images","images",{"name":9,"slug":8,"type":15},"2026-05-15T06:23:24.312127",675]