Skip to content

$99 lifetime on AppSumo · Limited time

Get deal
wpgraft
ClaudeClaudeA page or artifact Claude generated
FigmaFigmaLayers built into the design file you have open

How to copy a page from Claude into Figma

Copy a page from Claude into Figma as editable frames, text and auto layout, not a screenshot. What comes across, and what does not.

wpgraft does not care that a language model wrote the HTML, or what framework it used. It reads the page as your browser rendered it: the real elements and the real computed styles on each one, at every width you ask for. It then builds that as Figma layers: frames, text, vectors and image fills, with auto layout wherever the page was genuinely laid out in rows and columns. Nothing that arrives depends on Claude still being there.

Claude will write a whole landing page in one go, and what comes out is code. When the next step is a design review, wpgraft turns the rendered page into Figma layers: frames, text and images a designer can change and comment on without touching the HTML.

Before you start

What to have ready

  • 01A Figma account and a Design file you can edit, open in Chrome at figma.com. A file that is view-only for you cannot take a copy; duplicate it to your drafts first.
  • 02No Figma plugin. Nothing is installed in Figma: the extension builds the copy into the open file itself.Get the extension
  • 03In the extension’s Copy into menu, pick Figma, listed under Design tools.Get the extension
Phase 1 · Set up
  1. 01

    Install the wpgraft extension in Chrome

    wpgraft is a Chrome extension. Get it from wpgraft.com/releases. Install it, click the icon, sign in. Copying needs an account with a paid plan, which you can choose from wpgraft.com/#pricing. On your very first copy it asks you to confirm you have the right to reuse what you are copying, once, and does not ask again.

    Get the Chrome extensionwpgraft.com/releases → Get the Extension
  2. 02

    No plugin: Figma needs nothing installed

    There is no Figma plugin in this story. The extension builds the copy into a Figma design file you have open in Chrome, through the editor’s own Plugin API, so the only thing you install is the extension.

Phase 2 · Copy, in Claude
  1. 03

    Open the Claude page you want

    Claude renders an artifact inside a sandboxed frame in the chat, and wpgraft copies the page the tab is on rather than reaching into frames. Publish or share the artifact and open that link in its own tab. That link is an ordinary web page, and it copies like one.

    Open the artifact as its own page first
  2. 04

    Choose Figma in the extension

    Click the wpgraft icon on the source tab and pick your destination under Copy into. There is one Figma entry, labelled Figma. Switch Also copy tablet & phone on unless you only want the desktop layout: it is off until you turn it on, and it captures three viewports instead of one, so you get a tablet and a phone frame beside the desktop one.

  3. 05

    Point at what you want and copy it

    Select element starts a picker: hover to highlight, press ↑ to widen the selection to the parent and ↓ to narrow it again, click to confirm, Esc to cancel. Whole page takes the entire document in one pass. wpgraft scrolls the page for you first so lazy images and scroll-triggered effects have fired, then waits for the fonts and images to finish before it reads anything.

    click copies · ↑ widen · ↓ narrow · Esc cancels
Phase 3 · Insert, in Figma
  1. 06

    Open your design file in Figma, in Chrome

    Sign in at figma.com and open the Design file you want the copy in, or create one with + Create → Design. Keep it in Design mode: nothing can be added to a file while it is open in Dev Mode. The copy goes onto the page that is open in that file.

    Open the design file at figma.com, in Chrome
  2. 07

    Add it in Figma

    When the copy is ready, the box wpgraft shows on the page you copied from has an Add to Figma now button once wpgraft is allowed on figma.com. Otherwise click the wpgraft icon and press Add in Figma on the copy, and allow it when Chrome asks. The extension finds the Figma Design file open in Chrome, downloads the copy’s images itself, and builds the layers in that tab through the editor’s own Plugin API, the same one a Figma plugin uses: frames, text with styled ranges, vectors and image fills. Each captured width becomes one frame, placed to the right of whatever is already on the page, and the new frames are selected and zoomed into view when it finishes. If Figma refuses the copy part-way, the half-built layers are taken off the page again. You can keep working while it builds; a progress bar shows how far it has got.

    Add to Figma now · or the wpgraft icon → Add in Figma
  3. 08

    Check the fonts

    The popup reports how many frames and layers were added, and names the fonts Figma did not have and had to replace. Add those fonts to Figma, or set the text in fonts you have. Figma saves the file as you go, so there is nothing else to press.

