How to create component variants on Figma
Component variants in Figma allow you to create multiple versions of a component with different properties like states, sizes, or styles. You create variants by combining multiple components into a variant set and defining properties that control their differences.
Prerequisites
- Basic knowledge of Figma interface
- Understanding of components in Figma
- Knowledge of design properties like colors and states
- Familiarity with the Properties panel
Step-by-Step Instructions
Create your base components
Ctrl+Alt+K (Windows) or Cmd+Option+K (Mac) to convert them into components.Select all component variations
Shift and click on each component you want to combine into variants. Make sure all selected items are components (they should have the diamond icon). You can also drag to select multiple components at once.Combine into component set
Configure variant properties
State, Size, or Type. Choose the property type: Variant (dropdown options), Boolean (true/false), Instance swap, or Text.Assign property values to each variant
State property to Default and another's to Hover. Each variant should have unique combinations of property values.Organize variant layout
Test your component variants
Publish and document variants
Common Issues & Troubleshooting
Cannot combine components as variants
Make sure all selected objects are components (not frames or groups). Convert frames to components first using Ctrl+Alt+K or Cmd+Option+K.
Variant properties not showing up
Ensure you've selected the entire component set (purple border), not an individual variant. The Properties panel only shows variant controls when the component set is selected.
Instances not updating when switching variants
Check if the instance has been detached from the main component. Look for the component icon in the Properties panel - if it's missing, the instance is detached and won't reflect variant changes.
Missing variants in the dropdown
Verify that each variant has unique property value combinations. Duplicate combinations will cause variants to be hidden. Also check that all variants are properly contained within the component set boundary.