On this page
Quick steps
Select the component set
Select the component set (the frame with the dashed purple border) rather than one variant, so every variant option can be read.
Count the combinations
Multiply the number of values in each property. Each boolean doubles the total, so decide which booleans you actually need to review.
Choose rows and columns
Put the property you compare most often (like State) across columns and the rest down rows, so each row reads as one configuration.
Create the instances
Place one instance per cell and set its properties in the right sidebar, or let a plugin generate every instance for you.
Label the grid
Add a header for each column and row with the property name and value, so reviewers know exactly which combination they're looking at.
Review and keep it separate
Check each cell for overflow, alignment and token issues, then move the grid to a dedicated page so it doesn't clutter design pages.
Variants vs component properties
A variant is one component inside a component set, defined by values like Type=Primary, Size=Small, State=Hover. You draw each variant. Component properties are the other controls on an instance: a boolean that shows or hides a layer, a text property for the label, and an instance swap for the icon. Nested instances can also expose their own properties to the parent.
This split is why the component set isn't a full picture. A button with 3 types, 3 sizes and 4 states has 36 variants, and all 36 are drawn in the set. Add two booleans, say hasIcon and hasBadge, and there are 144 possible instances. Nobody draws the other 108, but users will still hit them.
Why a variant matrix helps QA
- Broken combinations show up. An icon and badge in the small size might overflow, even when each works alone.
- Token mistakes stand out. When 12 hover states sit in one column, the one bound to the wrong color is obvious.
- Modes are easy to check. Set a different variable mode on the grid's frame to see every combination in dark mode or another brand at once.
- Developers get a reference. A labeled matrix maps directly to the prop combinations they need to test in code or a Storybook.
How to show all variants in Figma manually
- Create a frame on a separate page and give it auto layout with wrap, or a grid of fixed-size cells.
- Drag in an instance of the component from the Assets panel.
- Duplicate it once per combination. With 144 combinations, plan your rows and columns first.
- Select each instance and set its variant, boolean and nested properties in the right sidebar. Selecting a whole row or column at once and changing one property speeds this up.
- Add text labels for column and row headers.
This is fine for a component with one or two properties. Past that, the time goes into setting dropdowns and fixing mislabeled cells, and the grid goes stale the moment someone adds a property. You also have no count to confirm you didn't miss a combination.
Generate a variant matrix with Instancer
Instancer is our plugin for this job. Select a component, component set or instance and it reads the Variant, Boolean and Nested Instance properties, then generates every combination (the Cartesian product) as live instances in a labeled table.
- Property control: global toggles include or exclude booleans and nested instances, and each property has its own switch. The combination count updates as you toggle.
- Layout: Auto-Optimal aims for a roughly 1.6:1 table and avoids more than 12 columns or 20 rows. You can switch to Horizontal or Vertical, or drag properties between the Columns and Rows zones in the Layout Preview.
- Spanning headers: adjacent cells with the same value merge into one header, like a spreadsheet, in box or bracket style.
- Nested instances: exposed nested properties are included with path-based names such as
Icon/variant, so they don't collide with the parent's properties. - Property table: an optional companion frame lists every property, its type and accepted values.
The output is one frame with three layers: a locked Foundation layer for headers and cell outlines, an editable Instances layer, and a locked Text Labels layer on top. Cells are sized from the largest variant, so instances line up. Above 1,000 combinations Instancer asks you to confirm, since Figma takes a while to create that many instances.
Instancer includes 10 free generations, then a one-time upgrade for unlimited use. The Instancer docs explain each layout mode. If you're new to plugins, start with how to install Figma plugins.
Keep the matrix to a useful size
Every boolean doubles the grid. If you only care about how states and sizes interact, switch off booleans and nested instances for the first pass, then run a second, smaller grid for the icon combinations. Deeply nested instances (instances inside instances) may not be discovered, so keep exposed instances at the first level of the component.
Propstar and Regressor also generate combinations of variant and boolean properties, and are worth comparing if you want a different table style. For documenting each property on its own, with anatomy and spacing, a spec is the better format; see how to make Figma design specs. To explain why a particular combination behaves the way it does, add Figma annotations to that cell of the grid.
Ranked listThe best Figma plugins for design systems in 2026Frequently asked questions
Can Figma show all variant combinations natively?
No. The component set shows only the variants you've drawn. Boolean, text, instance swap and nested properties aren't laid out anywhere, so you need to place instances by hand or use a plugin.
How many combinations does my component have?
Multiply the number of values in each property. Three types, three sizes and four states give 36. Each boolean doubles that, so two booleans make it 144.
Should I add every combination as a variant?
Usually not. Use variants for differences you design, and booleans or instance swaps for optional parts. Generate a review grid of instances when you need to see every combination.
Is Instancer free?
Instancer gives you 10 free generations with no login. After that, a one-time upgrade unlocks unlimited generations.
Can I see all variants in dark mode at once?
Yes. Put the combination grid inside a frame and switch that frame's variable mode to Dark. Every instance inside inherits the mode, as long as the component uses variables.
More in Components & variants
- How to Make a Skeleton Loader in FigmaHow to design a skeleton loader in Figma: grey blocks with auto layout, a component with variants, a Smart Animate shimmer, and a plugin that converts frames.
- How to Add Properties to a Figma ComponentAdd boolean, text, instance swap, variant and slot properties to a Figma component, link them to layers, and fix 'not used within component' warnings.
- How to Detach an Instance in Figma (and Remove a Component)Detach a Figma instance with ⌥⌘B or Ctrl+Alt+B. Why Detach is missing, how to detach a nested instance, and how to turn a main component back into a frame.
- How to Create a Component in FigmaCreate a Figma component with ⌥⌘K or Ctrl+Alt+K, the Create component button or a right-click. Plus bulk creation, instances and what the purple icon means.
- Why Are My Nested Components Not Working in Figma?Expose nested instance properties in Figma, fix 'components can't contain instances of themselves' and the swapped-with-parent error, and see what can't change.
- How to Swap an Instance in FigmaSwap a Figma instance from the Instance menu, with Quick insert (Shift+I) or by Alt-dragging a component onto it. Plus go to main, reset and restore shortcuts.
- How to Add a Slot to a Figma ComponentAdd a slot to a Figma component with Convert to slot (⌘⇧S or Ctrl+Shift+S) or Wrap in new slot. Settings, limits, and when to use slots vs instance swap.
- How to install Figma pluginsFigma plugins don't need installing: open one from the Community or run it inside a file. Steps for Figma Design, Dev Mode, FigJam, Slides, saving and admins.
- Figma plugins not working? How to fix itFigma plugins not loading, missing or greyed out? Check your seat and edit access, org approval, network blocks and cache. A step-by-step checklist that works.
- How to Make Design Specs in FigmaWhat a Figma design spec should include, how to build a component spec template by hand, what Dev Mode already covers, and how to generate specs with Autospec.
- Figma plugin vs widget: what's the difference?A Figma plugin runs for one person and closes when done. A widget is an object on the canvas everyone can see and use. When to pick which, with examples.