Phase 4 · Edit
  1. 09

    Edit it like you built it

    This is where the product earns its keep. Click any layer and Figma’s Design panel shows its real values. Retype the heading, swap an image fill, change the auto layout spacing, or duplicate a frame and start redesigning.

The result

What lands in Figma

Frames, text and images, not a screenshot

Every box becomes a frame or a shape where the browser drew it, every piece of text a text layer with its font, size, line height, letter spacing and links, every inline SVG a vector, and every image an image fill stored in the file. Select anything and its values are in Figma’s own Design panel.

Auto layout where the page really was a row or a column

Direction, spacing, padding, alignment and Hug, Fill or Fixed sizing are derived from the measured boxes, and auto layout is kept only if every child lands within 0.75px of where the browser put it. Everything else keeps its exact position.

One frame per width

With Also copy tablet & phone on, you get a Desktop, a Tablet and a Mobile frame side by side, each named with its width. With it off, you get the desktop frame alone.

Paint in Figma’s own fields

Colours, linear, radial and conic gradients, borders, corner radii, shadows, blurs and blend modes are written as Figma fills, strokes and effects, not flattened into a picture.

After the insert: Nothing to press: Figma saves the file itself, as it does for anything you draw. The popup reports how many frames and layers were added, and names the fonts Figma did not have.

The source side

Copying out of Claude

Claude renders an artifact inside a sandboxed frame in the chat, and wpgraft copies the page the tab is on rather than reaching into frames. Publish or share the artifact and open that link in its own tab. That link is an ordinary web page, and it copies like one.

  • The frame is the whole trick. Clicking the wpgraft icon while looking at an artifact inside the chat copies the chat, not the artifact. Get the artifact onto its own URL first and everything else is normal.
  • Failing a share link, ask Claude for the full HTML, save it as a .html file and open it in Chrome. Then switch Allow access to file URLs on for wpgraft at chrome://extensions, which Chrome requires before any extension can read a local file.
  • An AI-generated page is usually one self-contained document with a <style> block, which is about the cleanest thing you can hand a converter.
  • Ask for the design you want in plain HTML and CSS rather than in a framework. A page that needs a build step to render is a page your browser cannot render for wpgraft to read.
Honest limits

What does not carry over

A guide that only lists what works will waste your afternoon. These are the things that surprise people, set out before you start rather than discovered afterwards.

  • What is on screen is what is copied. A closed accordion is copied closed; an inactive tab is copied inactive; a carousel is copied on whichever slide was showing. Put the page into the state you want before you pick.
  • Behaviour does not travel; appearance does. A Figma file is a design, so nothing in the copy runs: a slider is the slide that was showing, a menu is drawn as it was open or closed, and a form is drawn fields.
  • Anything driven by a query arrives as a design. A post grid or a product list copies as the items that were on the page at that moment.
  • Only the page in the tab is copied; never what is inside a frame. An <iframe>, such as a map, a video player from another site or an embedded form, arrives as a placeholder of its size named after the site it comes from. wpgraft does not descend into it, which is also why a builder’s own editor canvas and an AI chat’s artifact preview have to be opened on their own URL before you can copy them.
  • Links stay as links on the text, and nothing more. A text link keeps its address as a Figma link on that text. No prototype interactions are made: a button is a frame with text in it, and clicking it in a prototype goes nowhere until you wire it.
  • Figma needs the fonts. A font Figma does not have is replaced, and the popup names the fonts it replaced. Add the font to Figma, or set the text in one you have.
  • Auto layout only where it is true. A CSS grid arrives laid out exactly, with fixed positions, rather than as a Figma grid, and so does any row Figma’s auto layout could not reproduce to within 0.75px.
  • Clip shapes drawn with clip-path: polygon() or path() are not reproduced yet. Inset, circle and ellipse clips are, as masks.
  • Figma in Chrome only. A Chrome extension cannot reach the Figma desktop app. Open the same file at figma.com in Chrome; the layers are in the file, so the desktop app shows them too.
  • A very large page is capped at 12,000 layers per width. Anything past that is left out of the copy, and the copy says so. Copy a long page a section at a time.
