Three tips for building complex prototypes in Figma

Supercharge your projects with these helpful hacks

Ben Snyder
Life at Chime

--

Two people stand on a stage discussing how to build a Figma prototype while abstract representations of UI swirl above their heads.
Figma prototyping brainstorm

At Chime, we’re on a journey to streamline our enterprise product experiences. As part of this initiative, we’ve been pushing Figma to its prototyping limits in order to test life-like applications with our users.

These are our top tips for maximizing Figma prototyping potential while keeping files organized and efficient. Let’s dig in.

1. Avoid Spaghetti Navigation

A wireframe of 3 figma screens with a web of blue connected interaction lines between their navigation elements.
A tangled web of navigation links.

Problem: designers have to rewire navigation in every frame of a prototype resulting in a “plate of spaghetti” of interactions and frames.

Even the most basic prototype requires wiring at least one button to one other frame in a file. Multiply this by any number of screens and your file’s interactions quickly become an unwieldy nest of blue noodles.

The solution is to use a singular composite frame that holds every view of your application alongside a single instance of your navigation — all grouped as a reusable component.

A screenshot of 4 figma screens with a clean set of navigation interaction lines coming from a singular composite view
The composite view component holds every view of the prototype and a single instance of your navigation which is wired to the corresponding instances of itself.

Every instance of the single composite component inherits the wired navigation component for free. All that’s left is to show, hide, and configure each instance of the composite view to reflect an app state.

Additional tips

  • Avoid making changes to the instances of the composite component — doing so may prevent future changes from propagating to instances.
  • The layout of the composite view might look messy or non-conventional, but it doesn’t matter so long as you can toggle layers in instances.

2. Prevent Detached Components

A simple abstract example of a modal component being detached by the user in Figma.
In this example, the modal component had simple text content whereas the instance of the modal was detached in order to replace the text with a text area.

Problem: teams use components to make reusability easier, though inevitably detach the components to accomodate a new version or content.

As the number of views of your prototype grows, reusable components ensure that future changes — which are frequent while testing with users — propagate to all views of your prototype.

For this reason, detaching instances defeats the purpose of creating components in the first place and will inevitably slow down your process.

To help prevent the need to detach components, use embedded placeholder components that can be swapped out for more specific use cases later:

A diagram showing an embedded component being swapped out by more specific components.
In this example, the modal component has an embedded component called Placeholder that can then be swapped out when instantiating an instance of the modal component on the artboard.

Here’s how that looks in one of our actual design system files:

A real-world example of embedded swappable components.
Clicking the “Placeholder Com…” drop-down in the right panel allows you to swap out the placeholder for another component which would then render inside the modal without having to detach the modal instance.

Additional tips

  • Getting the layout of embedded components right can take some trial and error, but don’t let it dissuade you from this powerful functionality.
  • Consider including the most common version of a component’s use case as the default embed, this will save you time for the most common cases.

3. Build Scalable Designs

An animated gif showing how the default layout of layers in figma creates unpredictable resizing conditions.
By not using auto layout, designs become inflexible and difficult to maintain when form factors or other substantial structural changes are needed.
An animated gif showing a figma frame being resized while its contents resize to fit the size of the frame.
Restructuring the above wireframe using auto layout enables the design to easily scale to new form factors.

Problem: a set of screens has been built and now a change to the dimensions of the prototype requires manually resizing and restructuring all the designs.

There‘s really no other Figma feature that is as polarizing as auto layout; it may have surpassed “gif” vs “jif” as the most hotly debated topic in design.

Though, love it or hate it, auto layout is here to stay, and embracing it can make designs infinitely more flexible.

Our internal users are dispersed across the globe with some working on small Chromebooks while others have access to multiple monitors. To support this array of dimensions, these are some details we’ve found useful:

  1. Use empty layers withfill container to function as invisible spacers or Spacing mode set to space between on the parent
  2. Use top + bottom and left + right positioning to enable containers to “stick” to the dimension of non-auto layout parent containers
  3. Use Prototype > Overflow scrolling to determine which panes of a view scroll while in prototype mode
  4. Use shift + a to group components into an auto layout container

Additional tips

  • Consider using the Breakpoints plugin to help visualize your designs and how they adapt to different dimensions within Figma
  • For browser-based designs, grab a copy of the scalable Browser Chrome template we created to help imagine designs in a browser window.

An exciting ride with Figma

As the recent Config 2022 demonstrated, there’s a wave of excitement in the design community centered around Figma — we’re thankful to be along on that ride and look forward to the evolution of design that Figma represents.

We hope you found value in these tips — be sure to follow the Life at Chime blog for more content as we help everyday people achieve financial peace of mind, together.

Animated gif of a person with blue hair blowing a pink bubble of gum.
Us waiting patiently for amazing new Figma features.

Thanks to Joanna Chao, Meijie Xia, and Samantha Berg for helping with this article.

--

--

Ben Snyder
Life at Chime

Professional product designer and amateur cyclist living in Traverse City, Michigan.