Crafting the Non-Perfect Design Handoff File in Figma

Ben
9 min readMar 4, 2023

--

Creating an effective handoff process from design to development is a critical step in any product development cycle. However, as any designer knows, it can be a nerve-wracking experience to send your carefully crafted design off to the dev team. It’s like waiting for a cake to bake — you can’t help but wonder how it will evolve in the oven and how it will taste when you take it out from the oven.

Before we start the blog, look at these memes here:

An meme saying Developer: seeing tons of aniamtion and features in File
Taken from HovDesign Twitter (Link)
Another meme about handoff
Taken from Medium Article (Source)

Let’s be honest, the relationship between designers and developers has always been a little rocky. Despite tools like Figma’s Inspect feature, which allows developers to inspect designs and potentially convert them to code, there are still many barriers between the two roles. Often, design details are hidden within even more detailed parts, making it difficult for developers to accurately interpret the designer’s intentions.

For instance, when designing an image, a designer might import an image, adjust its style, and call it done. More sophisticated designers might wrap the image in a frame or auto layout, so it matches how developers convert it to code. But, even then, many details may still be missing. What should be the maximum/minimum height/width of the image? What is its content style? What effects need to be added? These are the kinds of details that can often be missed in the design handoff.

Let’s face the truth: there’s no perfect design handoff

Every developer works, thinks, and codes differently, which means there is no such thing as a perfect handoff document. Instead, our focus should be on creating a non-perfect but still effective handoff process. In this blog post, we will explore how to create a design handoff document that strikes the right balance between providing developers with the information they need while still allowing them the flexibility to bring the design to life in their own way.

How can handoff files be improved?

1. Talk to the developers more often

Design is often marked as complete once the design handoff file is created. However, design is only complete when the user finds the experience pleasant. Therefore, crafting the design handoff file and having the developer help bring your design to the user is essentially another case study on top of the one you have already worked on. To make it perfect, just as you would talk to users, you need to communicate with engineers to understand their needs, how they read your file, and perhaps even teach them tips about Figma.

Here are a few tips you can teach your developers to make their lives easier when working with Figma:

Show them the superpower of the Inspect panel
Figma’s Inspect feature allows developers to see the precise design style that you’ve used, which can greatly simplify the development process. Additionally, if you have a design library in place, Inspect will display the name of each component and style that you’ve used. This can be incredibly helpful for developers, especially if they’re working with a style guide, as they can use the component or style directly to match your design with ease.

Figma inspect
Figma Inspect (Source: Figma)

Encourage them to use Figma comment
It’s common for developers to have questions about the design during the handoff process. To make it easier for everyone involved, consider teaching them to leave comments directly on Figma instead of sending a private message. This way, the comments are visible to everyone and provide context for the issue at hand.

Figma comment image
Figma comment (Source: Figma)

Leverage cursor chat
If you and the developers are both working within the same Figma file, you can also make use of the cursor chat feature to clarify any questions or issues that arise. This can be a fun and useful way to collaborate and ensure that everyone is on the same page.

Figma cursor chat image

And finally — Use Figma audio chat
If you need to discuss a complex issue in more detail, consider using Figma’s audio chat feature. This can be a quick and efficient way to clarify any questions or concerns that arise during the development process.

Figma audio chat feature
Audio chat (Source: Figma)

It’s important to keep in mind that effective collaboration relies on good communication. Therefore, it’s crucial to talk to your developers regularly and understand their approach to reading and interpreting your designs, especially when you first start working with them. This sets the foundation for a productive and successful partnership.

2. Documenting Design Decisions for You and Developers

We have to be honest, the reason why building our portfolio often takes a few months is the fact that we did not document everything, and very often, we need to start building the case studies by trying our best to fetch the design files and all the stuff we need.

I find it useful to document my decisions in Figma, not only just designs, but if appropriate, competitor analysis, problem statements, user journey, and leave the links to these pages within the handoff file as well. The developer might not read it, but I often hear from my developers that they like this as they can also dig into what the designers are thinking when coming up with the design, and they can learn the tips for building a product from us as well.

Problem statement and all design stuff in Figma
This is very often what I include in my own Figma file

3. Don’t just leave the design there, add the details

When it comes to design, details matter. Just leaving the design as is won’t cut it. Adding details not only helps developers better understand the design, but it can also make their lives easier. Here are some tips for adding those crucial design details to your handoff:

Number the frame/flow if possible
I really like the handoff template that Luis Ouriach (Twitter) created on Figma. The numbering and title pattern make it easy for developers to understand which screen belongs to which flow immediately. However, it can be complicated to update the design later as the numbering needs to be updated manually. One alternative approach is to break down the screens into different tickets or user journeys and assign a number that matches each ticket or user journey.

Example of numbering in Figma
The numbering system that Luis created on Figma (Link to template)

Add the details for the interaction, make use of Figma’s section feature
This might seem trivial, but I consider it important. Design details shouldn’t be something like ‘This design does X, and if you press that, it will do Y.’ Instead, it’s crucial to include details like the hover state, initial state, max width/height, and the outcome of different use cases.

For this reason, I appreciate the new section feature that Figma has released. It allows me to have a big design at the top so that developers can see all the design at once, and then look at the section details for all the design and interaction details.

Using section for design details
I like to use Sections to describe the details of the design. With this approach, I can create a direct link to a specific section and guide the developer to review it with ease.

Make use of Interactive Prototype & Figjam for showing user flow
Additionally, try to share with the developers how each design screen connects to one another. You can use the interactive prototype feature within Figma to connect the screens and make them move so that developers can understand the logic. Alternatively, you can use Figjam to connect the screens, allowing developers to see how everything is connected in one glance.

Using Figjam for adding flows
Use Figjam to connect the screens easily

4. The secret weapon: Add Loom video

Loom video is a lifesaver for us. You only need to record it once, and then you can share it with anyone interested in your design. Therefore, I highly recommend making use of Loom! For every design handoff file, I always record a loom video to walk through the design. For more complicated designs, I will record a separate video specifically describing the details so that I don’t waste other people’s time if they’re not interested.

To attach the Loom video, I use the Loom plugin and place it right beside the handoff file. Developers can play it as many times as they need without even needing to disturb you.

Get the Loom Plugin in Figma: Link

Adding Loom to Figma file
How I attach my loom video in my Figma file
Loom Plugin
Loom plugin for Figma (Source: Figma)

5. The biggest fear: Version control

In an ideal world, design would be completely finalized before developers start coding. However, in reality, design is always subject to adjustments, even after development has already begun. That’s why version control is such an important topic.

Although Figma has a branching feature for enterprise customers to create new designs in a separate branch, I find it helpful to keep a few extra things in your design file:

Have a single source of truth
Always ensure that the developer handoff file you share with your team is the single source of truth for the latest design. If you make any changes, update the file directly, and keep the original as a duplicate for reference. This will prevent confusion and avoid pointing developers to different pages in Figma.

Add an archived section in Figma
Have a section in your file pages to store the archived files.

Change logs/Future plan
Include a changelog in the handoff file to help developers understand the latest changes made to the design.

Similarly to changelogs, if you already know of future plans to adjust the design, write them down somewhere in Figma so that developers can understand what changes are expected.

Add changelog in Figma
How my changelog/todo-list looks like

6. Make use of plugins

There are also number of plugins to help you with creating your handoff:

EightShapes Specs
EightShapes Specs creates spec for you design automatically. With just one-click.
Download the plugin: Link

Eightspec
Taken from Link

Autoflow
Autoflow allows you to connect the screens visually without using Figjam. Download the plugin: Link

Autoflow image
Taken from Link

Style Organizer
Style Organizer allows you to make sure all of your style are linked to your component/style. So that developers won’t need to reach hexcode in any case.
Download the plugin: Link.

Style organizer
Taken from Link

7. The ultimate goal, have a design system

If you want to take things a step further, consider pushing your team to adopt a design system. This will enable the designs created in Figma to be more closely aligned with what developers expect in the code. You can match token names and name your layers/frames to align with how developers name their containers and match them in your design system.

The conclusion: Keep improving the non-perfect

Ultimately, as I mentioned at the beginning, there’s no one-size-fits-all approach to developer handoff, as it depends on various factors such as product design and the engineers we work with. However, what we can do is work closely with our users (engineers), communicate with them regularly, and collaborate to find solutions that make everyone’s lives easier. Just like our designs, the key to successful developer handoff is to prioritize good communication and collaboration.

--

--

Ben
Ben

Written by Ben

Senior Product Designer on the Growth team at Miro — I write about PLG, AI, data-driven design, and design psychology. https://www.linkedin.com/in/hbshih/

Responses (1)