Skip to content
For designers

Your frame, rebuilt from real components.

Select a frame in Figma and ask your editor's agent to build it. It reads the design from Figma, finds the closest match among 307 blocks and 126 pages here, installs them, and restyles them to your tokens. No plugin to install, no export step, no handoff document.

Three moves, and one of them is setup

01

Connect both servers, once

Turn on Figma's Dev Mode MCP server in the desktop app's preferences, then register it and Hoverlab with your editor's agent. Two lines, and nothing to sign in to — Hoverlab's server takes no key and no account.

02

Select a frame and describe it

Ask by intent, not by pixel. The agent reads the frame’s structure from Figma — what regions it has, what is in them — rather than screenshotting it.

03

Get real components, not a render

It calls match_design once per region, installs the winners into your project, and edits the installed React to your colours, spacing and type. What lands is source you own and can keep editing.

Or take the tokens right now

One click puts both palettes, the radius scale, the two families and the three heading sizes on your clipboard as SVG. Figma turns that into named, editable layers on paste — the headings arrive as real text at their real sizes, one step from a text style — with no plugin, no file and no account. It is the same token set every one of the 307 blocks is built from, so a screen drawn against it is a screen the code can already make.

The whole setup

Both servers, registered with Claude Code. Any MCP client works the same way — the MCP docs have the config-file form.

terminal
claude mcp add --transport http figma http://127.0.0.1:3845/mcp
claude mcp add hoverlab -- npx -y hoverlab mcp

And the sentence to type

Designer vocabulary is fine. match_design translates “navbar”, “plan cards” and “modal” into catalog vocabulary and ranks partial matches by how much of your description they actually cover.

your editor
Rebuild my selected Figma frame: find the closest Hoverlab
blocks, install them, and match my colours and type.

What lands in the repo

  • Plain React and Tailwind against semantic tokens, so it inherits the project's theme instead of fighting it.
  • Keyboard and screen-reader behaviour already handled — the part a generated render leaves out.
  • The dependency list up front, and every prop defaulted so it renders before it is wired up.
  • Source your team owns. Nothing phones home, and nothing breaks when we deploy.

Where it stops

A static design shows layout, so this matches blocks and pages well. Hover states and motion are invisible in a frame — ask for those in words and the effect tools take over, across 1,126 pure-CSS effects.

No Figma at all? A pasted screenshot works — agents read images, and match_design only needs the structure described to it.

Or open the sections in Figma

Every section in the catalog, traced from what actually renders and stitched into one file per category. Drag one onto a Figma canvas and each block arrives as a named, editable frame — real geometry, real colours, real type. 307 sections, free, no account.

These are frames, not components. No variants, no auto-layout, and no hover or motion — none of those exist in a static frame. If you want a component library with variants, the vendors who sell one are named on our comparison page, which still concedes that row to them.

Traced 2026-09-22 from the live catalog. Rebuilt whenever the sections change — the build fails if these files fall behind what is in the catalog.

Controls for Figma: tabs, menus, dialogs and the rest

The small pieces every screen is assembled from — 54 controls in 12 files, traced from what renders, the same way as the sections above. Drag one onto a canvas and each control arrives as a named, editable frame.

A frame shows one state. A menu is drawn open, so you can see it; a dialog is drawn as the buttons that open it, and a tooltip as the buttons it labels, because a modal covering the page or a tip that only exists on hover cannot be a static layer. Still frames, not components: no variants, no auto-layout, no interaction.

Traced 2026-09-21 from the live catalog. The build fails if these files fall behind what is in it.

Icons for Figma, by category

1,544 icons in 42 categories, one file each, grouped the way Lucide groups them and listed with the ones a product needs first. Drag a file onto a canvas and every icon arrives as a named layer on a 24px grid.

They stay strokes, not outlined shapes — select a few and change the stroke colour or weight once. These are layers, not components, and there are no size or weight variants: Figma already scales and re-strokes a selection, and a fake matrix of variants would be bulk, not function. An icon that sits in two categories, as many do, is in both files.

Show the other 30 categories

Lucide 0.525.0, ISC licence — the notice is inside every file, and the full text is in LICENSE.txt. 67 icons Lucide has since deprecated, including the brand marks such as GitHub and Twitter, are left out on purpose. Rebuilt on every build.

Or start from a whole project

If the design is a full product rather than a screen, 32 deployable templates sit above the blocks — the agent can scaffold one and then bend it towards your design.