figma2wp.mcpwp.org

Figma to WordPress

Rebuild Figma frames as native Gutenberg blocks you can keep editing

What is the fastest way to turn a Figma design into a WordPress site?

Rebuild it frame by frame as native blocks. An AI agent working on your site through NibWP can read an exported frame, map it to Group, Columns, Heading and Button blocks, and save your type and colour choices as theme styles. You review each draft in the block editor.

What you get

How it works

  1. Add NibWP to the WordPress site that will hold the design
  2. Export each frame as an image and note its fonts, colours and widths
  3. Ask the agent to rebuild one frame at a time as blocks on a draft page
  4. Check the draft at desktop and mobile widths, request fixes, then publish

What to check after

Interactive prototypes, hover states and component variants stay in Figma, because the agent rebuilds the static layout. Designs made at only one screen size need mobile decisions in the editor. Custom fonts must be licensed for web use and uploaded before the styles look right.

What does a Figma handoff look like when the target is WordPress?

A designer hands over frames, a set of colour and text styles, and the image assets. WordPress, in the block editor, wants something else: blocks arranged into pages, a theme that defines colours, fonts and spacing presets, and patterns for sections that repeat. A good conversion takes the first and produces the second, so the finished pages behave like any other WordPress page.

That rules out the quick option of exporting the design as code and pasting it into a single HTML block. The page would look right, but nobody could edit a heading without touching markup, and the theme’s global styles would never reach it. The MCPWP article on native blocks versus a custom HTML block covers why that shortcut costs more later.

hand sketching a website wireframe on paper, illustrating Getting ready for Figma to WordPress
Getting ready for Figma to WordPress. Photo from Unsplash.

How do Figma elements map to the block editor?

In FigmaIn WordPressNote
Frame with vertical or horizontal auto layoutGroup block set to Stack or RowGaps become block spacing
Grid layoutGroup block using a grid layoutChoose the column count per section
Text stylesTypography presets in global stylesKeep the scale small and consistent
Colour styles or variablesTheme colour paletteUse the same names to avoid confusion
Image fill on a frameCover block or Image blockCover when text sits on top
Repeated componentSynced patternEdit once, update everywhere
Icons and illustrationsSVG or image filesExport them rather than redraw
Prototype linksNothing automaticKeep them as notes for the build

Before you start

  • A WordPress site with a block theme, ideally on staging
  • Frames named in the order pages should be built
  • All assets exported, photos as compressed images and icons as SVG
  • Fonts in the design licensed for the web
  • A clear note of which screen sizes the design covers
desk workspace with monitors in a dark room, illustrating How the Figma to WordPress workflow looks in practice
How the Figma to WordPress workflow looks in practice. Photo from Unsplash.

Figma to WordPress, frame by frame

You run the process from your AI client, connected to the site through NibWP. Each frame turns into a draft you approve in the block editor.

Turn styles into global styles first

Before building a page, ask the agent to set the theme palette, font families, font size presets and spacing steps from the Figma styles. Doing this first is what makes the result maintainable: blocks then pick from presets instead of carrying their own values.

Keep the number of presets modest. A design with a dozen slightly different font sizes usually works better in WordPress with five or six, and agreeing that list with the designer at this point prevents small inconsistencies from spreading across every page.

Build the shared parts as patterns

Header, footer, call to action bands and testimonial rows appear on many pages. Rebuild each one once and save it as a pattern, synced where every copy should change together. Later frames reuse them instead of rebuilding them.

Rebuild each frame on a draft

Share the exported frame with its key widths and gaps and ask the agent to rebuild it with Group, Columns, Heading, Paragraph, Image and Buttons blocks. Ask it to use your presets by name. Review the draft against the frame before moving on.

Before and after: a hero frame

PartIn FigmaIn the block editor
Hero frameAuto layout frame with a background imageCover block using the image, with an overlay for contrast
HeadlineText layer with the display styleHeading block using the largest font size preset
Intro textText layer with the body styleParagraph block with the body preset
ButtonsTwo button component instancesButtons block with two buttons, one in an outline style
SpacingAuto layout gaps and paddingBlock spacing and padding from the theme spacing steps

Every value in the right-hand column comes from the theme, so changing the brand colour or the heading size later is a single edit in global styles.

Do the mobile pass

If the design only covers desktop, decide how each section should stack on a phone, which images to crop or hide and how large headings should be. Check the draft in the editor preview and on a real phone.

Which WordPress targets can a Figma design go to?

