- Home
- Skills
- Frontend & Web Apps
- Figma Componentize — Components & Variants from a Frame
More screenshots
Works with the AI tools you already use
Figma Componentize — Components & Variants from a Frame
Finds the repeated buttons, cards, header, and footer in a Figma frame, turns them into components with variants, and replaces the originals with instances, checking each step with you.
$9
Figma Componentize — Components & Variants from a Frame
Example session with this skill installed
/figma-componentize https://www.figma.com/design/<fileKey>/figma-tokenize?node-id=10-2
- Read your context and instructions
- Compiled the figma componentize
- Generated the app files
The frame is a villa-rental landing page (1440 x 3365) that already has auto layout, named layers, and variables, and no components. The agent found six candidates, showed them with counts, and four were chosen.
Candidates found
| # | Candidate | Found | What it is |
|---|---|---|---|
| 1 | Button | 3 | Horizontal frame with a background color and a white label. Two are 285 x 53 and 409 x 53, one is 192 x 44 |
| 2 | Villa card | 3 | Vertical frame with an image, a title, and a description. 756 x 544 and two of 500 x 241 |
| 3 | Header | 1 | Logo, tagline, language switch, inquiry button |
| 4 | Footer | 1 | Brand, links, copyright, slogan |
| 5 | Footer nav item | 3 | Privacy, terms, contact links |
| 6 | Reservation note | 2 | White note text, 600 x 36 |
All colors in the candidates were already bound to variables, so there was no need to tokenize first. No icon-like children were found, so no candidate needed to be split by icon.
What it built
| Component | Variants | Instances placed |
|---|---|---|
| Button | Size (Large, Small) x State (Default, Hover, Disabled) = 6 | hero-cta-button, reservation-cta-button, inquiry-button (Small) |
| Villa card | Size (Small, Large) = 2 | villa-card-bedroom, villa-card-terrace (Small), villa-card-indoor (Large) |
| Header | none | header |
| Footer | none | footer |
Each master was moved out of the frame to the right, and the original elements became instances. The label of each button and the image, title, and description of each card stayed as overrides, so the page reads exactly as before.
Checks reported by the agent
- Masters placed outside the frame: 4 of 4 components, and the two variant sets sit clear of the frame and of each other
- Instances kept their original size: hero-cta 285 x 53, reservation-cta 409 x 53, inquiry 192 x 44, bedroom and terrace 500 x 241, indoor 756 x 544, footer 1440 x 287
- Screenshots of the replaced sections checked by eye: images fill their frames, text sits where it did, no overflow
- Full-frame comparison against the frame before the run: one pixel differs
Variant colors
The Hover state needed a darker version of the button color. The agent asked first, then created one new variable, brand/accent-3-hover, in the existing Color collection and bound it to both Hover variants. The other variants reuse existing variables. Disabled uses 50 percent opacity, so it needed no new color.
One thing it caught and fixed
After the Header was turned into a component, the frame became 45 px shorter: the Header had shrunk from 90 px to 45 px because its height had been set to follow its content, while the original had a fixed height of 90. The agent's size check caught it, restored the fixed height, and the frame returned to 3365 px. The skill's notes now say to record the original sizing modes before converting, and to restore exactly those.
Summary
4 components (2 with variants, 8 variants in all), 8 instances, 1 new variable. The page looks the same as before; the difference is that a change to the Button or the Villa card now updates every place it is used.
figma-componentize-components-variants-f-app.zip
ZIP · project files
Example file from a real run - the skill writes it into your workspace.
Connects securely to your tools. The creator never sees your data.
What you get
About this skill
A frame built by hand, captured from code, or generated by Figma's Design Agent looks finished, but every button and card is its own copy. Change one and you have to change all the others. This skill finds the patterns, picks the best copy of each as the master, builds the component, and swaps every occurrence for an instance that keeps its own text and image.
What it does
- Finds repeated structures by comparing shape, size, and children, and always considers the header and footer, even if they appear only once
- Checks icon-like children by name, so cards that look alike but hold different icons are not merged by mistake
- Converts the most complete copy into a master component, moves it out of the frame, and sets its inner layers so it stays correct at other sizes
- Replaces every other occurrence with an instance, and keeps per-occurrence text and images as overrides
- Proposes variant axes that fit each component (for example Size and State for a button, Size for a card) and builds the ones you approve
- Offers to bind the colors used only in the new variants, such as a darker hover color, to variables
- Re-checks positions and sizes after every step and reports counts, not just "done"
How it works
- Give it a Figma frame or section URL
- It analyzes the frame and lists the candidates with counts and a short description of each
- You choose which candidates to componentize
- For each one it creates the master and the instances, shows a screenshot, and asks about variants
- It builds the approved variants, verifies sizes and positions, and asks before creating any new variables
Includes field notes for the Figma Plugin API
The skill ships with a reference of 21 known pitfalls in writing to Figma through use_figma, for example a section that collapses to 100px or a component that stays nested in its frame. It also carries its own notes on componentizing: sizing that collapses after variants are combined, cards in a grid that jump to a new row, and icons that look identical but are not. The skill opens only the entry that matches a symptom.
What it is not
It does not publish to a team library, share components across files, or accept component or component-set URLs. It creates new components from a frame that has none yet. It works best on a frame that already has auto layout and clear layer names; run a tidy-up step first if it does not.
Requirements
Runs inside an agent connected to the official Figma MCP server, the same connection used for implementing Figma designs as code. Needs edit access to the Figma file, because it creates components and replaces elements in place. Duplicate the frame or the file first if you want a way back. No local file access and no arbitrary network calls.
Try it free first
Try it Free on Agensi runs on Agensi's servers, which have no connection to your Figma file. Use the example session above to see the flow and the kind of report you get; the installed skill works on your real file through your own Figma MCP connection.
Works well with
Run it after a tidy-up step and a tokenize step, so the patterns are easy to find and the colors are already variables.
More from KMRVID
The full Claude Code skill bundle for Figma, Tailwind and Astro workflows is available on Gumroad: https://gaspanik.gumroad.com/l/kmrvid-claudeskills
How to install
Works the same in every agent - Claude, Cursor, Codex, Copilot and 20+ more.
- 1
Download the ZIP
Free skills download straight away. Paid skills unlock right after purchase.
- 2
Unzip into your skills folder
Every agent reads skills from one folder on your machine. Drop the unzipped folder in there.
- 3
Ask your agent to use it
Restart the agent if it was already running. It picks the skill up automatically - no config needed.
Skills folder by agent
Click the path to copy it. Create the folder if it does not exist yet.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill passes our trust checks below.
Security scanned
Passed our 8-point scan before listing
Fresh listing
Recently published to Agensi
30-day refund
Not a fit? Get your money back
Trust & safety
Security scanned
Verified clean 1 day ago
- Passed all security checks, Safe to install