Bird
Raised Fist0
Figmabi_tool~10 mins

Component set best practices in Figma - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a component set with multiple variants.

Figma
componentSet = createComponentSet({ variants: [1] })
Drag options to blanks, or click blank then click option'
A['small', 'medium', 'large']
Btrue
Cnull
D42
Attempts:
3 left
💡 Hint
Common Mistakes
Using a boolean or number instead of an array for variants.
Leaving variants as null or undefined.
2fill in blank
medium

Complete the code to set the default variant in a component set.

Figma
componentSet.defaultVariant = [1]
Drag options to blanks, or click blank then click option'
Afalse
Bnull
C0
D'medium'
Attempts:
3 left
💡 Hint
Common Mistakes
Setting defaultVariant to a number or boolean.
Leaving defaultVariant undefined.
3fill in blank
hard

Fix the error in the code that merges two component sets.

Figma
mergedSet = mergeComponentSets(setA, [1])
Drag options to blanks, or click blank then click option'
A42
Bnull
CsetB
Dtrue
Attempts:
3 left
💡 Hint
Common Mistakes
Passing null or a boolean instead of a component set.
Passing a number instead of a component set.
4fill in blank
hard

Fill both blanks to define variant properties and their types in a component set.

Figma
componentSet.variantProperties = { size: [1], color: [2] }
Drag options to blanks, or click blank then click option'
A['small', 'medium', 'large']
B['red', 'green', 'blue']
C'string'
D'number'
Attempts:
3 left
💡 Hint
Common Mistakes
Using type strings like 'string' or 'number' instead of arrays.
Mixing types between variant properties.
5fill in blank
hard

Fill all three blanks to create a component set with variants, default variant, and description.

Figma
componentSet = {
  variants: [1],
  defaultVariant: [2],
  description: [3]
}
Drag options to blanks, or click blank then click option'
A['primary', 'secondary']
B'primary'
C'Button styles for main actions'
D'default'
Attempts:
3 left
💡 Hint
Common Mistakes
Setting defaultVariant to a value not in variants.
Using non-string for description.
Using a string instead of array for variants.

Practice

(1/5)
1. What is the main purpose of a component set in Figma?
easy
A. To export images faster
B. To create unrelated components in one file
C. To group similar components with different states or versions
D. To add animations to components

Solution

  1. Step 1: Understand component sets

    Component sets group similar components that have different states or versions, like buttons with different colors or sizes.
  2. Step 2: Identify the main purpose

    This grouping helps keep designs consistent and easy to update across the project.
  3. Final Answer:

    To group similar components with different states or versions -> Option C
  4. Quick Check:

    Component sets = group similar components [OK]
Hint: Component sets group variants of one element type [OK]
Common Mistakes:
  • Thinking component sets are for unrelated components
  • Confusing component sets with export tools
  • Assuming component sets add animations
2. Which of the following is the correct way to name variants inside a component set in Figma?
easy
A. Button1 and Button2
B. Primary-Hover and Primary-Default with dashes
C. HoverState and DefaultState without slashes
D. Primary / Hover and Primary / Default

Solution

  1. Step 1: Understand variant naming conventions

    Figma recommends using clear variant names separated by slashes to indicate states, like "Primary / Hover".
  2. Step 2: Compare options

    Options without slashes or with generic names like "Button1" are less clear and not best practice.
  3. Final Answer:

    Primary / Hover and Primary / Default -> Option D
  4. Quick Check:

    Use slashes for variant names [OK]
Hint: Use slashes to separate variant names clearly [OK]
Common Mistakes:
  • Using generic names like Button1, Button2
  • Not using slashes to separate variant states
  • Using dashes instead of slashes
3. Given a component set with variants named "Size / Small", "Size / Medium", and "Size / Large", what happens if you add a new variant named "Color / Red" to the same set?
medium
A. It creates a new variant group unrelated to size, causing confusion
B. It merges with existing size variants automatically
C. It renames all variants to "Color / Red"
D. It deletes the previous size variants

Solution

  1. Step 1: Understand variant grouping in component sets

    Variants in a set should focus on one property, like size or color, to keep sets clear.
  2. Step 2: Analyze adding a different variant property

    Adding "Color / Red" to a size-focused set creates a new variant property, which can confuse the set's purpose.
  3. Final Answer:

    It creates a new variant group unrelated to size, causing confusion -> Option A
  4. Quick Check:

    Keep variant sets focused on one property [OK]
Hint: Keep variant sets focused on one property [OK]
Common Mistakes:
  • Assuming variants merge automatically
  • Thinking variants rename others
  • Believing variants delete previous ones
4. You created a component set but notice that some variants have inconsistent naming like "Primary-Default" and "Primary / Hover". What is the best way to fix this?
medium
A. Rename all variants to use consistent slash-separated names
B. Delete the variant with the dash and recreate it
C. Ignore the inconsistency as it does not affect usage
D. Merge the variants into one component

Solution

  1. Step 1: Identify naming inconsistency problem

    Inconsistent variant names cause confusion and make it harder to use the component set properly.
  2. Step 2: Apply best practice for naming

    Renaming all variants to use consistent slash-separated names improves clarity and usability.
  3. Final Answer:

    Rename all variants to use consistent slash-separated names -> Option A
  4. Quick Check:

    Consistent naming improves component set clarity [OK]
Hint: Fix variant names to use consistent slashes [OK]
Common Mistakes:
  • Deleting variants unnecessarily
  • Ignoring naming inconsistencies
  • Merging variants incorrectly
5. You have a button component set with variants for size (Small, Medium, Large) and state (Default, Hover, Disabled). What is the best practice to organize these variants in Figma?
hard
A. Create separate component sets for size and state variants
B. Use two variant properties named "Size" and "State" with clear values for each
C. Combine size and state into one variant property with all combinations
D. Use generic names like "Variant1", "Variant2" for all variants

Solution

  1. Step 1: Understand variant properties in component sets

    Figma allows multiple variant properties to organize variants clearly, such as "Size" and "State".
  2. Step 2: Apply best practice for organizing variants

    Using two variant properties with clear values keeps the set manageable and easy to use.
  3. Final Answer:

    Use two variant properties named "Size" and "State" with clear values for each -> Option B
  4. Quick Check:

    Use multiple variant properties for clarity [OK]
Hint: Use multiple variant properties for complex variants [OK]
Common Mistakes:
  • Creating separate sets for related variants
  • Combining all variants into one property
  • Using unclear generic variant names