Skip to content
Content
Skill

/figma-to-divi

Use when the user says 'figma to divi', 'build this figma design in divi', or hands over a Figma frame to rebuild in WordPress on a Divi site. Maps the Figma node tree to native Divi sections, rows, columns and modules (Divi 5 blocks or Divi 4 shortcodes, auto-detected) and

From plugin
respira-wordpress-skills
5155 skills

Claude Code

$ npx -y skills add respira-press/agent-skills-wordpress --skill figma-to-divi --agent claude-code

SKILL.md

figma-to-divi.SKILL.md
name: figma-to-divi
description: "Use when the user says 'figma to divi', 'build this figma design in divi', or hands over a Figma frame to rebuild in WordPress on a Divi site. Maps the Figma node tree to native Divi sections, rows, columns and modules (Divi 5 blocks or Divi 4 shortcodes, auto-detected) and writes to a draft, so nothing live is touched."
license: MIT
metadata:
  author: Respira for WordPress
  author_url: https://respira.press
  version: 1.1.0
  mcp-server: respira-wordpress
  category: migration

Figma to Divi

Rebuilds a Figma frame as a real, editable Divi page. Reads the Figma node tree (layers, auto-layout, text, colors, images), maps each node to its closest Divi module inside a proper section > row > column structure, and writes native Divi content to a draft so nothing live is touched. Works on Divi 5 (block storage) and Divi 4 (shortcode storage); Respira detects the generation and emits the right format.

What This Skill Does

Figma stores a tree of nodes with auto-layout and design tokens; Divi stores sections containing rows of columns containing modules. This skill bridges the two: every Figma node is read, understood, and recreated as the right Divi element with matching styling.

**Handles:**

  • Top-level frames → Divi sections; horizontal auto-layout → rows with matching column counts; vertical auto-layout → stacked modules in a column
  • Text nodes → Heading module (level inferred from font size) or Text module
  • Rectangles/ellipses with image fills → Image modules; plain shapes → styled columns/sections; lines → Divider
  • Repeated patterns by layer name + structure: FAQ stacks → Accordion, image rows → Gallery, number+label pairs → Number Counter, icon+title+body cards → Blurb, platform icon rows → Social Media Follow
  • Typography (family, size, weight, line-height, letter-spacing, alignment) via Divi's heading/body type controls
  • Colors (solid fills with opacity, linear/radial gradients), borders, per-corner radius, box shadows
  • Section/row spacing from Figma padding and item spacing
  • Image fills downloaded from Figma and sideloaded into the WordPress media library
  • Inset rounded "panel" sections (a signature of modern SaaS designs) via section max-width, radius and background

**Preserves:** text content, links and media; layout structure and nesting; the visual styling above as closely as Divi's rendering allows.

What This Skill Does NOT Do

  • **Pixel-perfect recreation** — Divi renders with the browser box model, not Figma's canvas; expect light manual fine-tuning
  • **Figma components with overrides / variants** — flattened to visible content and flagged
  • **Prototyping and interactions** — no Divi equivalent, skipped
  • **Complex vector art, masks, blend modes** — flattened to images where possible, otherwise flagged
  • **Auto-generated responsive breakpoints** — the build targets the desktop frame; tablet/phone passes are manual unless the file has explicit responsive frames
  • **Divi global colors registration** — the palette is applied consistently across the page; promoting it into Divi's own global colors is left as a flagged manual step
  • **Theme Builder templates** — headers/footers/archive templates are out of scope; this builds page content

Requirements

  • Respira for WordPress plugin installed and connected; Divi active (4 or 5)
  • MCP connection active
  • **Figma read access from your agent** — a connected Figma MCP, or a Figma file/frame URL plus a personal access token
  • Write access to create a draft with the new Divi content

Trigger Phrase

  • "figma to divi"

Alternative Triggers

  • "build this figma design in divi"
  • "convert figma to divi 5"
  • "turn my figma frame into a divi page"

Source: Figma

Same read model as every figma-to-* skill: read the selected frame's node tree via the agent's Figma access (Figma MCP, or REST `GET /v1/files/:key/nodes?ids=:id` plus `GET /v1/files/:key/images` for image fills). Key properties: node `type`, `layoutMode`/`itemSpacing`/`padding*`/axis alignment, text `style`, `fills`/`strokes`/`cornerRadius`/`effects`/`opacity`, `characters`, IMAGE fills.

Target: Divi

Call `respira_get_builder_info` first. On Divi 5 the write mode is native `divi/*` blocks and `respira_build_page` expects a nested structure: `divi/section > divi/row > divi/column > modules` (`divi/heading`, `divi/text`, `divi/button`, `divi/image`, `divi/blurb`, `divi/accordion`, `divi/gallery`, `divi/number-counter`, ...). Fetch per-module attribute schemas from the endpoint `get_builder_info` returns before authoring, so no setting is silently dropped. On Divi 4 the same simplified tree is emitted as shortcodes by Respira — the mapping below is identical.

**Mapping (Figma → Divi):**

  • `TEXT` → `divi/heading` (≥48px h1, ≥36 h2, ≥28 h3, ≥20 h4, else body) or `divi/text`
  • Top-level frame → `divi/section`; HORIZONTAL auto-layout child → `divi/row` with one `divi/column` per child; VERTICAL → modules stacked in one column
  • IMAGE fill → `divi/image` (sideloaded first); `LINE` → `divi/divider`
  • FAQ stack → `divi/accordion` + `divi/accordion-item`; icon+title+body card → `divi/blurb`; number+label → `divi/number-counter`
  • Buttons: real `divi/button` modules. For a pixel-close pair of adjacent buttons, put two `divi/button` modules in a two-column row. A `divi/text` with styled inline links only when the user accepts inline styling, sent with `allow_inline_styles: true` (flag it in the report)
  • Inset rounded panels: section `background_color` + page-level custom CSS (max-width, margin auto, border-radius) via `respira_update_page` `custom_css`
  • Typography/colors/spacing: simplified settings (`heading_font_size`, `font_color`, `background_color`, `padding`, `text_transform`, `border_width`, `opacity`, ...) per the inline schemas

**Native attributes are the default on Divi 5.** Every write lands styling as the module's own design attributes, the ones the client edits in the Visual Builder: settings keys, CS

Read more
@respira-press
Ships withrespira-wordpress-skills

The community hub for WordPress AI workflows. Skills that run inside Claude Code, Codex, Antigravity, Cursor, and any AI agent that supports Skills + MCP to analyze, audit, optimize, and fix WordPress sites. Built by the community. Curated by Respira.

Stars on GitHub

Momentum

stars in total
51
Star history of respira-press/agent-skills-wordpress on GitHub, a chart by star-history.com

Other skills on respira-wordpress-skills.

More skills from other plugins.

prompt-lookup

prompt-lookup

Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…

@gh-f@gh-fInstall Skill
ppt-master

ppt-master

AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…

@hugohe3@hugohe3Install Skill
morph-ppt

morph-ppt

Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…

officecli12d33k
@iofficeai@iofficeaiInstall Skill

Questions about figma-to-divi.

Which coding agents can use figma-to-divi?
figma-to-divi installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.