Questions

Claude to Figma: FAQ

Why does copying from the Claude chat window give me the chat instead of the design?

Because that is what the tab is showing. The artifact renders inside a sandboxed frame from a different origin, and wpgraft captures the top-level page, deliberately, since reaching into other origins’ frames is exactly what a well-behaved extension should not do. Open the artifact on its own URL and copy that.

Do I need a Figma plugin?

No. Nothing is installed in Figma. The Chrome extension builds the layers in the design file you have open in Chrome, through the editor’s own Plugin API, so the only thing to install is the extension.

Does it work with the Figma desktop app?

Not directly: a Chrome extension cannot reach the desktop app. Open the same file at figma.com in Chrome and add the copy there. The layers are saved in the file, so you will see them in the desktop app as well.

Add in Figma says the file is view-only, or in Dev Mode. What do I do?

View-only means you can look at the file but not change it: open a file you can edit, or use the file menu → Duplicate to your drafts. A file in Dev Mode takes no new layers: switch back to Design mode with the toolbar toggle or Shift + D, then press the button again. FigJam boards and Slides do not take copies either; open a Design file.

Does moving from Claude to Figma change anything on the Claude side?

No. wpgraft reads the generated page and writes to Figma. Nothing is sent back to Claude and nothing there is altered.

Will the Figma copy still need Claude installed?

No. What lands in Figma is layers drawn from the page: frames, text, vectors and image fills, with the images stored in the Figma file itself. Nothing in it depends on Claude still existing.

Is the result editable, or is it a locked block?

Editable. Every layer is an ordinary Figma layer: select it and Figma’s Design panel shows its real values, and an auto layout frame resizes the way Figma’s own do. Before release, real sites were built into a real Figma file this way and compared with the live page, pixel by pixel.

Does it copy the mobile and tablet layouts too?

Yes, once you switch Also copy tablet & phone on. It is off by default, and with it off you get the desktop layout only, slightly faster. With it on, wpgraft measures the page three times: at your window’s own width, then at 768px, then at 375px. Each width becomes a frame of its own, Desktop, Tablet and Mobile side by side, because a Figma frame has one width. One honest caveat about the measurement: the Web Store build produces the narrow viewports inside the page rather than by resizing the window. It re-evaluates every media query at the target width, pins the layout width, resolves vw units and clamps position: fixed boxes to it, and the result is measured at 100% of the property values a real 768px and 375px window produces on getbootstrap.com and on a stock WordPress theme. What it cannot do is re-run the source site’s own JavaScript for the new width, so a layout a script computes on resize is copied as the desktop script left it, and the capture says so in a warning.

What does this cost?

Every plan is paid; there is no free tier and no trial. Pro is $20 a month or $180 a year, and Lifetime is $299 once. Each one includes every destination, whole-page copies as well as sections and elements, and unlimited copies at full fidelity, with nothing watermarked or downgraded. If it does not work for what you build, ask within 7 days of the charge and 90% of the plan price comes back.

Is copying a page from Claude legal?

A page you generated yourself is yours to use, subject to the terms of the tool that generated it. Fonts, images and icons that the page pulled in from somewhere else carry their own licences and those follow them into the copy.

Read more

Try a single section first.

Every destination unlocked, full fidelity, on every plan. Point at one Claude section, put it in Figma, and judge the result inside the refund window.