Forma

From mockup to live Forma page

A practical path from Figma or a static HTML folder to a shipped Forma page: slice the chrome, paste the unique layout, wire SEO, publish.

You do not need a Forma-specific design file. You need a picture of the page and the ability to write HTML. Here is the path we use.

1. Export or build the unique layout once

From Figma: export assets, write the HTML yourself (or let an agent draft it), and match type sizes to the frame. From an existing static site: open index.html and keep the <style> or CSS file.

Do not import a 4,000-line theme CSS “just in case.” Bring what the page uses.

2. Cut the chrome out

Anything that appears on every page becomes a snippet:

  • fonts + tokens → site-head
  • nav → site-header
  • footer → site-footer

Replace those regions in the page with [[site-head]], [[site-header]], [[site-footer]]. The first time feels mechanical. The twelfth page is a gift.

3. Paste the middle into a Forma page

Admin → Pages → New. Filename about, slug /about. Paste the unique <main> (or the whole document if you still need a one-off <head>).

Images go in Media, then you point src at /uploads/…. Featured and Open Graph images are SEO fields, not decorations you hide in a CSS comment.

4. META, then look at it on a phone

Set title, SEO title, description, and a 1200×630 share image. Open the public URL. Narrow the window. Fix the nav. This is still your CSS. Forma will not invent a breakpoint.

5. Publish

Save. If HTML cache is on, Apache can serve the file. Change the header later; the snippet republish updates every page that includes it.

Blog posts are the same idea with one extra template: blog-single is the article chrome (cover, type, byline). The Markdown body drops into {{ post.content }}. Design the article shell once. Writers never touch it.

Agents can do the paste. You still own the look.

A scoped token can PUT the page HTML. That is useful when the mockup is done and the work is shipping five interiors. It is a bad substitute for choosing type. Look at the page. If it does not match the frame, the CMS is not the problem.

Your design, Forma’s database. That is the split.