Measured 26 October 2026

Same Figma file, six tools, measured

We put one free Figma Community template through six design-to-code tools and measured what came back, every page with the same checks: how closely it matches the design at the width it was drawn, what happens on a phone and a laptop, and whether anything was changed or made up on the way. Every output is downloadable, so you can check our work.

Design: Positivus Landing Page Design by Olga Averchenko, CC BY 4.0. Home frame, 1440px wide.

The scorecard

Six tools, one design

The Positivus landing page design, top of the Home frame

The test file is Positivus Landing Page Design, a free template anyone can open in Figma. Every tool was given the same Home frame. It has no phone version, so every tool had to decide for itself how the page should behave on smaller screens.

Open the file in Figma

Tool Font sizes match the design
texts, at 1440px
Spacing within 4px
gaps between texts
Sideways scroll Words not in the design Images with alt text Images served from
phone
390px
laptop
1024px
laptop
1240px
Weld 67 of 67 65 of 66 none none none none 51 of 76 its own folder
Figma MCP + Claude Code 35 of 66 32 of 65 none none none 219 43 of 43 its own folder
Anima 67 of 67 58 of 66 1,050 px 416 px 200 px none 0 of 59 c.animaapp.com
Codia 68 of 68 56 of 67 1,058 px 424 px 208 px none no <img> tags static.codia.ai
Locofy 67 of 67 40 of 66 1,050 px 641 px 425 px 20 60 of 60 its own folder
FigmaToCode 2 of 68 35 of 67 28,191 px 27,557 px 27,341 px 178 no <img> tags its own folder
CopyWebCould not produce a page to measure.

Out of the box

What each page gives you out of the box

The things a client site needs that nobody should have to add by hand afterwards, checked in each page’s own code.

Out of the box WeldFigma MCP + Claude CodeAnimaCodiaLocofyFigmaToCode
Writes no copy of its own Yes: none added No: 219 words added Yes: none added Yes: none added No: 20 words added No: 178 words added
Header, nav, main and footer landmarks No: no main No: no main No: no nav, main, footer No: no header, nav, main, footer No: no nav No: no header, nav, main, footer
One h1, no skipped heading levels –not measured –not measured –not measured –not measured –not measured –not measured
Every form field labelled –not measured –not measured –not measured –not measured –not measured –not measured
Alt text on every image No: 51 of 76 Yes: 43 of 43 No: 0 of 59 No: no <img> tags Yes: 60 of 60 No: no <img> tags
Sharp images on retina screens (2×) –not measured –not measured –not measured –not measured –not measured –not measured
Page language set Yes: yes Yes: yes No: no Yes: yes No: no No: no
Images shipped with the page Yes: in the download Yes: in the download No: loaded from c.animaapp.com No: loaded from static.codia.ai Yes: in the download Yes: in the download
No sideways scroll, 320 to 1440px Yes: none at any width Yes: none at any width No: up to 1,120 px No: up to 1,128 px No: up to 1,120 px No: up to 28,261 px

On a phone

What happens at other widths

Narrow your window on any of these pages and the difference shows in seconds. These are the tops of each page on a 390px-wide phone, with the sideways scroll each one leaves.

Weld output at 390px wide, top of page
WeldNo sideways scroll
Figma MCP + Claude Code output at 390px wide, top of page
Figma MCP + Claude CodeNo sideways scroll
Anima output at 390px wide, top of page
Anima1,050 px of sideways scroll
Codia output at 390px wide, top of page
Codia1,058 px of sideways scroll
Locofy output at 390px wide, top of page
Locofy1,050 px of sideways scroll
FigmaToCode output at 390px wide, top of page
FigmaToCode28,191 px of sideways scroll

What each tool does well

Weld

Follows the design’s type and spacing: font sizes match on 67 of 67 texts, and 65 of 66 gaps are within 4px.

No sideways scroll at any width we tested, from 320 to 1440px, and the only build here that also matches the design at 1440px.

Figma MCP + Claude Code

The cleanest code in this test: semantic sections, real form controls, and alt text on 43 of 43 images.

