Translating Figma Components Into Reusable Code
How design components in Figma map to reusable UI components in code, and where that mapping gets harder than it looks.
By Touhidul Islam RukonUpdated
What is it?
Figma components (a button, a card, a form field) and code components look similar on the surface, but turning one into the other cleanly takes real decisions about variants, states, and structure.
Why does it matter?
A one-to-one, screen-by-screen build produces duplicated, inconsistent code. Recognizing which pieces are genuinely the same component in different states, versus which only look similar, is what keeps a codebase maintainable as a site grows.
Real-world perspective
On ERTH the design came as an approved file, so the intent behind each component had to be read from the file itself before deciding what should be one reusable component with variants versus two genuinely different ones. That is the practical argument for keeping design and build close, whoever holds the pen in Figma: the person translating a component into code should know why it looks the way it does.
On ERTH the translation was unusual, because the approved design shipped with its own inline styles as the specification. Rather than rewrite a thousand style attributes into a class system and risk drift, the markup was preserved and only what a static page cannot express moved into CSS: hover states, open and closed state, and the desktop and mobile split. The component thinking still applied. It decided which repeated patterns got one rule and which only looked alike.
Key considerations
Look for repeated patterns across screens before building each screen separately.
Keep a component's states (default, hover, disabled, error) as variants of one thing, not separate one-off elements.
Name components consistently between the design file and the codebase, so the two stay easy to cross-reference.
Conclusion
The goal isn't matching Figma pixel for pixel. It's building a component system that holds together as the site grows past its first version.
The work behind this
Related
Keep reading
From Figma Design to Production Website
What actually happens between a finished Figma design and a working, deployed website.
Writing a Page an AI Answer Engine Can Quote Correctly: GEO on a Locked Design
Implementing a GEO requirement on a locked design: test the questions visitors ask, make answers self-contained, attribute claims, and escalate contradictions.
Adding Arabic (RTL) to a Next.js Dashboard Without Translating the Whole App
Publishing the RPOMS dashboard in Arabic: a typed dictionary that fails the build, dir on one wrapper not <html>, an LTR chart, and Latin digits.