This guide targets the block editor, which needs no page builder and is part of every WordPress site. If your site runs Elementor, the Figma to Elementor guide rebuilds frames as Elementor containers and widgets instead. When a developer has already turned the design into code, the HTML to WordPress guide starts from that markup, and a design that is already live somewhere can follow a live URL to WordPress.

Whichever target you choose, the preparation is the same: named frames, exported assets, a clear list of styles and an agreed set of screen sizes. Doing that work once in Figma makes every route faster.

What converts cleanly, and what needs rework?

Layout, typography, colour and real content come across well, because blocks and global styles cover them directly. These parts need extra attention:

  • Interactive prototypes and transitions, which describe behaviour rather than layout
  • Component variants such as hover and active states, which become block style variations or simple CSS where needed
  • Overlapping layers with absolute positions, which are simplified so the layout survives small screens
  • Effects like background blur, layered shadows and blend modes, which may only partly carry over
  • Text that was flattened into images, which should come back as live text
  • Forms drawn in the design, which need a WordPress form plugin to actually work

For each item on that list, ask whether it earns its place. A static, well-spaced section often serves readers better than a faithful copy of an animated prototype, loads faster and is easier to keep accessible. Rebuild behaviour only where it helps someone understand or act on the page, and note the rest for a later phase.

Is there a Figma to WordPress converter or plugin that does this?

Export plugins exist that turn Figma frames into code or into builder layouts, and they can suit some projects. None of the WordPress MCP plugins we have compared offers a dedicated Figma to blocks workflow, so this route uses a general agent connected through NibWP, working on your own site with a draft for every frame. NibWP has a free version on WordPress.org, its MCP switch stays off until you enable it, and each AI client connects with its own application password.

  1. Set global styles and patterns from the Figma file
  2. Rebuild the home frame and review it at two widths
  3. Rebuild the remaining frames, reusing patterns
  4. Do a final pass for mobile, alt text and links before launch

Leaving a hosted builder at the same time? The Squarespace to WordPress guide covers moving the content across. Every converter guide is listed on the MCPWP converters page.

Videos worth watching before you start

These are independent videos from other creators. We have not tested every step in them, so check each upload date and compare with the current documentation.

Troubleshooting

Going from Figma to native WordPress blocks is simpler than a builder route, though a few problems appear again and again.

The design needs a layout the block editor lacks

Core blocks cover Group, Columns, Grid and Stack, which handle most layouts. For overlap or complex alignment, use spacing and the Cover block, or accept a small change from the design and agree it with the designer.

Theme styles override the design

Block themes control default type and spacing. Set your fonts, colors and spacing in theme.json or Global Styles first, so blocks inherit the design instead of fighting it.

Spacing is inconsistent between sections

Use a spacing scale in Global Styles and apply presets, not custom pixel values on each block. Consistency comes from the scale.

Icons and logos render poorly

Upload SVGs through the Media Library if your setup allows it, or use an image at twice the display size. Add alt text for logos that carry meaning.

Text wraps differently from the frame

Figma frames fix a width and WordPress content flows. Set a content width, then check the longest headings at mobile size and shorten them if they wrap badly.

Buttons do not match hover states

Hover and focus styles live in styles, not in the block itself. Define them once in Global Styles for the button block and review focus states for keyboard users.

When a block looks wrong, check Global Styles before touching the block. A site-wide setting is often the cause, and fixing it once repairs every block that inherits it. Where the editor genuinely cannot match the design, say so early and agree a close alternative rather than forcing a fragile workaround that breaks the next time WordPress updates.

Doing it by hand vs with an AI agent

For native blocks, the real choice is between building each page yourself and directing an agent. Here is a fair comparison.

TaskBy handWith an AI agent
Setting up fonts and colorsOne careful setup, full controlThe agent can draft it from your values
Building repeated sectionsCopy and tweakFast and consistent
Exotic layoutsYou can pick a workaround quicklyMay need several attempts
Accessibility checksYou verify contrast and orderCan flag issues, you confirm
Keeping the site lightCore blocks keep it lightSame result, if you ask for core blocks only
Learning the design systemYou absorb the designQuicker start, less familiarity afterwards
Handover to editorsYou write notes for themPatterns and Global Styles act as a built-in handover
Future design changesEdit theme settings onceSame, with help applying and reviewing the change

Native blocks reward planning. Setting up the design system carefully takes time once, and every page after it is faster whether you build by hand or with an agent. Write down any place where the block editor could not match the design and why. Those notes are useful for the designer, who may prefer a small change to the design over a workaround, and they stop the same question coming up again on the next page.