No sideways scroll at any width we tested, from 320 to 1440px.

Anima

Close to the design at 1440px: font sizes match on 67 of 67 texts.

Codia

Close to the design at 1440px: font sizes match on 68 of 68 texts.

Locofy

Writes styles for four width ranges, and at 1440px font sizes match on 67 of 67 texts.

FigmaToCode

Open source (GPL-3.0) and runs inside Figma, with no account needed.

How we measured

Font sizes match the design
Every piece of text on the page is matched to the same text in the design, and its rendered size is compared at 1440px, the width the frame was drawn at.
Spacing within 4px
The vertical gap between each pair of neighbouring texts, compared with the same gap in the design. Measuring gaps rather than positions means one tall section can’t push every number below it out.
Sideways scroll
How far the page is wider than the window, at 390px (a phone), 1024px and 1240px (laptops). A page built for the web should have none.
Words not in the design
Text on the page that appears nowhere in the design file. Page titles and other metadata aren’t counted.
Images with alt text
Images carrying an alt attribute, which screen readers use. An empty alt is correct for decoration and counts.
Out of the box
Read from each page’s own HTML and CSS: the header, nav, main and footer landmarks screen readers use to move around; one h1 with no heading levels skipped; a label on every field a visitor can fill in; a 2× version of images for retina screens (srcset or image-set); the page language; and whether images ship with the page or load from the tool maker’s server.
What it can’t see
These checks read text, layout and pixels. They can’t tell whether a picture is the right picture. Those we checked by eye, and the crops on each tool’s page show them.

All pages were opened from the same folder in the same version of Chrome, one after another, with the same scripts. The design itself is the reference for text and spacing.

What we changed in each output so we could open it

Weld

Output used
the zip a Weld user downloads, unchanged
Built
26 October 2026
Generator version
6de49e4

Measured exactly as delivered: nothing changed.

Figma MCP + Claude Code

Run on
26 October 2026
Output used
index.html + assets/ written by the coding agent

Measured exactly as delivered: nothing changed.

Anima

Run on
26 October 2026

Measured exactly as delivered: nothing changed.

Codia

Run on
26 October 2026

Measured exactly as delivered: nothing changed.

Locofy

Run on
26 October 2026
Output used
Two exports: 'Positivus Landing Page Design (Community).zip' (13:14) and an extracted export (14:44, measured). They differ only in class order and tailwind.config.js.

What we changed so we could open and measure it

  • Locofy exports Tailwind v4 source files, which a browser cannot use directly. We compiled them with Locofy's own setup (its package.json: Parcel + @tailwindcss/postcss; dependencies resolved 2026-10-26) and linked the compiled stylesheet in place of global.css.
  • Its HTML links images as /public/... (site-root paths). We changed them to ./public/... so the page works from any folder. Same files, same names.
  • One exported image is named just ".svg" (an unnamed Figma layer). Many web servers send that without an image type, so we copied it to public/unnamed-layer.svg.
  • The export references 4 file(s) it does not include (Content-Description.svg, Polygon-1.svg, Shape-Element.svg, Shape-Structure.svg). They stay missing in the measured page. Parcel will not finish while they are missing, so the build step alone used empty placeholders.

FigmaToCode

Run on
26 October 2026
Output used
HTML output pasted from the plugin

What we changed so we could open and measure it

  • The plugin's HTML output is a bare <div> fragment. We wrapped it in a minimal document (doctype, UTF-8, mobile viewport tag, body margin 0) so it can be opened as a page.
  • We moved the outer frame from its Figma canvas position (left: 18404px; top: 4423px) to the top-left of the page. Nothing else was changed.

Download every output

Make a tool here?

If your tool has settings that would do better on this file, email support@weldhtml.com and we’ll re-run it with them and update the numbers.

Want your own file measured like this?

Weld’s beta is opening soon. Register and we’ll email you once, when you can upload a file and get the finished page with these checks run on it.

One email when the beta opens. Nothing else, and never shared. See our privacy policy.

Protected by reCAPTCHA. Google’s Privacy Policy and Terms of Service apply.