Figma basics: the four concepts everything else is built on
Figma is an interface design tool that runs in the browser with the file kept on their servers, which is why several people can be inside one file at the same time. Four concepts make up the whole job: frames, components, styles and variables, and prototypes; the rest of the features are shortcuts over those four.
- Lesson 9 of 12
- Beginner
- Free, no signup
The four columns the whole of Figma is built from
Learn them in order. Each column assumes you know the one before it.
-
Frame
2- The container of everything
Screen, card, button; all frames, and they nest.
- Auto layout
Define the gap once; when the text grows, the box grows.
- The container of everything
-
Component
2- Build it once
Change the main copy and every instance changes.
- Variants
Default, hover, disabled, loading, error.
- Build it once
-
Styles and variables
2- Name the decision
A hex code is a number; "primary blue" is a decision.
- The same name the code uses
When the names match, the handoff argument ends.
- Name the decision
-
Prototype
2- Flow, not animation
It shows where a user gets stuck, before any code.
- A link for the client
It opens on their own phone and beats a PDF.
- Flow, not animation
The third column is where most files stay unfinished, and it is the same place where handoff gets hard.
Last checked: Facts and tool names in this lesson are re-checked against their sources on this date.
What exactly is Figma, and why does it live in the browser?
Figma is an interface design tool, not a photo editor and not a layout application. What it does is this: you build a product's screens, define the repeating parts once, and wire the screens together so you can see the flow before any code is written.
Its structural difference from Photoshop and Illustrator is where the file sits. The file stays on their servers and you work on it in a browser. That has three direct consequences and all three matter. First, several people are inside one file at the same time and can see each other's cursors, so design review stops being screenshots in a chat and becomes a comment attached to the element itself. Second, "final version 3" ceases to exist, because versions are history rather than files. Third, and this is said less often: your file lives in somebody's account, and the terms of that account are not yours either.
That third point is what separates this lesson from a tour of the interface. If you have a confidentiality agreement with a client, where the file is kept is part of the decision rather than a technical detail. Further down you will see what Figma's AI settings default to on the smaller plans.
The four concepts that are enough to learn
A frame is a container. Every screen, every card, every button is a frame, and frames nest. The most important capability that sits on a frame is auto layout: you tell Figma to stack this frame's children with a set gap, and from then on the button grows when its label gets longer. Anybody who has once nudged buttons by hand understands why this comes first.
A component means build once, use everywhere. You change the main copy and every instance changes with it. Variants are the states of that same component: default, hover, disabled, loading. Beginners usually build the default state only, and that is exactly where handoff falls apart, because the code needs all five.
Styles and variables mean giving names to colour, type and spacing. "Primary blue" is a decision; a hex code is only a number. Once something has a name it can be changed in one place and land everywhere, and more importantly the name you chose becomes the name the developer writes in the code.
A prototype is the wiring between screens. What it actually does is not to show a pretty animation; it is to establish, before any code, where a user goes and where they get stuck. It also gives you a shareable link the client opens on their own phone, and that link works better than any PDF.
Everything else in Figma is, almost without exception, a shortcut over those four concepts.
Your first file, in this order
The order matters. Skip a step and the next one gets done twice.
-
1
A frame at a real device size
Not an arbitrary size; design starts at a real width.
-
2
Turn colour and type into styles
Before you draw the second screen, or it never gets tidied.
-
3
Make the second repeat a component
Simple rule: anything that repeats twice is a component.
-
4
Build the states
Empty, loading, error. The three that always get left out.
-
5
Prototype one flow
The one flow the business actually makes money from.
This order is for a real product. For a one-off image, these five steps are overhead.
How far does Figma free plan go?
We read the numbers off Figma's own pages rather than off second-hand comparisons.
The pricing page lists the Starter plan as unlimited drafts, UI kits and templates, and 150 AI credits a day up to 500 a month. The plans help page states a limit the pricing page does not put as plainly: a single team with one folder and 3 files, and 30 days of version history. The Professional plan is $16 a month per full seat.
The difference between a draft and a team file is exactly where beginners get stuck. Drafts are yours and unlimited; team files are the thing capped at three. If you work alone and keep your work in drafts, the free plan lasts a long while. The moment somebody has to edit alongside you, three files runs out quickly.
The 30 day history is a real limit too, and one the marketing does not dwell on. If a project runs six months, the version you had three months ago is no longer recoverable on the free plan. The simple, free workaround: at the milestones of a project, export the main screens and keep them next to the project files.
Handoff: where a beautiful file turns into bad code
Figma's real payoff is in the handoff, not in the drawing. A developer wants two things from your file: names and numbers. A colour without a name is just a six-digit code they have to guess the repetitions of.
An example from this very site. The whole colour and shape layer of rgb.ir is defined in one root block: 28 tokens, 19 of them a colour or a gradient, with four radius steps at 12, 18, 26 and 34 pixels. This site's developer never writes a colour code; they write a name. The result is that when we decided the capsule shape had to leave the site, the button radius became 15 in one place and the chip became 12 in one place, and the whole site changed. Had that decision been repeated by hand inside forty Figma frames, it would have been a day of work.
So a deliverable file means: every colour a style or variable named for its role, spacing from a defined scale rather than arbitrary numbers, every component with all of its states, and layer names a human can read. Those four beat any handoff document.
One habit ends the argument for good: bring your Figma naming close to what already exists in the code. If the code has --blue, the style is blue and not "light blue 2". The fast path at the end of this lesson does exactly that, from the live site.
A file a developer can actually work from
Directly usable
- A colour named for its role, not just a code
- Spacing from a defined scale
- Every component with all of its states
- A font with an exact weight and a clear licence
Needs one more message
- Three nearly identical blues, unnamed
- Arbitrary gaps, off any scale
- A screen that only has its filled state
- Layers still carrying their default names
The second column is not wrong, it is incomplete. Every row of it becomes a message in the project chat.
Persian and right-to-left text in Figma
Figma's own help page states that right-to-left text is supported, including Arabic, Hebrew, Farsi and Urdu, that direction is handled automatically from language detection, and that you can override it. The controls sit in three places: the sidebar, the quick actions menu with Cmd or Ctrl and slash, and the main menu under Text and Text direction. The same page says the feature works on any plan and is available in Figma Design and FigJam files.
The sentence that matters more for Persian is elsewhere on that page: if a font does not support a character you input, Figma renders that character in a Noto font. Which means your text can look intact on screen while it is in fact made of two fonts. That is where a design starts differing from what ships on the site, and it is hard to catch because nothing errors.
Another limitation they state themselves: a text layer carries only one alignment setting, and a part of the text needing different alignment has to become its own layer. In Persian that comes up often: a Latin heading above a Persian paragraph, or a number that has to stay where it belongs.
And one point that comes from doing the work rather than from the documentation: a Persian sentence is not the same length as its English equivalent. A button that fits in the English design overflows or rattles in Persian. The answer is the auto layout from the first column: take the button's size from the text rather than from your hand, and test every component once with its longest Persian string.
Where Figma is the wrong tool
A lesson that only says this tool is good has done half the job. There are four places where Figma is the wrong choice.
- Print work. Catalogues, brochures, anything going to a printer in CMYK with trim marks, is a layout tool's job.
- Photographic work. Retouching, exposure correction, compositing several photographs; these belong to a pixel tool and Figma takes none of them seriously.
- A single-page flyer. For work done once with no repetition, the cost of building components and styles never comes back.
- When the connection is not dependable. A tool that runs in the browser and keeps the file on a server depends on the internet. That is not a flaw to hide; it is a condition of use.
There is a legal point as well, covered more fully in graphic design tools: Figma's terms of service carry a separate clause on export controls and sanctions, and they write that they may suspend access to the platform in order to comply. We quote that from their own document and make no claim about what happens on your connection today.
The fast path, with AI
The fast path here is not asking a model to design a screen. It is starting your Figma file from what is already running on the live site: pull the real CSS tokens out of the page and have a model turn them into a Figma variables table, keeping the names. The result is a file that agrees with the code from day one, instead of a file eyeballed off a screenshot. A cheap fast model is enough, and our current pick is in the <a class="text-link" href="/en/ai/">AI section</a>.
- Run the first command against the address of the site being redesigned. It takes the root block only, meaning the variables defined for the whole site rather than the temporary ones sitting on individual elements.
- Paste the output verbatim into the stage two prompt. The model must keep the names as they are and only add grouping and description; renaming is the exact thing this was meant to prevent.
- Turn the table into variables in Figma and mark every token the model could not classify. Those rows are usually not real tokens and should be dropped.
- Measure the contrast yourself. The model will say which colour is text and which is background, but whether that pair is readable needs a measurement rather than an opinion.
Copy-ready recipe
U="https://example.com/"
curl -s "$U" \
| grep -oP ':root\{[^}]*\}' | head -1 \
| grep -oP -- '--[a-z0-9-]+:[^;}]+'
---- stage 2: the model prompt ----
Role: someone porting a design system from code into Figma.
The site's real token list:
{whatever the command above printed}
Build a Figma variables table with these columns:
- Variable name: exactly the CSS name, without the leading dashes, unchanged
- Value
- Type: colour / number / string
- Suggested group: base colour / text colour / surface and border / radius / shadow / layout
- Role in one sentence, based on the name and value themselves
Rules:
- Rename nothing and invent no new names.
- Any token you cannot classify from its own name and value goes in an
"unknown" group with the reason written out. Do not guess.
- Write nothing about where in the site each token is used; that cannot
be known from this list.
- At the end, list the pairs that are probably text on background, so I
can measure their contrast myself.
Before you trust the output: The first command only works when the site's CSS is inside the page itself, or when the root block comes back in that response; if the site serves a separate CSS file, fetch that file and run it against that. And two things the model cannot know and you must: which token is genuinely used in the code and which is an old leftover, and whether each colour pair has enough contrast to read.
AI in this kind of work
Figma has its own AI layer and their official page names a list of features: Figma Make, which turns a text description into prototypes and web apps, an agent in beta, generative plugins, image editing, text tools, and a visual search for finding components. AI credits are a resource you buy. Our position is simple: use these for the mechanical work and not for structural decisions.
Tools that actually help
- Figma AI Good at the repetitive work inside the file itself: renaming layers, replacing text, editing images, finding components. That work spends credits, and their own page says credits are something you buy.
- Claude Suits stage two of the fast path, because it paraphrases less when you tell it to keep names verbatim. Iran is on neither of Anthropic's two supported-countries lists.
- Gemini Easier with longer token lists. Our own entry notes Iran is not on Google's supported-countries list; the payment route is in <a class="text-link" href="/en/ai/buy/">buying AI access</a>.
Where it backfires
The first risk in this subject is the thing freelancers usually do not know and Figma's own help page states: the content training setting is turned on by default for Starter and Professional teams, where a team admin can toggle it off, while it is off by default on Organization and Enterprise plans. Figma writes that content training went into effect on 15 August 2024, and that if an admin turns it off after that date, new content and edits will not be used to train AI models. The practical translation for anyone under a confidentiality agreement with a client: the free plan has a default you have to change deliberately. The second risk is of a different kind: generated output for a screen looks finished while having no system behind it. No components, no states, no names, no spacing scale, which is to say none of the things the handoff section is about and where the file's whole value sits. Good for a sketch and for starting an argument; not good for a file that has to become code.
Sources: Figma: manage AI settings and content training Figma: AI features
Where this advice stops
Learning Figma takes a week; learning interface design does not. The tool will not tell you where that button belongs or how many fields that form is missing, and a tidy file guarantees no good product. The plan numbers were read from Figma's own pages on this page's verified date, and a pricing page is the thing in this lesson most likely to change; look at it yourself before a buying decision.
From our own work
We measured the "name the decision" claim on this very site. The root block in rgb.ir's theme CSS holds 28 tokens today: 19 colours and gradients, four radius steps (12, 18, 26 and 34 pixels), two shadows, and the rest for blur, wrapper width and header height. Every colour code on the site lives inside those 28 lines and no colour code is written anywhere else. We saw what that buys on the day the capsule shape was removed: the button radius became 15 pixels on one line, the chip 12 on one line and the status 9 on one line, and the whole site changed shape. The token extraction command written in the fast path above was run against this site's home page and returned exactly those 28 tokens; the simpler version, which only looked for double dashes, failed, because it also picked up the temporary variables sitting on individual elements. That is why the final command isolates the root block first.
Real follow-up questions
Do I have to pay for Figma to start?
No. The Starter plan is free and enough for learning and for working alone: drafts are unlimited and the three-file limit applies to team files. Where you reach a paid plan is multi-person collaboration and history longer than 30 days.
Does Figma replace Photoshop?
No, because they are two different jobs. Figma is an interface tool and Photoshop is a pixel tool; the first works in components and states, the second in layers and masks. If your work is photo retouching, Figma is not your tool.
Are my files used to train models on the free plan?
Figma's own help page says that on Starter and Professional teams the content training setting is on by default and a team admin can toggle it off at any time; on Organization and Enterprise it is off by default. If you are under a confidentiality agreement with a client, this is the first setting to go and look at.