41. Retiring an old API version
You plan to switch off /v1 on a fixed date. Besides emailing clients, what can the API itself do so client developers notice?
- A.Send Deprecation and Sunset headers with a link to the docs
- B.Return 500 errors at random on v1
- C.Slow v1 down a little each week without notice
- D.Remove v1 from the docs and keep it running forever
Show answer
Answer: A. Send Deprecation and Sunset headers with a link to the docs
The Deprecation header marks the endpoint as deprecated, and the Sunset header gives the date it will stop working, often with a Link to migration docs. Client tools and logs can then flag the usage. Track remaining v1 traffic by client to know who still needs help.
42. Teams ignore the design system
Several product teams are building their own buttons and modals instead of using the design system. What is the most effective response?
- A.Find out why through interviews and code audits, fix the gaps (missing variants, slow releases, weak docs), and set up a clear contribution process
- B.Ask leadership to make use of the design system mandatory with penalties
- C.Rebuild the whole design system from scratch
- D.Let every team keep its own components
Show answer
Answer: A. Find out why through interviews and code audits, fix the gaps (missing variants, slow releases, weak docs), and set up a clear contribution process
Low adoption usually means the system does not meet real needs or is hard to use. Treating teams as customers, closing gaps and letting them contribute builds lasting adoption. Mandates without fixes create workarounds.
43. Changing a widely used component
You must change the Button component so its "size" values change from small/large to sm/md/lg. Forty products use it. What is the best rollout?
- A.Release it as a new major version with clear migration notes, deprecate the old values with warnings first, and support the old version for a set period
- B.Change it silently in the main library overnight
- C.Ask each team to rebuild their own button
- D.Never change components once released
Show answer
Answer: A. Release it as a new major version with clear migration notes, deprecate the old values with warnings first, and support the old version for a set period
Breaking changes need versioning, communication and a migration path. Deprecation warnings and codemods or Figma library update notes let teams move on their own schedule without surprise breakages.
44. Preparing for German and Arabic
Your English-only app will launch in German and Arabic. What should you change in the designs first?
- A.Nothing; translation is the developers' job
- B.Make every text box exactly fit the English text
- C.Use images of text so translation is easier
- D.Allow for text expansion (German is often much longer), avoid fixed-width labels and text in images, and mirror layouts and directional icons for right-to-left Arabic
Show answer
Answer: D. Allow for text expansion (German is often much longer), avoid fixed-width labels and text in images, and mirror layouts and directional icons for right-to-left Arabic
Fixed containers break when translated strings grow, and RTL languages flip reading order, navigation and progress direction. Designing with flexible layouts and testing with real or pseudo-localised strings prevents costly rework.
45. Smart animate jumps instead of moving
You link two frames with Smart animate so a card should slide and grow. In the prototype it just cross-fades. The card layer is called "Card" in frame A and "Card copy" in frame B. Why?
- A.Smart animate only works on frames under 400 px wide
- B.Smart animate matches layers by name, so different names cannot be tweened
- C.Cross-fade is used whenever a layer changes size
- D.The prototype must be viewed in the mobile app to animate
Show answer
Answer: B. Smart animate matches layers by name, so different names cannot be tweened
Smart animate looks for layers with the same name and hierarchy in both frames and animates the differences in position, size and other properties. Unmatched layers fade in and out instead, so renaming "Card copy" to "Card" fixes it.
46. Hover colour by lowering opacity
A developer makes every button hover state by setting opacity: 0.8 on the whole button. On a photo background, what problem does this cause?
- A.The photo shows through, so colour and contrast vary
- B.Opacity cannot be animated, so the hover state snaps
- C.Screen readers announce the button as disabled
- D.The button stops receiving keyboard focus
Show answer
Answer: A. The photo shows through, so colour and contrast vary
Opacity makes the whole element semi-transparent, including the label, so whatever is behind it bleeds through and contrast varies by background. A dedicated hover token, or an overlay on the fill only, gives a predictable colour that can be checked for contrast.
47. Keyboard behaviour of a modal
Your Modal component spec covers visuals only. What keyboard behaviour should the spec add for an accessible dialog?
- A.Focus stays on the page behind, and Tab keeps moving through it
- B.Esc is disabled so users cannot close by mistake
- C.Focus moves in and is trapped; Esc closes and focus returns
- D.Focus jumps to the browser address bar on open
Show answer
Answer: C. Focus moves in and is trapped; Esc closes and focus returns
An accessible modal moves focus into the dialog when it opens, keeps Tab cycling inside it, closes on Esc, and sends focus back to the element that opened it. Without this, keyboard and screen reader users get lost behind the overlay.
48. Is this change breaking?
Your Figma library and code package are versioned together. You rename the Button variant value "Ghost" to "Tertiary". Why is this a breaking change for designers, not just developers?
- A.Instances set to Ghost lose their match and may reset
- B.Renaming a variant value deletes every existing instance
- C.Figma blocks publishing when a value is renamed
- D.Renaming is cosmetic and never affects instances
Show answer
Answer: A. Instances set to Ghost lose their match and may reset
Instances store the variant values they were set to. When a value is renamed, consumers accepting the update can see instances snap to another variant, so screens change silently. Treat renames as breaking: announce them, offer a migration note and plan the release.
49. Choosing a team model
A company has 8 product squads and a design system team of two people who have become a bottleneck for new components. Which operating model usually fits best?
- A.Fully centralised: only the two people may create anything
- B.No system team: every squad keeps its own separate library
- C.Outsourcing all component work to an agency each year
- D.Hybrid: core team sets standards, squads contribute
Show answer
Answer: D. Hybrid: core team sets standards, squads contribute
Small central teams cannot build everything for many squads. A hybrid (or federated) model lets squads propose and build components while the core team reviews quality, accessibility and naming, keeping one system without the queue.
50. Error state shown only in red
Your Input error state turns the border red and does nothing else. Which change best meets WCAG and helps colour-blind users?
- A.Use a brighter red with higher saturation
- B.Add an error icon and a text message linked to the input
- C.Make the border 4 px thick but keep it red only
- D.Flash the border red three times on error
Show answer
Answer: B. Add an error icon and a text message linked to the input
WCAG 1.4.1 says colour must not be the only way to convey information. An icon plus a clear message ("Enter a 10-digit mobile number"), linked with aria-describedby, works for colour-blind and screen reader users alike.
51. The main component was deleted
Someone deleted the main Badge component from the library file and published. What is true about the existing Badge instances in product files?
- A.They are deleted from every file at the same moment
- B.They turn into images and lose all their layers
- C.They still exist, but get no updates until the main is restored
- D.They link to the most similar other component
Show answer
Answer: C. They still exist, but get no updates until the main is restored
Instances keep their content when the main component is removed, but they can no longer receive changes. In the library file you can restore the main component (for example from version history or via "Restore main component"), then publish again to reconnect updates.
52. Which changes reach overridden layers
On an instance, a designer overrode the label colour to red. Later the main component's label colour and font size both change. What does the instance show?
- A.The new colour at the new font size
- B.A red label at the old font size
- C.A red label at the new font size
- D.The old colour at the old font size
Show answer
Answer: C. A red label at the new font size
Overrides are tracked per property. The instance keeps the overridden colour but still receives changes to properties it did not override, such as font size. Resetting the override would bring back the main component's colour.
53. Showing depth in dark mode
In dark mode, black shadows barely show against a #121212 background, so cards and dialogs look flat. What approach do systems such as Material use?
- A.Make higher surfaces slightly lighter in tone
- B.Use white shadows instead of black ones
- C.Add thick bright borders around every surface
- D.Make raised surfaces darker as they rise
Show answer
Answer: A. Make higher surfaces slightly lighter in tone
In dark themes, higher surfaces get a lighter tone (Material 3 uses tonal surface colours) so depth reads without heavy shadows. Semantic surface tokens like surface-container-high make this automatic for each component.
54. Keeping Figma and code tokens in sync
Your team edits tokens in Figma, but developers keep a separate JSON file that falls out of date. Which workflow removes the double entry?
- A.Email a screenshot of the variables panel weekly
- B.Let developers pick colours from screenshots
- C.Keep two token files and compare them yearly
- D.Sync tokens to Git and build every platform from it
Show answer
Answer: D. Sync tokens to Git and build every platform from it
Tools such as Tokens Studio, or scripts using Figma's Variables REST API, push token changes to a repository, ideally as a pull request. A build step (for example Style Dictionary) turns that one source into CSS and app files, so design and code cannot silently differ.
55. One system, many frameworks
An enterprise has apps in React, Angular and plain server-rendered HTML. It wants one coded component library. Which option is designed for this?
- A.A React-only library wrapped inside iframes
- B.Copying Figma CSS snippets into each app
- C.A separate hand-built library per framework
- D.Web Components themed with CSS custom properties
Show answer
Answer: D. Web Components themed with CSS custom properties
Custom elements are a browser standard, so they work in any framework or plain HTML. Theming through CSS custom properties passes tokens through the shadow DOM boundary. Some teams add thin framework wrappers for better ergonomics.
56. Tab order that jumps around
A checkout page has a two-column layout. Developers built it with CSS order changes, and Tab now jumps from the left column to a footer link and back. What should the design handoff have specified?
- A.A larger focus ring so jumps are easier to follow
- B.tabindex="5" and higher on every element
- C.The intended focus order, matched by the DOM order
- D.Keyboard support only for the Pay button
Show answer
Answer: C. The intended focus order, matched by the DOM order
Keyboard focus follows the order in the HTML, not the visual layout. Annotating the focus order and keeping the source order aligned with it gives a logical path. Positive tabindex values are fragile and create more confusion.
57. Constraint for a proportional chart
In a plain frame, a bar inside a chart has horizontal constraint Scale. The frame is resized from 400 to 600 px wide. The bar was 100 px wide starting at x = 40. Where is it after resizing?
- A.Starting at x = 40 and 300 px wide
- B.Starting at x = 40 and 100 px wide
- C.Starting at x = 240 and 100 px wide
- D.Starting at x = 60 and 150 px wide
Show answer
Answer: D. Starting at x = 60 and 150 px wide
Scale keeps position and size as a percentage of the parent. The frame grew by 1.5×, so x becomes 40 × 1.5 = 60 and width 100 × 1.5 = 150. Left and right would instead keep fixed margins on both sides.
58. Two people edit the same record
Two accountants edit the same customer record at once. The second save silently overwrites the first. What is a better design?
- A.Detect the conflict and show both changes to resolve
- B.Always keep the first save and discard others
- C.Lock the record for a day after any edit
- D.Let the last save win, with no warning
Show answer
Answer: A. Detect the conflict and show both changes to resolve
Silent overwrites lose work and cause errors. Detecting conflicts, showing what changed and letting the user merge or choose protects data. Presence indicators ("Priya is editing") can prevent conflicts in the first place.
59. Discovery for an AI summary feature
Your team plans an AI feature that summarises long customer support threads for agents. Which discovery step reduces the most risk early?
- A.Ask agents whether they would like AI summaries
- B.Benchmark three large language models on a public summarisation dataset and pick the best
- C.Hand agents summaries made from real past threads and watch if they help
- D.Write the full technical design before talking to agents
Show answer
Answer: C. Hand agents summaries made from real past threads and watch if they help
Feeding real threads (with privacy safeguards) into a quick prototype, or even having a person write summaries Wizard-of-Oz style, tests value and usability together. Asking for opinions is unreliable, and public benchmarks do not show whether summaries help these agents with their tickets.
60. "It looks done, ship it"
After seeing a clickable prototype, the sponsor asks why go-live is still three months away. What should the BA have done?
- A.Shown a less attractive prototype on purpose
- B.Promised a go-live date in two weeks
- C.Said upfront that it was a mock-up with no logic
- D.Never shown a prototype to a sponsor
Show answer
Answer: C. Said upfront that it was a mock-up with no logic
High-fidelity prototypes can look like finished software, which raises expectations. Stating clearly that it has no back end, integrations, security or testing, and why those take time, avoids this. Lower fidelity also helps.