Have you ever entered someone’s Figma file and spent hours and hours figuring out what’s what? Is design handoff a grueling and time-consuming task for you as a designer? In this post, you’ll find tips, tricks, guidelines, and useful links to help you navigate these and many other problems designers and developers face during the design handoff.
This guide is rather comprehensive, so feel free to skip to the chapters that interest you most.
First things first. Defining the issue.
Design handoff is the process of transferring the final design from the design team to the development team. This typically involves providing the development team with all of the necessary design assets, such as wireframes, mockups, style guides, and any other relevant documentation. The design handoff process is an important part of the design process, as it ensures that the design is properly understood and implemented by the development team.
The most common mistake designers make during the handoff is that we don’t provide enough context and documentation. It’s an easy mistake to make if you’re focused only on your design and an even easier mistake to make if you’re in a time pickle. So what designers usually do is, they just hand off the completed screens in their Figma file and that’s it. I’m here to remind you the screens are not enough.
Imagine you are building a house and the only reference you are giving the builders of your house is a visualization of the interior design. No floor plans, no installation plans, just a beautiful picture. The builders would have a million questions: where is the floorplan, what are the dimensions, what to do with the pipes, where to install electric cables,… (although let’s face it, most of them will just think you’re just completely crazy or that you’re fooling around. Some of them might even be impolite to you!).
The same thing happens if you just give over your finished design screens to developers. Without proper documentation, they can’t build the product you designed. Therefore it’s important to organize your file in a systematic way, add notes with descriptions and arrows explaining the connection between the screens, prototypes, and so on. How to do this properly? Well, just read on.
We have a carefully planned and systematic approach to design which is explained in our Confluence (note: only visible to Qumans). Following these guidelines will make it easier for you to hand off your designs because you will have all the deliverables and pre-requirements ready to go once you finish designing.



A modular design is an approach to product designing which we use to produce a complete product by integrating or combining smaller parts that are independent of each other. With the modular design approach, a complex product (for example, a car) can be broken down or divided into smaller and simpler components that are independently designed and manufactured. Each of these components is then integrated (or assembled) to form the final product. The same logic is applied to software engineering and design.
Per the basic definition, modular design allows one to customize, reuse, upgrade, or maintain product designs. Additionally, the modular product’s independent parts follow a standard interface to fit into each other as the finished product easily.
Atomic design is a design principle that divides the design into small parts called modules. Atoms, molecules, organisms. Learn more about atomic design here.

Use our library of reusable components to speed up your work and make it more consistent.
Showcase your components on a separate page so the developers have an easy overview of the modules they need to build.
I cannot stress how important this is, yet not every designer is comfortable with it. The reason behind is that auto-layout (if properly used) mimics the way the frontend elements behave in CSS flex, which is the industry standard for creating front-end layouts. No elements should be left “hanging in the air” because it’s not the way these elements behave once developed (they would have been positioned absolutely which is an uncommon practice).

Designing in auto-layout means thinking like a developer during design, and that’s challenging for designers who are unsure how front-end code works. However, if you want to step up your game as a designer, designing with auto-layout should become second nature to you. Learning how layouts work in CSS (flex, grid, positioning, etc) will help you a lot in developing the ability to think like a developer, and become a better UX/UI designer.
Here are links to some resources I found helpful:
Auto layout in Figma
CSS Flex
Spacers are basic components that contain empty space. There are two reasons why I use spacers. Firstly, instead of manually adjusting paddings for each layer and each container in the auto-layout, you can just leave it at 0 (zero) and use spacers instead. Secondly, developers usually don’t have edit rights for our Figma file, so it’s harder for them to see the paddings of each layer and component, whereas with the spacers they don’t have to click and inspect every layer. Make the job easier for your developers, they’ll love you for it.

Let’s have a sneak peek into a Q internal project Figma file organization. Note this is not the only way to structure your Figma file, but the logic behind it should be very instructional, especially to designers who haven’t worked in an agency environment before.
Before any design even happens, designers are provided with documentation (usually by the BA team) that includes app features divided into epics and user stories as well as sets of rules and prerequisites for each feature. This is a nice example of such a sheet:

What we’re doing in Figma is actually visually representing this spreadsheet so it makes sense to follow the existing documentation format in our Figma file as well. This will bring clarity to everyone involved in the project.
Here’s a guiding principle on how to organize your Figma file to mimic the given documentation:

It’s worth noticing that design handoff, as a single, final phase of the design process is a part of a waterfall methodology which is somewhat outdated in favor of Agile methodology.
In an Agile environment, it’s even more important to continuously follow the design process because the handoff happens literally every day, only in smaller chunks. You will be a part of daily scrum ceremonies and you will need to collaborate closely with developers and business analysts to deliver every sprint.
Ask constructive questions frequently
What library will you be using? Is this screen clear to you? Do you have any questions or suggestions? These are examples of such constructive questions. For instance, if you know the developer will be using the Bootstrap library it would make sense to design your screens to match Bootstrap layouts and breakpoints.What you shouldn’t do is let developers dictate your designs. If you designed a certain feature in a way you think it’s best for the users, don’t let the developers persuade you otherwise just because it requires some extra effort on their part. So, ask them questions, value their opinion, but push your solutions when necessary.
Be clear and concise in explaining your ideas. Avoid technical jargon and ambiguous abbreviations
Never assume the developers will understand your technical terms, such as kerning, bleed, above-the-fold, etc. Most of them will understand you, and that’s great, but it’s not in their job description to do so. The same goes both ways. Developers, please, we’re already struggling even without trying to decipher what MR, PR, MVP, DB, UAT, or API mean… 🙂
Be flexible and adjust to your project and your team’s workflow
In Agile, you need to be flexible because you’re constantly working closely with your team. What I like to do when I start working on a project is schedule a meeting with my project team members (usually it’s a BA and front-end devs). Together, we go through the broad business requirements, and then we organize our Figma file in a way that best suits our workflow. For example, on one of my recent projects, the product owner would often open new Jira tickets in which he would ask for various proposals, even after the a certain idea got its approval.
Therefore, it made sense to create a Figma page just for Proposals that needed to be approved. That page had sections with links leading to specific Jira tickets. It’s not our standard practice, but it worked best for us in this particular case. This kind of flexibility is typical for an Agile environment. It’s expected of us to adjust and adapt.
Live Q feedback culture
You shouldn’t be afraid of giving and receiving feedback, provided it’s constructive. We all make mistakes, but we also learn from them. If we’re not aware of our mistakes we can’t learn, it’s as simple as that. So pointing out mistakes and accepting our mistakes leads to the team’s growth. But remember our values, be kind.
Overall, design handoff in Agile is much easier, because the communication between the designers and developers is much more frequent, and the amount of documentation designers need to prepare is considerably less. However, in Agile it’s even more critical to set up your file properly from the start and to update it regularly.
Design handoff should not be a source of stress for you if you think about development from the beginning. Structure the file neatly, according to our guidelines. Let your design match the development process as much as possible by using atomic design, grids, spacers, and auto-layout. Be consistent with naming conventions. Document and label everything, and don’t forget to communicate as much as possible with your developers.
Partner with us