Loading fonts…

Design handoff checklist

Template · 7 min read · By Utkarsh Dhairya Panwar · Updated

E-Summit '23 Manager ID card on a lanyard with red dashed bleed and trim guide lines drawn over it for print

A design handoff is ready when an engineer can build the feature without asking what happens in any state. The ten-line checklist below covers file hygiene, states, edge cases, permissions, responsive behaviour, copy, tokens, analytics events and acceptance criteria, with a states matrix and event table to copy.

The checklist

Copy it into the ticket, the Figma file's cover page or a Notion doc. Tick each line or write 'n/a' with a reason. Any line left blank turns into a question in Slack later.

  1. File is ready: One page or section marked 'Ready for dev'. Explorations moved elsewhere. Frames named by screen and state ('Connect integration / no access'). Prototype link for the main flow.
  2. Component states: Default, hover, focus, pressed, disabled, loading, for every interactive component that isn't straight from the library.
  3. Screen states: First-use empty, no results, loading, partial data, error and success. Each one gets a designed frame rather than a comment describing it.
  4. Edge cases: Longest realistic name or title, zero, one and many items, truncation rule, very large numbers, dates across time zones, currencies and locales you support.
  5. Permissions: What each role sees: owner, admin, member, viewer, signed out. What a user without access sees instead of the feature.
  6. Responsive behaviour: Each breakpoint you support, and what collapses, stacks or hides between them. Tables especially.
  7. Copy is final: Every label, error message and empty state written. Who owns copy changes after handoff.
  8. Tokens and components: Colours, type and spacing bound to tokens instead of raw values. New components flagged as new. Any one-off deviation explained in a note.
  9. Analytics events: Every event the feature should fire, with name, trigger and properties. Use the table below.
  10. Acceptance and QA: What 'done' means for each screen, who does the design QA pass on staging, and what blocks release versus what can follow.

A states matrix for one screen

Fill this in for any screen that shows data. It catches most of the 'what happens if' questions in one place.

StateWhen it happensWhat the user seesDesigned?
First useAccount is new, nothing connected yetOne sentence on what will appear here, and the action to get itFrame name
LoadingData is being fetchedSkeleton matching the layout, not a centred spinnerFrame name
PartialSome sources loaded, one failedLoaded data plus an inline notice on the missing partFrame name
Empty resultFilters return nothingWhat was searched, and how to clear filtersFrame name
ErrorRequest failedWhat happened, whether anything was lost, and a retryFrame name
No permissionUser's role can't see thisWho can grant access, and a way to ask themFrame name
OverflowLong names, many itemsTruncation with full text on hover, pagination or virtual scrollFrame name

Most handoffs skip the no-permission row, and in B2B that's often where activation dies. At CodeAnt AI, onboarding broke at exactly this state: people without org admin rights trying to connect a repository. The story of fixing it is in how CodeAnt doubled trial-to-paid.

The analytics event spec

Events left out of the handoff get added after launch, and you lose the first weeks of data. Agree the names with whoever owns analytics and keep to one naming pattern: object, then action.

Event nameFires whenPropertiesQuestion it answers
integration_connect_startedUser clicks Connect on the provider stepprovider, plan, roleHow many try?
integration_connect_blockedInstall fails for lack of admin rightsprovider, roleHow many hit the wall?
admin_request_sentUser emails admin or copies invite linkmethod (email or link)Which recovery path do people use?
integration_connect_completedFirst integration connectedprovider, time_since_signupHow many get through, and how fast?

These rows use a generic integration-connect flow to show the format. Your event names will differ. What matters is that each one answers a question someone will ask in the launch review.

Why the system half of handoff matters

With a component library and named tokens in place, the checklist only has to cover what's new on a screen. Without one, every handoff describes every button. For me that's the main argument for a library, and my guide to design systems for startups covers how small it can start.

How to run the handoff itself

  • Walk through it live for 20 to 30 minutes with the engineers building it, because async handoffs miss the questions people don't think to write down.
  • Start with the user's goal and the metric, then the happy path, then states and edge cases.
  • Ask engineers what's hard. You can simplify an expensive state now, which is better than finding out later that someone cut it.
  • Book the design QA pass on staging before release, and compare it against the frames using real data lengths.
  • Keep the Figma section frozen once building starts. Changes go in a dated new section, linked from the ticket.

The design handoff guide goes deeper on the working habits behind this list: starting at the flow, notes on frames, and the build review.

Questions people ask

Is Figma Dev Mode enough for handoff?

It handles measurements, tokens and assets well. What it can't tell engineers is what happens in states you never designed, which events to fire, or what 'done' means, so those still belong in the handoff.

Who should write the acceptance criteria?

The designer and product owner together, with an engineer reviewing them. Each screen should have a short list of what must be true before it ships.

When should design handoff happen?

In stages. Share the flow early so engineers can flag what's hard, then hand over the final frames with this checklist complete before the sprint starts.

Sources

  1. Guide to Dev Mode in Figma, Figma Help Center
  2. Skeleton Screens 101, Nielsen Norman Group
  3. Designing Empty States in Complex Applications: 3 Guidelines, Nielsen Norman Group

Working on this?

Tell me what you're building and where it's stuck: book a 30-minute call, email work@utkarshdesign.com or send a brief.

Related