A good design file is a promise to the client. Turning it into a working website means keeping that promise on every screen size, while leaving something the client can actually edit. This is the process I use to get from Figma (or Adobe XD) to Elementor without losing the details.
1. Audit the design before building anything
I start by reading the design file the way a developer would:
- Colours and text styles: are they defined as styles, or set by hand on each layer?
- Components: buttons, cards and sections that repeat
- Spacing: is there a consistent scale, like 8, 16, 24, 32 and so on?
- Breakpoints: are tablet and mobile designs included, or only desktop?
This is also when I flag questions: missing hover states, empty states for forms, what happens to a four-column section on a phone. It's much cheaper to answer them now than halfway through the build.
2. Turn styles into Elementor globals
Every colour and text style in the design becomes a global colour or global font in Elementor's Site Settings, with the same names where possible. Buttons and form fields get their global styles too.
From here on, nothing is styled with a one-off value. That's what keeps the site consistent, and it's covered in detail in Elementor global styles.
3. Mirror auto layout with containers
Figma's auto layout and Elementor's flexbox containers think the same way: direction, gap, alignment and padding. Building with containers that match the frame structure in Figma makes layouts behave predictably when the screen size changes. For card grids, Elementor's grid container is a natural match.
4. Build reusable pieces first
Before building pages, I build the parts that repeat:
- Header and footer with the Theme Builder
- Section templates for things like testimonials or the closing call to action
- Loop templates for anything that lists posts, team members or services
Pages are then assembled from these parts, so a change to a shared section only happens once.
5. Export assets properly
- Icons and logos as SVG, so they're crisp at every size
- Photos as WebP at roughly twice the displayed size for sharp retina screens, but no bigger
- Fonts loaded only in the weights the design actually uses
6. Design the missing breakpoints
Most design files include desktop and maybe mobile. Tablet and the awkward in-between widths are usually left to the developer. I make those decisions deliberately: reflow grids, adjust type sizes and stack columns where it reads better, rather than letting everything shrink.
7. QA against the design
Before handover, I compare each page against the design at the same width, checking spacing, type sizes, alignment and colours. A screenshot overlay at partial opacity catches differences the eye misses. Then I test on real devices, test every form and check the site with a keyboard.
8. Hand over something editable
A pixel-perfect site the client can't update isn't finished. I keep content in widgets the client can edit, use clear names for templates and sections, and walk the client through making common changes themselves.
Have a design ready to build? Send it over and I'll tell you how I'd approach it.
Share this article

Milon Hossen
WordPress & Elementor specialist
I build Elementor websites and clean up hacked WordPress sites. If yours needs either, send me a message.