13. Counting button variants
A Button component set has Type (primary, secondary, tertiary, danger), Size (small, medium, large), State (default, hover, pressed, focus, disabled) and Icon (yes, no) as variant properties. How many variants is that, and how many if Icon becomes a boolean property instead?
- A.14 variants, dropping to 12 with a boolean
- B.120 variants, dropping to 60 with a boolean
- C.60 variants, dropping to 30 with a boolean
- D.120 variants, dropping to 118 with a boolean
Show answer
Answer: B. 120 variants, dropping to 60 with a boolean
Variants multiply: 4 × 3 × 5 × 2 = 120. A boolean property toggles layer visibility inside each variant, so the Icon dimension no longer multiplies the set, leaving 4 × 3 × 5 = 60. Fewer variants make the component lighter and easier to maintain.
14. Lost text when switching variants
A designer changes a Button instance from Size=Medium to Size=Large and the custom label "Pay ₹499" resets to "Button". What is the most likely cause?
- A.Text overrides are never kept when switching variants
- B.The label layer has a different name in the Large variant
- C.The Large variant uses a different font family
- D.The library has not been published since last week
Show answer
Answer: B. The label layer has a different name in the Large variant
Figma keeps overrides when you swap variants by matching layers with the same name and hierarchy. If the label is called "Label" in one variant and "Text" in another, the match fails and the default text returns. Consistent layer names across variants fix it.
15. Placing a badge on an avatar
An Avatar uses auto layout. You want a small online-status dot fixed at the bottom-right corner without it pushing other children around. What do you use?
- A.Add a large negative gap to the auto layout
- B.Detach the avatar and group the dot with it
- C.Set the dot to absolute position in the frame
- D.Turn on "clip content" on the avatar frame
Show answer
Answer: C. Set the dot to absolute position in the frame
Absolute position takes a child out of the auto layout flow, so it can be placed freely and pinned with constraints while the other children stay in order. This is like position: absolute inside a relatively positioned parent in CSS.
16. Stopping a fill-width card growing forever
A card is set to Fill container so it stretches on wide screens, but on a 1920 px monitor the text lines become very long. Which Figma setting best mirrors the fix developers will use?
- A.Give the card a max width, like CSS max-width
- B.Switch the card to a Fixed width of 1920
- C.Lower the font size on the card text
- D.Remove the padding from the card
Show answer
Answer: A. Give the card a max width, like CSS max-width
Auto layout supports min and max width and height. A max width lets the card fill smaller containers but stop growing past a readable size, which matches max-width in CSS and keeps the design spec close to the real behaviour.
17. Spacing variables shown in the wrong place
Designers complain that the corner radius picker lists every number variable, including spacing and font sizes. What is the clean fix?
- A.Delete the spacing variables and type numbers by hand
- B.Set variable scopes so each variable shows only for its use
- C.Rename every variable with an emoji prefix
- D.Move all number variables into one large collection
Show answer
Answer: B. Set variable scopes so each variable shows only for its use
Variable scoping lets you say where a variable may be applied, for example only gap and padding, or only corner radius. Pickers then show just the relevant options, which reduces mistakes like using a spacing value as a radius.
18. Figma letter spacing in CSS
A display heading has letter spacing of -2% in Figma. Which CSS value matches it at any font size?
- A.letter-spacing: -2px
- B.letter-spacing: -2%
- C.letter-spacing: -0.02em
- D.letter-spacing: -0.2rem
Show answer
Answer: C. letter-spacing: -0.02em
Figma's percentage letter spacing is a share of the font size, which is exactly what em means in CSS. So -2% becomes -0.02em. A fixed px value would only match at one size, and percent is not valid for letter-spacing in CSS.
19. Finding the weak component
Library analytics show the Dropdown component has 2,000 inserts and 900 detaches in a quarter, far more than any other component. What is the best first step?
- A.Lock the component so it can no longer be detached
- B.Talk to the teams detaching it to learn what option is missing
- C.Delete Dropdown and ask teams to build their own
- D.Ignore it, because detaches do not affect consistency
Show answer
Answer: B. Talk to the teams detaching it to learn what option is missing
A 45% detach rate signals the component does not meet real needs, for example a missing search field or multi-select. Learning why from the people detaching it tells you which variant or property to add, which is better than forcing or ignoring them.
20. What a type token holds
Your heading-medium text style must stay identical in Figma and code. Which values should the typography token define together?
- A.Font family, size, weight, line height and letter spacing
- B.Only the font size, since the rest is inherited
- C.Only the colour, so text matches the theme
- D.Font size and the paragraph indent only
Show answer
Answer: A. Font family, size, weight, line height and letter spacing
A typography style is a composite: changing the size without its line height or weight breaks the look. Defining all these properties together, often as a composite token that references primitive values, keeps design and code text styles in step.
21. Splitting a huge library file
Your single library file has foundations, 120 components and icons, and it has become slow to open and publish. What is a common structure?
- A.Separate libraries for foundations, components and icons
- B.One page per designer inside the same file
- C.Duplicating the file every month as a backup
- D.Merging every product file into the library too
Show answer
Answer: A. Separate libraries for foundations, components and icons
Splitting into a foundations library (variables, styles), a components library that uses it, and an icon library keeps files smaller and lets teams enable only what they need. Updates to icons, for example, do not force a republish of every component.
22. Buttons that grow with their label
In Figma, a button label is changed from "Buy" to "Add to cart" and the text overflows the button. What prevents this?
- A.Constraints set to Left and Top
- B.A fixed-width frame of 80 px
- C.Auto layout set to hug contents
- D.Grouping the text and rectangle
Show answer
Answer: C. Auto layout set to hug contents
Auto layout frames resize based on their content with set padding and spacing. Set to hug contents, the button grows or shrinks with its label, and the spacing stays consistent.
23. Hover, pressed and disabled buttons
A design system needs a button in default, hover, pressed and disabled states, and small and large sizes. How should it be built in Figma?
- A.Eight unrelated components with long names
- B.One component set with variant properties
- C.One frame with all states as screenshots
- D.A separate file for each state
Show answer
Answer: B. One component set with variant properties
Variants group related versions into one component set with properties such as State and Size. Designers switch between them in the properties panel, and developers can map them to code props.
24. Light and dark themes in Figma
A product team wants to switch a whole screen between light and dark themes in Figma with one setting. What feature is designed for this?
- A.Duplicate every frame and recolour it
- B.A plugin that inverts every colour
- C.Separate files for each theme
- D.Colour variables with light and dark modes
Show answer
Answer: D. Colour variables with light and dark modes
Figma variables can hold different values per mode. Linking fills to colour variables with Light and Dark modes lets you switch a frame's theme instantly, which matches how code uses design tokens.