Skip to content

Figma to HTML

Plain HTML and CSS is the most durable thing a design can become. It has no build step to break, no dependency to update, and any developer can open the files and read them.

We write the markup by hand from your Figma file: real headings, real buttons, real lists, styled with modern CSS. JavaScript is added only where the page needs behaviour that HTML does not provide, and it is written without a library.

Isometric illustration of a design canvas of shapes and a browser window with the same layout, a bridge between them
Markup

How a frame is read as a document

Figma has layers and groups. HTML has meaning. Translating one to the other is most of the skill.

  1. Landmarks first

    Header, nav, main and footer are marked as such, so assistive technology can jump between them.

  2. Headings in order

    A large bold line is not always a heading, and a small one sometimes is. Levels follow the outline of the content, not the font size.

  3. Native controls

    Links go somewhere and buttons do something. Accordions use details and summary, modal windows use dialog, so keyboard handling comes from the browser.

  4. Images with purpose

    Photographs get alt text and several sizes through srcset. Decorative shapes are hidden from screen readers. Icons are inline SVG that takes the text colour.

  5. Forms that explain themselves

    Every field has a visible label, the right input type and an error message tied to it.

Styles

Figma variables carried into CSS

If the file uses variables, the stylesheet uses the same names.

Custom properties

Each colour, space and radius variable becomes a custom property on the root element. Change one value and every use of it follows.

Modes become themes

A light and dark mode in Figma becomes two sets of values for the same property names, switched by the user's system setting or a toggle.

Fluid type and space

Between breakpoints, sizes scale with clamp() instead of jumping. The minimum and maximum come from the mobile and desktop frames.

Layout by grid and flexbox

Auto layout maps closely to flexbox. Page grids use CSS grid. Components that sit in both narrow and wide columns use container queries.

Design hand-off

What makes a file quick to build

None of these are required. Each one missing adds questions.

  • Auto layout on frames, so padding and gaps can be read directly
  • Variables or named styles for colour, type and spacing
  • A mobile frame and a desktop frame for every page
  • Hover, focus, pressed and disabled states for controls
  • Icons as vector layers, not flattened bitmaps
  • Photographs at twice the displayed size
  • The reading order where it is not obvious
  • Web font files and their licence
Quality

Checks made before hand-over

Accessibility is tested by using the page, not only by running a scanner.

  • Every control reached and operated by keyboard alone
  • Focus outline visible on every interactive element
  • Pages read through with a screen reader
  • Text contrast measured; low values reported to the designer
  • Layout holds when text is zoomed to double size
  • Animation respects the reduced motion setting
  • Markup validated
  • Pages compared with the frames and differences listed
Straight talk

Is plain HTML the right target?

It suits

  • Landing pages and campaign sites with a fixed set of pages.
  • Templates that your own developers will wire into a back end.
  • Documentation and brochure sites that must load fast on poor connections.
  • Prototypes for user testing that need to behave like the real thing.

Choose something else when

  • Non-technical staff must edit content. That calls for a CMS.
  • The interface is an application with shared state across many screens.
  • The same header and footer must be kept in step across hundreds of pages by hand.
Questions

Common queries about static builds

Do you use Bootstrap or Tailwind?

Not by default. If your team already works in one of them, say so and we will follow your setup.

Will the result pass an accessibility audit?

We build to the success criteria your adviser specifies and report what we tested. A formal audit and any statement of conformance come from your auditor.

How is the price worked out?

We read the file, count the distinct page types and components, and send an estimate in hours at the published rate.

Is the match with Figma exact?

Pages are compared with the frames at the agreed breakpoints and every difference is written down. Widths between those breakpoints are ours to resolve sensibly.

Next step

Tell us where the HTML is going

Send a view link and say what happens to the files afterwards: hosted as they are, or handed to a back-end team. We reply within one business day.

Send the design

Goes straight to our team on WhatsApp and email. We reply within one business day.

Desktop Mode WhatsApp