A designer opens a file and finds forty buttons. Some are rounded, some are square, three shades of blue appear, and half have slightly different padding. A small brand update means editing each one by hand, and a few always get missed. Meanwhile, another team ships the same update in minutes because their buttons are a single component with variants.
Components and variants are the foundation of scalable design work in Figma. They keep interfaces consistent, speed up production and make design systems manageable. This guide explains how they work, how to structure them well, common mistakes to avoid and a checklist for your own files.
What Are Figma Components?
A component is a reusable design element, such as a button, card, input field or navigation bar. You create it once as a main component, then use copies called instances throughout your designs.
Main components and instances
Main component: the source of truth, where you make global changes.
Instances: linked copies that update automatically when the main component changes.
Overrides: local changes on an instance, such as different text or an icon, that do not alter the main component.
This relationship is what makes updates fast. Change the main component once, and every instance follows, while still allowing sensible local customization.
Why components matter
Consistency: the same element looks and behaves the same everywhere.
Speed: designers reuse instead of redrawing.
Easier maintenance: one edit updates the whole project.
Better handoff: developers see clear, repeatable patterns.
Stronger collaboration: teams share a common library.
What Are Figma Variants?
Variants let you group related versions of a component into one component set. Instead of keeping separate buttons for primary, secondary, disabled and hover, you hold them in a single organized set and switch between them with simple controls.
Common variant properties
Property
Example values
Used for
Type
Primary, Secondary, Ghost
Visual style of a button
Size
Small, Medium, Large
Different scales
State
Default, Hover, Pressed, Disabled, Focus
Interaction states
Theme
Light, Dark
Color modes
Platform
Web, iOS, Android
Platform-specific versions
Variants keep libraries tidy and let designers pick the right version from the properties panel rather than hunting through a long asset list.
Components vs Variants vs Component Properties
These three features work together, but they solve different problems.
Feature
What it does
Best for
Example
Component
Creates a reusable element
Any repeated element
A card layout
Variant
Stores structural or visual versions in one set
States, sizes and styles
Button: primary, secondary, disabled
Component property
Exposes controls for specific parts
Text, toggles and swappable parts
A boolean to show or hide an icon
Types of component properties
Variant properties: switch between predefined versions.
Boolean properties: show or hide a layer, such as an icon or helper text.
Text properties: edit text content from the properties panel.
Instance swap properties: replace a nested component, such as swapping one icon for another.
Using properties wisely means fewer variants. Instead of building separate “with icon” and “without icon” versions of every button, add a boolean property and keep a single set.
How to Build a Strong Component Step by Step
Step 1: Design with Auto Layout first
Auto Layout makes components flexible. Padding, spacing and alignment adjust automatically when text grows or elements are hidden. Build your component with Auto Layout before you convert it, so it resizes sensibly.
Step 2: Create the main component
Select the design and create a component. Give it a clear name and place it in an organized area of your library file.
Step 3: Add variants
Add variants for each state or style, and name properties and values clearly. Keep the property set small and meaningful, so people can understand the options at a glance.
Step 4: Add component properties
Expose booleans, text and instance swaps for the parts that change often. This keeps overrides clean and reduces the number of variants required.
Step 5: Connect to variables and styles
Link colors, spacing, radius and typography to variables or styles rather than raw values. When tokens change, the whole component library updates, and light and dark modes become much easier to manage.
Step 6: Document usage
Add short descriptions, usage notes and do’s and don’ts. Good documentation saves questions and prevents misuse.
Naming Conventions That Scale
Clear naming makes libraries searchable and predictable. Figma uses slashes in component names to create grouped categories in the assets panel.
Weak naming
Stronger naming
Button 2 final
Button / Primary
Card new
Card / Product / Default
Icon blue
Icon / Arrow / Right
Input v3
Input / Text / Default
Naming tips
Use consistent hierarchy: category, component, then variation.
Keep property names short and clear: for example Size, State and Type.
Use plain values: Small, Medium and Large are easier than S1, S2 and S3.
Match code names where possible: this helps designers and developers speak the same language.
Avoid version words: names like “final” or “new” create confusion.
Nesting Components for Flexibility
Nesting means placing components inside other components. A card might include a button, an avatar and an icon. Nested components stay linked to their sources, so a button update flows into every card that contains it.
Best practices for nesting
Build small first: create atoms such as icons and buttons before molecules such as cards.
Use instance swap properties: let users replace nested elements without detaching.
Avoid deep nesting: too many layers make debugging harder.
Keep overrides intentional: if you override the same thing repeatedly, add a property instead.
Building a Component Library and Design System
Components become much more powerful when shared as a library. A good library includes foundations such as color, typography and spacing, core components such as buttons and inputs, and patterns such as forms and navigation.
Library organization tips
Separate foundations, components and patterns into clear sections or files.
Publish updates deliberately, with change notes so teams know what changed.
Assign owners so the library stays maintained.
Collect feedback from designers and developers using it.
Align with code, so the design system and the front-end library stay in sync.
Design systems work best when they reflect real user needs and team workflows. A collaborative session such as a design thinking workshop can help align designers, developers and stakeholders on what the system should solve.
Common Mistakes with Figma Components and Variants
Mistake
Why it hurts
Better approach
Creating separate components for every state
Cluttered libraries and slow updates
Group states as variants
Too many variant properties
Confusing choices and heavy files
Use booleans and text properties where possible
Skipping Auto Layout
Components break when content changes
Build with Auto Layout from the start
Detaching instances routinely
Breaks the link to the source
Add properties or request updates to the component
Using hard-coded colors and sizes
Updates require manual edits
Use variables and styles
Inconsistent naming
Hard to search and maintain
Adopt a clear naming convention
No documentation
Misuse and repeated questions
Add descriptions and usage guidance
Best Practices Summary
Start small: build foundational components first.
Use Auto Layout: make components responsive to content.
Prefer properties to extra variants: keep the set manageable.
Link to variables: make theming and rebranding easier.
Name clearly: use consistent hierarchy and simple values.
Test components in real screens: check how they behave with long text, missing content and different sizes.
Check accessibility: review contrast, focus states and touch target sizes within the component itself.
Maintain actively: audit unused or duplicate components regularly.
Regular reviews help keep a library healthy, and a structured UX audit can reveal inconsistencies and usability gaps across your interface before they multiply.
Components and Variants in Real Projects
Example: a button component
A well-built button might include variants for type (primary, secondary, ghost), size (small, medium, large) and state (default, hover, pressed, disabled, focus). It could also include a boolean property for a leading icon, a boolean for a trailing icon, a text property for the label and an instance swap for the icon itself. This single component covers dozens of combinations without dozens of separate assets.
Example: a card component
A product card might nest an image, a title, price text, a rating and a button. Boolean properties show or hide the rating and badge, while the nested button inherits updates from the button component. Layout variants can switch between vertical and horizontal orientations.
How Components Support Better UX
Consistency is a usability feature. When buttons, forms and navigation behave the same across a product, users learn faster and make fewer mistakes. Components help teams deliver that consistency at scale, but they must be grounded in real user needs. Insights from UX research help decide which patterns belong in your system and how they should behave.
Getting Started
You do not need to convert an entire file at once. Start with the elements used most often, such as buttons, inputs and cards, then expand to patterns and layouts. Measure the time saved and the drop in inconsistencies, and keep improving. If you want expert help building scalable, research-led design systems, a specialist team offering UI/UX design services can help you move faster with less risk.
Component and Variant Checklist
Is each repeated element a component?
Are states, sizes and styles grouped as variants?
Are booleans, text and instance swaps used to reduce variant sprawl?
Is Auto Layout applied so components adapt to content?
Are colors, spacing and typography linked to variables or styles?
Do names follow a clear, consistent hierarchy?
Are usage notes documented?
Have components been tested with realistic content and accessibility checks?
Is there an owner and a review routine for the library?
Final Thoughts
Figma components and variants turn scattered design assets into a system that scales. Build small, use properties and Auto Layout wisely, name things clearly and connect everything to variables. Keep the library maintained and grounded in real user needs. Do this well, and your team will spend less time redrawing and more time solving problems that matter.
FAQs
What is the difference between a component and a variant in Figma?
A component is a reusable design element. Variants are different versions of that component, such as states or sizes, grouped into one component set.
When should I use variants instead of separate components?
Use variants when the versions share the same structure and purpose, such as button states or sizes. Create separate components when the elements serve different purposes.
What are component properties in Figma?
They are controls that let you change parts of a component from the properties panel. The main types are variant, boolean, text and instance swap properties.
How many variants are too many?
If the number of combinations becomes hard to manage, simplify by using boolean, text and instance swap properties instead of creating a variant for every possible option.
Share
AUTHOR
Team OriginUX
OriginUX Studio is a CoE for User Experience providing UI & UX across Product, Service and Customer Experience Design. We are a cross-disciplinary design team that loves to create great experiences and make meaningful connections for businesses and their users through UI & UX.
Founded in 2016, our larger purpose is to help brands understand what they want to do and where they want to go. To do that we have to make understanding customer experience simple, effortless, and affordable for everyone.
OriginUX studio is based out of Bangalore, India.
We are a cross-disciplinary design team that loves to create great experiences and make meaningful connections for businesses and their users through UI & UX.