Back to Plugins
Drift - Code to Figma

Drift - Code to Figma

Convert any HTML, CSS, and JavaScript into fully editable Figma designs.

Plugin Preview

Drift - Code to Figma preview

About this plugin

Paste a snippet from an AI coding tool (Claude, ChatGPT, v0, Cursor) or CodePen. Drag in or upload a project folder. Capture a live page through the companion browser extension you download directly from the plugin's home screen. Drift parses the rendered DOM and rebuilds it as Figma layers β€” auto-layout, semantic text styles, fonts from your library, gradients, shadows, real images.The output is a structured Figma file you can iterate on, not a screenshot.πŸ’Ό [Made by Shafeeq](https://www.linkedin.com/in/shafeequr-rahman-b403b3115/)πŸ“§ [email protected] (feedback welcome)How to convert code into Figma1. In Figma, open the Plugins menu and run Drift.2. Pick how you're bringing the code in:* Paste Code - the primary path. Tabs for HTML, CSS, and JS, plus a render type (Website, Web app, Mobile app, UI component, or Animation / SVG).* Upload a file - Website, Presentation, or Product UI. Drag files straight onto the upload area, or click to browse. Shift-select to bring a folder's `.css`, `.js`, images, and fonts along with the `.html`.* Capture extension - for live pages behind login or blocked by CORS (see below).3. Hit Render to preview. Then Send to Figma to drop the result onto your canvas as editable layers.The plugin window is resizable β€” drag the bottom-right corner to fit your workflow. Your chosen size persists across sessions. The interface stays in a single, consistent light theme regardless of your OS appearance setting.How to capture a live websiteFor pages behind login, JS-rendered apps, or sites that block direct fetches:1. On Drift's home screen, expand the "Capturing a live website?" card and click Download .zip. The companion Drift Capture Chrome extension ships bundled inside the plugin β€” no separate install hunt.2. Unzip the file. In Chrome go to `chrome://extensions`, turn on Developer mode, click "Load unpacked," and point at the unzipped folder.3. Open any page in Chrome β€” log in or navigate where you need. Click the Drift Capture icon. The extension waits for animations to complete and DOM mutations to settle, then saves a self-contained `.html` to your downloads.4. Drag that `.html` straight into Drift's upload area (or click to browse to it). The capture renders with all its post-JavaScript state intact.The extension snapshots from your tab's own context β€” so authenticated apps, Cloudflare-protected sites, and React/Next.js apps all work.Supported file formats1. `.html` and `.htm` files (single page).2. Project folders with `.html` + linked `.css` + `.js` + images + fonts (drag the files onto the upload area, or shift-select to upload multiple β€” Drift resolves references and inlines assets).3. Captured pages from the Drift Capture browser extension.Paste HTML + CSS + JS directly1. Use the Paste Code action on the home screen to skip file uploads entirely β€” it's the fastest way to bring AI-generated UI in.2. Three tabs (HTML / CSS / JS) β€” dot indicators show which ones you've filled in. The tabs stay pinned at the top, the paste area fills the window, and the render controls stay docked at the bottom.3. Five render types:* Website - full-page layouts. The result is a multi-section build with per-section frames you can select individually.* Web app - a dashboard or app screen, rendered at desktop width.* Mobile app - rendered at a 390px mobile width as a single tall screen frame.* UI component - buttons, cards, forms, snippets. The result is a tight, single auto-layout Figma frame sized to the component (not the viewport), ready to drop into a design system.* Animation / SVG - set a frame count, and Drift pauses the animation, scrubs its timeline, and exports each sampled point as its own Figma frame. Works with CSS animations/transitions, the Web Animations API, and SVG (SMIL).4. Works with code from CodePen, JSFiddle, ChatGPT, Claude, v0, Cursor, or any other LLM.LLM-ready prompts built inClick Prompts in the footer for three pre-tuned prompt templates:* UI component - primes the model to output a fragment with semantic HTML, plain CSS, and the flexbox patterns Drift maps cleanly to Figma.* Website - primes the model to use `

`/`
`/`
` for top-level frames, max-width inner containers, and a 1440px viewport.* Presentation - primes the model to emit `
` at 1920Γ—1080 with presentation-scale typography.Copy any template, paste into Claude / ChatGPT / any LLM, then ask for the code you want. Drop the result back into Drift's Paste Code panel. No manual rebuilding of AI output.Two-way: copy any Figma frame as HTML1. Select any auto-layout frame in Figma.2. Click **Copy as HTML** in the plugin toolbar.3. Drift walks the Figma tree and serializes it as self-contained HTML with inline CSS, base64 images, and inline SVG vectors.4. Paste into a code editor, an LLM prompt, or a handoff document.Useful for engineering handoff, iterating on an existing design with an LLM, or extracting a working component scaffold from a Figma file.Why use Drift?1. Turn AI-generated UI code (Claude, ChatGPT, v0, Cursor) into editable Figma frames without manual rebuilding.2. Redesign an existing website without screenshotting and tracing.3. Bring real production pages into Figma for design review, audit, or competitive analysis.4. Capture a benchmark of trusted sites and reuse their structure as editable scaffolding.5. Break an animation or SVG into frame-by-frame Figma frames for storyboarding or motion review.6. Iterate fast: prompt Claude β†’ paste into Drift β†’ tweak in Figma β†’ Copy as HTML β†’ prompt again.7. Runs entirely as a standard Figma plugin β€” no MCP, no external AI integration required.Free, no account1. Free for everyone, no signup required.2. No imports counter, no daily cap.3. No accounts, no telemetry. Drift never POSTs your content to any server. Your browser does fetch external images and fonts that your HTML references β€” the same way it would when visiting any webpage.4. Open to feedback and feature requests at the email above.What it's honest about1. Interaction-only states aren't captured. Hover effects, click-to-open modals, focus rings β€” nothing simulates user input, so they stay in their resting state. If a state matters, design it as a separate component with the appropriate class applied to the example markup.2. Some CDNs reject all programmatic fetches. The browser extension handles most CORS-blocked sites by capturing from your tab's own authenticated context, but a few production sites use server-side allowlists that refuse even authenticated browser-context fetches. In those cases the captured `.html` will reference the original URLs but the assets won't render in Figma.3. No preprocessor compilation. Plain CSS and JS only β€” no SCSS, JSX, TypeScript, or CSS-in-JS at the source-code level. Compiled output works fine.4. Animation capture is best-effort. The Animation / SVG type samples standardized timelines β€” CSS animations and transitions, the Web Animations API, and SVG SMIL β€” into separate frames. JS-driven players that paint to a `` or animate the DOM through their own `requestAnimationFrame` loop (some Lottie setups) can't be scrubbed and fall back to capturing whichever frame is active when the snapshot fires.5. Icon webfonts need to be installed in Figma to render correctly. When they're not installed, icon glyphs fall back to Inter (which produces "tofu" boxes for private-use codepoints). The glyphs will be centered correctly in their containers; just the visual won't match.Built by [Shafeeq](https://www.linkedin.com/in/shafeequr-rahman-b403b3115/). Feedback at [email protected].

Plugin Details

Version3
CreatedMay 16, 2026
Last UpdatedJune 8, 2026
CategoryImport & export plugins
CreatorShafeeq Rahman
Stats22 installs, 9 likes
PricingFree

Technical Details

  • API:1.0.0
  • UI:ui.html
  • main:code.js
  • Document Access:dynamic-page
  • Network Access:

    Needed to (1) fetch images referenced by HTML tags and CSS background-image URLs so they can be embedded as image fills in Figma, and (2) fetch live web pages and their stylesheets/fonts/images via the corsproxy.io CORS proxy when the user provides a URL, so the page can be reconstructed as Figma layers.

  • Editor Types:
    figma
  • Allowed Domains:
    • *
    • https://corsproxy.io