Skip to content

$99 lifetime on AppSumo · Limited time

Get deal
wpgraft
BricksBricksAny page built with the Bricks theme
FigmaFigmaLayers built into the design file you have open

How to copy a page from Bricks into Figma

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

wpgraft never reads Bricks’s data. There is no exporter and no importer anywhere in this. 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 Bricks still being there.

Your Bricks page stays exactly where it is: nothing is exported from Bricks and nothing there changes. What you get is the page as it looks today, as layers in your Figma file, to redesign, to hand to a client for review, or to keep as the design record a built site so often no longer has.

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 Bricks
  1. 03

    Open the Bricks page you want

    The published page, not ?bricks=run. The builder draws the page inside its own canvas frame; the front end is the thing to copy.

    Open the page on the front end
  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 Bricks

The published page, not ?bricks=run. The builder draws the page inside its own canvas frame; the front end is the thing to copy.

  • Bricks renders clean, shallow markup, so a Bricks page is one of the easier things to copy accurately. There is little wrapper noise to strip.
  • Bricks global classes are ordinary CSS classes on the front end. Their styles come across as resolved values, and the destination gets its own classes named from the styles themselves.
  • A Bricks query loop renders as however many items were on the page. The copy is those items as a design, not a loop that keeps querying.
  • Bricks interactions that start an element hidden will copy it hidden. Let the animation finish before you pick.
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

Bricks to Figma: FAQ

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 Bricks to Figma change anything on the Bricks side?

No. Nothing is exported, moved or deleted. wpgraft reads the rendered Bricks page the same way any browser does and writes a new copy into Figma. Your Bricks site keeps running exactly as it did, which is what lets you rebuild one section at a time and switch over when you are ready.

Will the Figma copy still need Bricks 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 Bricks 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 Bricks legal?

That depends on whose page it is and what you copy. Your own site, your own client’s site, a template you have licensed, or your own design on a platform you are leaving. None of that is in question. Somebody else’s design is a decision you are making, and wpgraft asks you to confirm you have the right to make it before your first copy. Text, images, fonts and icons all carry their own licences, and they travel with the copy.

Read more

Try a single section first.

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