Checklist before you publish

Use this list in both the editor and the front end. A page can look right in one and wrong in the other, so check both.

  • Fonts, colors and spacing are in Global Styles or theme.json
  • The page uses core blocks, not one Custom HTML block
  • Heading levels are in order with one H1
  • Images are uploaded with alt text
  • Contrast meets the design and reads well on mobile
  • Keyboard focus is visible on links and buttons
  • Mobile, tablet and desktop were reviewed
  • The page title and meta description are set
  • A backup exists before publishing
  • Someone compared the page with the Figma frame
  • The Site Editor view matches the front end
  • Patterns exist for sections used more than once

Keep the list with your theme notes. It also works as a handover for whoever edits the site next.

Glossary

Terms that block-theme builders use daily.

Block theme: a WordPress theme built on blocks and Global Styles instead of PHP templates

theme.json: the file where a block theme stores its fonts, colors and spacing

Global Styles: the editor panel where site-wide design settings are changed

Pattern: a saved group of blocks you can insert again

Group block: a container block used to build sections

Spacing preset: a named spacing value, so sizes stay consistent

Template part: a reusable piece of a block theme such as a header or footer

Site Editor: the WordPress tool for editing templates and Global Styles

Common mistakes

Native blocks are forgiving when the design system is set up well and unforgiving when it is not. Most of the mistakes below come from skipping that setup and styling blocks one at a time.

  • Setting styles on every block. Use Global Styles so changes stay manageable.
  • Falling back to a Custom HTML block. It looks quick and costs editability, see native blocks versus a Custom HTML block.
  • Ignoring the editor view. Check how editors will experience the page, not only visitors.
  • Choosing a builder by habit. If you do want one, Figma to Elementor covers that route, and HTML to WordPress covers finished code.
  • Forgetting focus states. They matter for keyboard users and are easy to overlook.
  • Skipping patterns. Save repeated sections as patterns so edits stay consistent.

Build the system first, the patterns second and the pages last. That order makes each later page quicker and keeps the editor tidy for whoever takes over.

Get the guide by email

The Figma to WordPress handoff checklist: what to export from each frame and how to brief the agent.

Guide request

Questions

Is there a free way to go from Figma to WordPress?

NibWP has a free version, and the rebuild runs through the AI client you already use.

Do I have to use a page builder?

No. This guide targets the block editor. If your site runs Elementor, the Figma to Elementor guide fits better.

Is there a dedicated Figma to WordPress converter?

None of the WordPress MCP plugins we have compared offers a dedicated Figma to blocks workflow. This route uses a general agent connected through NibWP.

How do I turn a Figma design into a WordPress theme?

For a block theme, set the design system in theme.json and Global Styles, then build pages and patterns from core blocks. Custom PHP themes are a separate, heavier route that this approach does not require. Core blocks cover most designs without extra tools. Start from the design system, not the page. Review each step before you move on. Keep notes so the next page goes faster. Ask someone else to check the result.

Can I convert Figma to WordPress for free?

Yes for the build itself, since WordPress and core blocks are free. Your costs are your time, hosting and any AI client you choose. Plugins that promise one-click export usually still need manual cleanup. Hosting is usually the main ongoing cost. Check hosting before you commit. Review each step before you move on. Keep notes so the next page goes faster. Ask someone else to check the result.

Does WordPress support Figma auto layout?

Not directly, but Group, Stack, Row and Grid layouts cover most of what auto layout does. Padding and gap map to block spacing, while resizing rules need manual decisions. Spacing needs decisions that a design file does not always make. Decide the spacing scale first. Review each step before you move on. Keep notes so the next page goes faster. Ask someone else to check the result.

Do I need Gutenberg or a page builder for Figma designs?

Not necessarily. Core blocks cope with many designs. A page builder helps if you need layout controls blocks lack or if your team already uses one. Choose by who will edit the site day to day. Ask who will edit the site. Review each step before you move on. Keep notes so the next page goes faster. Ask someone else to check the result.

How do I keep my Figma fonts in WordPress?

Confirm the font licence, load the font files in your theme or Global Styles, and set the font family and weights to match the design. Then test headings to make sure nothing falls back. Check the weights you used, not only the family name. Test headings at mobile width. Review each step before you move on. Keep notes so the next page goes faster. Ask someone else to check the result.

Start with NibWP

Related guides