{"slug":"figma-implement-design-2","title":"figma-implement-design","summary":"Translate Figma nodes into production-ready code with 1:1 visual fidelity using the Figma MCP workflow (design context, screenshots, assets, and project-convention translation). Trigger when the user provides Figma URLs or node IDs, or asks to implement designs or components that","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-10-05T21:53:02.221426Z","repo":{"url":"https://github.com/VoDaiLocz/kilo-kit-mcp","stars":27,"forks":3,"license":"Apache-2.0","updatedAt":"2026-09-13T09:11:19Z"},"bodyHtml":"<hr>\n<h2>name: \"figma-implement-design\"\ndescription: \"Translate Figma nodes into production-ready code with 1:1 visual fidelity using the Figma MCP workflow (design context, screenshots, assets, and project-convention translation). Trigger when the user provides Figma URLs or node IDs, or asks to implement designs or components that must match Figma specs. Requires a working Figma MCP server connection.\"</h2>\n<h1>Implement Design</h1>\n<h2>Overview</h2>\n<p>This skill provides a structured workflow for translating Figma designs into production-ready code with pixel-perfect accuracy. It ensures consistent integration with the Figma MCP server, proper use of design tokens, and 1:1 visual parity with designs.</p>\n<h2>Prerequisites</h2>\n<ul>\n<li>Figma MCP server must be connected and accessible</li>\n<li>User must provide a Figma URL in the format: <code>https://figma.com/design/:fileKey/:fileName?node-id=1-2</code>\n<ul>\n<li><code>:fileKey</code> is the file key</li>\n<li><code>1-2</code> is the node ID (the specific component or frame to implement)</li>\n</ul>\n</li>\n<li><strong>OR</strong> when using <code>figma-desktop</code> MCP: User can select a node directly in the Figma desktop app (no URL required)</li>\n<li>Project should have an established design system or component library (preferred)</li>\n</ul>\n<h2>Required Workflow</h2>\n<p><strong>Follow these steps in order. Do not skip steps.</strong></p>\n<h3>Step 0: Set up Figma MCP (if not already configured)</h3>\n<p>If any MCP call fails because Figma MCP is not connected, pause and set it up:</p>\n<ol>\n<li>Add the Figma MCP:\n<ul>\n<li><code>codex mcp add figma --url https://mcp.figma.com/mcp</code></li>\n</ul>\n</li>\n<li>Enable remote MCP client:\n<ul>\n<li>Set <code>[features].rmcp_client = true</code> in <code>config.toml</code> <strong>or</strong> run <code>codex --enable rmcp_client</code></li>\n</ul>\n</li>\n<li>Log in with OAuth:\n<ul>\n<li><code>codex mcp login figma</code></li>\n</ul>\n</li>\n</ol>\n<p>After successful login, the user will have to restart codex. You should finish your answer and tell them so when they try again they can continue with Step 1.</p>\n<h3>Step 1: Get Node ID</h3>\n<h4>Option A: Parse from Figma URL</h4>\n<p>When the user provides a Figma URL, extract the file key and node ID to pass as arguments to MCP tools.</p>\n<p><strong>URL format:</strong> <code>https://figma.com/design/:fileKey/:fileName?node-id=1-2</code></p>\n<p><strong>Extract:</strong></p>\n<ul>\n<li><strong>File key:</strong> <code>:fileKey</code> (the segment after <code>/design/</code>)</li>\n<li><strong>Node ID:</strong> <code>1-2</code> (the value of the <code>node-id</code> query parameter)</li>\n</ul>\n<p><strong>Note:</strong> When using the local desktop MCP (<code>figma-desktop</code>), <code>fileKey</code> is not passed as a parameter to tool calls. The server automatically uses the currently open file, so only <code>nodeId</code> is needed.</p>\n<p><strong>Example:</strong></p>\n<ul>\n<li>URL: <code>https://figma.com/design/kL9xQn2VwM8pYrTb4ZcHjF/DesignSystem?node-id=42-15</code></li>\n<li>File key: <code>kL9xQn2VwM8pYrTb4ZcHjF</code></li>\n<li>Node ID: <code>42-15</code></li>\n</ul>\n<h4>Option B: Use Current Selection from Figma Desktop App (figma-desktop MCP only)</h4>\n<p>When using the <code>figma-desktop</code> MCP and the user has NOT provided a URL, the tools automatically use the currently selected node from the open Figma file in the desktop app.</p>\n<p><strong>Note:</strong> Selection-based prompting only works with the <code>figma-desktop</code> MCP server. The remote server requires a link to a frame or layer to extract context. The user must have the Figma desktop app open with a node selected.</p>\n<h3>Step 2: Fetch Design Context</h3>\n<p>Run <code>get_design_context</code> with the extracted file key and node ID.</p>\n<pre><code>get_design_context(fileKey=\":fileKey\", nodeId=\"1-2\")\n</code></pre>\n<p>This provides the structured data including:</p>\n<ul>\n<li>Layout properties (Auto Layout, constraints, sizing)</li>\n<li>Typography specifications</li>\n<li>Color values and design tokens</li>\n<li>Component structure and variants</li>\n<li>Spacing and padding values</li>\n</ul>\n<p><strong>If the response is too large or truncated:</strong></p>\n<ol>\n<li>Run <code>get_metadata(fileKey=\":fileKey\", nodeId=\"1-2\")</code> to get the high-level node map</li>\n<li>Identify the specific child nodes needed from the metadata</li>\n<li>Fetch individual child nodes with <code>get_design_context(fileKey=\":fileKey\", nodeId=\":childNodeId\")</code></li>\n</ol>\n<h3>Step 3: Capture Visual Reference</h3>\n<p>Run <code>get_screenshot</code> with the same file key and node ID for a visual reference.</p>\n<pre><code>get_screenshot(fileKey=\":fileKey\", nodeId=\"1-2\")\n</code></pre>\n<p>This screenshot serves as the source of truth for visual validation. Keep it accessible throughout implementation.</p>\n<h3>Step 4: Download Required Assets</h3>\n<p>Download any assets (images, icons, SVGs) returned by the Figma MCP server.</p>\n<p><strong>IMPORTANT:</strong> Follow these asset rules:</p>\n<ul>\n<li>If the Figma MCP server returns a <code>localhost</code> source for an image or SVG, use that source directly</li>\n<li>DO NOT import or add new icon packages - all assets should come from the Figma payload</li>\n<li>DO NOT use or create placeholders if a <code>localhost</code> source is provided</li>\n<li>Assets are served through the Figma MCP server's built-in assets endpoint</li>\n</ul>\n<h3>Step 5: Translate to Project Conventions</h3>\n<p>Translate the Figma output into this project's framework, styles, and conventions.</p>\n<p><strong>Key principles:</strong></p>\n<ul>\n<li>Treat the Figma MCP output (typically React + Tailwind) as a representation of design and behavior, not as final code style</li>\n<li>Replace Tailwind utility classes with the project's preferred utilities or design system tokens</li>\n<li>Reuse existing components (buttons, inputs, typography, icon wrappers) instead of duplicating functionality</li>\n<li>Use the project's color system, typography scale, and spacing tokens consistently</li>\n<li>Respect existing routing, state management, and data-fetch patterns</li>\n</ul>\n<h3>Step 6: Achieve 1:1 Visual Parity</h3>\n<p>Strive for pixel-perfect visual parity with the Figma design.</p>\n<p><strong>Guidelines:</strong></p>\n<ul>\n<li>Prioritize Figma fidelity to match designs exactly</li>\n<li>Avoid hardcoded values - use design tokens from Figma where available</li>\n<li>When conflicts arise between design system tokens and Figma specs, prefer design system tokens but adjust spacing or sizes minimally to match visuals</li>\n<li>Follow WCAG requirements for accessibility</li>\n<li>Add component documentation as needed</li>\n</ul>\n<h3>Step 7: Validate Against Figma</h3>\n<p>Before marking complete, validate the final UI against the Figma screenshot.</p>\n<p><strong>Validation checklist:</strong></p>\n<ul>\n<li><input disabled=\"disabled\" type=\"checkbox\"> Layout matches (spacing, alignment, sizing)</li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> Typography matches (font, size, weight, line height)</li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> Colors match exactly</li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> Interactive states work as designed (hover, active, disabled)</li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> Responsive behavior follows Figma constraints</li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> Assets render correctly</li>\n<li><input disabled=\"disabled\" type=\"checkbox\"> Accessibility standards met</li>\n</ul>\n<h2>Implementation Rules</h2>\n<h3>Component Organization</h3>\n<ul>\n<li>Place UI components in the project's designated design system directory</li>\n<li>Follow the project's component naming conventions</li>\n<li>Avoid inline styles unless truly necessary for dynamic values</li>\n</ul>\n<h3>Design System Integration</h3>\n<ul>\n<li>ALWAYS use components from the project's design system when possible</li>\n<li>Map Figma design tokens to project design tokens</li>\n<li>When a matching component exists, extend it rather than creating a new one</li>\n<li>Document any new components added to the design system</li>\n</ul>\n<h3>Code Quality</h3>\n<ul>\n<li>Avoid hardcoded values - extract to constants or design tokens</li>\n<li>Keep components composable and reusable</li>\n<li>Add TypeScript types for component props</li>\n<li>Include JSDoc comments for exported components</li>\n</ul>\n<h2>Examples</h2>\n<h3>Example 1: Implementing a Button Component</h3>\n<p>User says: \"Implement this Figma button component: <a href=\"https://figma.com/design/kL9xQn2VwM8pYrTb4ZcHjF/DesignSystem?node-id=42-15%22\">https://figma.com/design/kL9xQn2VwM8pYrTb4ZcHjF/DesignSystem?node-id=42-15\"</a></p>\n<p><strong>Actions:</strong></p>\n<ol>\n<li>Parse URL to extract fileKey=<code>kL9xQn2VwM8pYrTb4ZcHjF</code> and nodeId=<code>42-15</code></li>\n<li>Run <code>get_design_context(fileKey=\"kL9xQn2VwM8pYrTb4ZcHjF\", nodeId=\"42-15\")</code></li>\n<li>Run <code>get_screenshot(fileKey=\"kL9xQn2VwM8pYrTb4ZcHjF\", nodeId=\"42-15\")</code> for visual reference</li>\n<li>Download any button icons from the assets endpoint</li>\n<li>Check if project has existing button component</li>\n<li>If yes, extend it with new variant; if no, create new component using project conventions</li>\n<li>Map Figma colors to project design tokens (e.g., <code>primary-500</code>, <code>primary-hover</code>)</li>\n<li>Validate against screenshot for padding, border radius, typography</li>\n</ol>\n<p><strong>Result:</strong> Button component matching Figma design, integrated with project design system.</p>\n<h3>Example 2: Building a Dashboard Layout</h3>\n<p>User says: \"Build this dashboard: <a href=\"https://figma.com/design/pR8mNv5KqXzGwY2JtCfL4D/Dashboard?node-id=10-5%22\">https://figma.com/design/pR8mNv5KqXzGwY2JtCfL4D/Dashboard?node-id=10-5\"</a></p>\n<p><strong>Actions:</strong></p>\n<ol>\n<li>Parse URL to extract fileKey=<code>pR8mNv5KqXzGwY2JtCfL4D</code> and nodeId=<code>10-5</code></li>\n<li>Run <code>get_metadata(fileKey=\"pR8mNv5KqXzGwY2JtCfL4D\", nodeId=\"10-5\")</code> to understand the page structure</li>\n<li>Identify main sections from metadata (header, sidebar, content area, cards) and their child node IDs</li>\n<li>Run <code>get_design_context(fileKey=\"pR8mNv5KqXzGwY2JtCfL4D\", nodeId=\":childNodeId\")</code> for each major section</li>\n<li>Run <code>get_screenshot(fileKey=\"pR8mNv5KqXzGwY2JtCfL4D\", nodeId=\"10-5\")</code> for the full page</li>\n<li>Download all assets (logos, icons, charts)</li>\n<li>Build layout using project's layout primitives</li>\n<li>Implement each section using existing components where possible</li>\n<li>Validate responsive behavior against Figma constraints</li>\n</ol>\n<p><strong>Result:</strong> Complete dashboard matching Figma design with responsive layout.</p>\n<h2>Best Practices</h2>\n<h3>Always Start with Context</h3>\n<p>Never implement based on assumptions. Always fetch <code>get_design_context</code> and <code>get_screenshot</code> first.</p>\n<h3>Incremental Validation</h3>\n<p>Validate frequently during implementation, not just at the end. This catches issues early.</p>\n<h3>Document Deviations</h3>\n<p>If you must deviate from the Figma design (e.g., for accessibility or technical constraints), document why in code comments.</p>\n<h3>Reuse Over Recreation</h3>\n<p>Always check for existing components before creating new ones. Consistency across the codebase is more important than exact Figma replication.</p>\n<h3>Design System First</h3>\n<p>When in doubt, prefer the project's design system patterns over literal Figma translation.</p>\n<h2>Common Issues and Solutions</h2>\n<h3>Issue: Figma output is truncated</h3>\n<p><strong>Cause:</strong> The design is too complex or has too many nested layers to return in a single response.\n<strong>Solution:</strong> Use <code>get_metadata</code> to get the node structure, then fetch specific nodes individually with <code>get_design_context</code>.</p>\n<h3>Issue: Design doesn't match after implementation</h3>\n<p><strong>Cause:</strong> Visual discrepancies between the implemented code and the original Figma design.\n<strong>Solution:</strong> Compare side-by-side with the screenshot from Step 3. Check spacing, colors, and typography values in the design context data.</p>\n<h3>Issue: Assets not loading</h3>\n<p><strong>Cause:</strong> The Figma MCP server's assets endpoint is not accessible or the URLs are being modified.\n<strong>Solution:</strong> Verify the Figma MCP server's assets endpoint is accessible. The server serves assets at <code>localhost</code> URLs. Use these directly without modification.</p>\n<h3>Issue: Design token values differ from Figma</h3>\n<p><strong>Cause:</strong> The project's design system tokens have different values than those specified in the Figma design.\n<strong>Solution:</strong> When project tokens differ from Figma values, prefer project tokens for consistency but adjust spacing/sizing to maintain visual fidelity.</p>\n<h2>Understanding Design Implementation</h2>\n<p>The Figma implementation workflow establishes a reliable process for translating designs to code:</p>\n<p><strong>For designers:</strong> Confidence that implementations will match their designs with pixel-perfect accuracy.\n<strong>For developers:</strong> A structured approach that eliminates guesswork and reduces back-and-forth revisions.\n<strong>For teams:</strong> Consistent, high-quality implementations that maintain design system integrity.</p>\n<p>By following this workflow, you ensure that every Figma design is implemented with the same level of care and attention to detail.</p>\n<h2>Additional Resources</h2>\n<ul>\n<li><a href=\"https://developers.figma.com/docs/figma-mcp-server/\">Figma MCP Server Documentation</a></li>\n<li><a href=\"https://developers.figma.com/docs/figma-mcp-server/tools-and-prompts/\">Figma MCP Server Tools and Prompts</a></li>\n<li><a href=\"https://help.figma.com/hc/en-us/articles/15339657135383-Guide-to-variables-in-Figma\">Figma Variables and Design Tokens</a></li>\n</ul>\n","files":[{"path":"agents/openai.yaml","sizeBytes":488,"isText":true},{"path":"assets/figma.png","sizeBytes":1612,"isText":false},{"path":"assets/figma-small.svg","sizeBytes":818,"isText":false},{"path":"assets/icon.svg","sizeBytes":964,"isText":false},{"path":"LICENSE.txt","sizeBytes":11358,"isText":true},{"path":"SKILL.md","sizeBytes":11513,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-10-05T22:00:01.738007Z","sha256":"8A2FD938A2D4A35457B6ECEE0459715867E1020BE164DFDD94861A37396EACC3","sizeBytes":11667},"review":null,"source":{"repositoryUrl":"https://github.com/VoDaiLocz/kilo-kit-mcp","path":"skills/design/figma-implement-design","license":"Apache-2.0","commit":"0448e6c050b84e0c0be0030593bd51cabbce3c81","subtreeSha":"68A623B16D3B8F3FA42E9BE312845B1922B4ECB58250DA78D42DCE0CE4B836E4","lastSyncedAt":"2026-10-05T21:52:59.855581Z"},"reviewedAt":"2026-10-05T22:15:37.785841Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/VoDaiLocz/kilo-kit-mcp/tree/main/skills/design/figma-implement-design"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install vodailocz-kilo-kit-mcp@llmmart"},{"target":"git","command":"git clone https://github.com/VoDaiLocz/kilo-kit-mcp.git"}]}