Figma Components and Variants: A Practical Guide

November 7, 2026 | Read Time : 3 mins

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

PropertyExample valuesUsed for
TypePrimary, Secondary, GhostVisual style of a button
SizeSmall, Medium, LargeDifferent scales
StateDefault, Hover, Pressed, Disabled, FocusInteraction states
ThemeLight, DarkColor modes
PlatformWeb, iOS, AndroidPlatform-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.

FeatureWhat it doesBest forExample
ComponentCreates a reusable elementAny repeated elementA card layout
VariantStores structural or visual versions in one setStates, sizes and stylesButton: primary, secondary, disabled
Component propertyExposes controls for specific partsText, toggles and swappable partsA 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 namingStronger naming
Button 2 finalButton / Primary
Card newCard / Product / Default
Icon blueIcon / Arrow / Right
Input v3Input / 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

MistakeWhy it hurtsBetter approach
Creating separate components for every stateCluttered libraries and slow updatesGroup states as variants
Too many variant propertiesConfusing choices and heavy filesUse booleans and text properties where possible
Skipping Auto LayoutComponents break when content changesBuild with Auto Layout from the start
Detaching instances routinelyBreaks the link to the sourceAdd properties or request updates to the component
Using hard-coded colors and sizesUpdates require manual editsUse variables and styles
Inconsistent namingHard to search and maintainAdopt a clear naming convention
No documentationMisuse and repeated questionsAdd 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

OriginUX Studio

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.

Hire on Demand