Table of Contents
- Why a well-thought-out design handoff is so important
- The Essential Components of a Design Handoff
- The Biggest Challenges: Navigation and Mobile Design
- Best Practices for a Successful Design Handoff
- Common Mistakes and How to Avoid Them
- Conclusion: Investment in Quality Pays Off
- FAQ – Frequently Asked Questions about Design Handoff
Meet the Author
2025-11-25
Frontend ChecklistHandoff from Designer to Developer: What We Need for Frontend Implementation
The transition from design to development is a critical moment in any frontend project. A well-thought-out handoff can save weeks of development time, while an incomplete handoff leads to endless questions, delays, and compromises.
In this article, we explain what information designers should provide so that developers can implement frontend projects efficiently and precisely. Based on our experience from numerous client projects, we have identified the most common problems and show how they can be avoided.
Why a well-thought-out design handoff is so important
The Problem: Incomplete Design Documentation
In many projects, developers receive design files that are visually appealing but lack important technical details. This leads to situations where developers have to decide for themselves what components should look like in different states, which breakpoints to use, or how the mobile navigation should work.
The consequences:
- Delays due to questions and need for clarification
- Inconsistencies between design and implementation
- Extra work due to subsequent adjustments
- Frustration on both sides – designers and developers
The Solution: Structured Design Handoff
A structured design handoff is more than just sharing a Figma file. It is a comprehensive documentation that covers all aspects of visual and interactive design. Developers should be able to understand and implement the design without having to constantly ask questions.
The Essential Components of a Design Handoff
1. Color Palette: The Foundation of Visual Identity
A complete color palette is fundamental to any frontend implementation. It should not only contain the basic colors but also all variants used in the project.
What a complete color palette should include:
- Primary colors with all variants (light, dark, saturated)
- Secondary colors for accents and highlights
- Neutral colors for backgrounds, texts, and borders
- State colors for hover, focus, disabled, error, success
- Hex values or CSS variables for direct implementation
Example structure of a color palette:
/* Primary colors */
--color-primary: #0066CC;
--color-primary-hover: #0052A3;
--color-primary-light: #E6F2FF;
--color-primary-dark: #004080;
/* Secondary colors */
--color-secondary: #FF6B35;
--color-secondary-hover: #E55A2B;
/* Neutral colors */
--color-background: #FFFFFF;
--color-surface: #F5F5F5;
--color-text: #1A1A1A;
--color-text-light: #666666;
--color-border: #E0E0E0;
/* State colors */
--color-error: #DC3545;
--color-success: #28A745;
--color-warning: #FFC107;
--color-info: #17A2B8;
--color-disabled: #CCCCCC;
Why this is important: Without a complete color palette, developers have to guess or define color values themselves, which leads to inconsistencies. A precise color palette enables consistent implementation and facilitates later maintenance and adjustments.
2. Components with Different States
Components are the heart of any frontend application. for a precise implementation, developers need not only the standard design but all states and variants of a component.
States that should be documented:
- Default: The standard state of the component
- Hover: What does the component look like when you hover over it?
- Focus: How is the focus visually represented (important for accessibility)?
- Active: The state during an interaction
- Disabled: What does the disabled variant look like?
- Error: Error states with corresponding visual cues
- Success: Success states for confirmations
Additional variants:
- Sizes: Small, Medium, Large
- Color variants: Primary, Secondary, Tertiary
- Layout variants: With/without icon, different text lengths
- Context variants: In different environments (header, footer, modal)
Example: Button Component
A fully documented button component should include the following variants:
Button Primary
├── Default (Background: Primary color, Text: White)
├── Hover (Background: Primary color darker, Cursor: Pointer)
├── Focus (Outline: 2px solid focus color, Outline-offset: 2px)
├── Active (Background: Primary color even darker)
├── Disabled (Background: Gray, Opacity: 0.6, Cursor: not-allowed)
└── Loading (Spinner icon, Text: "Loading...")
Button Secondary
├── Default (Background: Transparent, Border: Primary color)
├── Hover (Background: Primary color light, Text: Primary color)
└── [further states...]
Sizes
├── Small (Padding: 8px 16px, Font-Size: 14px)
├── Medium (Padding: 12px 24px, Font-Size: 16px)
└── Large (Padding: 16px 32px, Font-Size: 18px)
Why this is important: Missing state definitions mean that developers have to decide for themselves what components look like in different situations. This leads to inconsistencies and can impair the user experience.
3. Typography: More Than Just Fonts
Typography is a central part of the design that is often underestimated. A complete typography documentation should include all text styles used in the project.
What a typography documentation should include:
- Font families: Which fonts are used (web fonts, system fonts)?
- Font sizes: All used font sizes with corresponding line heights
- Font weights: Regular, Medium, Bold, etc.
- Text styles: Headings (H1-H6), body text, captions, labels
- Responsive typography: How do font sizes change at different breakpoints?
- Color assignments: Which text color is used in which context?
Example Typography System:
/* Headings */
--font-heading-1: 48px / 56px, Bold, 'Inter', sans-serif;
--font-heading-2: 36px / 44px, Bold, 'Inter', sans-serif;
--font-heading-3: 28px / 36px, SemiBold, 'Inter', sans-serif;
--font-heading-4: 24px / 32px, SemiBold, 'Inter', sans-serif;
--font-heading-5: 20px / 28px, Medium, 'Inter', sans-serif;
--font-heading-6: 18px / 24px, Medium, 'Inter', sans-serif;
/* Body Text */
--font-body-large: 18px / 28px, Regular, 'Inter', sans-serif;
--font-body: 16px / 24px, Regular, 'Inter', sans-serif;
--font-body-small: 14px / 20px, Regular, 'Inter', sans-serif;
/* Special */
--font-caption: 12px / 16px, Regular, 'Inter', sans-serif;
--font-label: 14px / 20px, Medium, 'Inter', sans-serif;
--font-button: 16px / 24px, Medium, 'Inter', sans-serif;
Why this is important: Typography significantly affects readability, hierarchy, and the overall appearance of a website. Unclear typography definitions lead to inconsistent text displays and can negatively impact the user experience.
4. Breakpoints: The Basis for Responsive Design
Responsive design is standard today, but many designers only provide 2-3 breakpoints, although 6 breakpoints would be optimal for a precise implementation. We recommend using the Bootstrap standard breakpoints as a basis, as they provide a proven and consistent foundation for responsive layouts.
Bootstrap Standard Breakpoints (recommended):
- Extra Small (xs): <576px (small smartphones in portrait mode)
- Small (sm): ≥576px (large smartphones in landscape mode)
- Medium (md): ≥768px (tablets)
- Large (lg): ≥992px (standard desktops)
- Extra Large (xl): ≥1200px (large desktops)
- Extra Extra Large (xxl): ≥1400px (very large screens)
What should be documented for each breakpoint:
- Layout changes: How does the grid system change?
- Component adjustments: Which components are displayed differently?
- Navigation: How does the navigation work on different screen sizes?
- Typography: How do font sizes change?
- Spacing: How do the distances between elements change?
Example Breakpoint Documentation (Bootstrap Standard):
Extra Small (xs) - <576px
├── Navigation: Hamburger menu, Full-screen overlay
├── Grid: 1 column, Padding: 16px
├── Typography: H1: 32px, Body: 14px
└── Components: Stack layout, full width
Small (sm) - ≥576px
├── Navigation: Hamburger menu, Side-drawer
├── Grid: 1-2 columns, Padding: 20px
├── Typography: H1: 36px, Body: 15px
└── Components: Adapted layout, larger touch targets
Medium (md) - ≥768px
├── Navigation: Hamburger menu, side-drawer or compact menu
├── Grid: 2 columns, Padding: 24px
├── Typography: H1: 40px, Body: 16px
└── Components: 2-column layout possible
Large (lg) - ≥992px
├── Navigation: Horizontal menu, dropdowns
├── Grid: 12 columns, Padding: 32px
├── Typography: H1: 48px, Body: 16px
└── Components: Flex layout, different widths
Extra Large (xl) - ≥1200px
├── Navigation: Horizontal menu with advanced features
├── Grid: 12 columns, max-width container, Padding: 40px
├── Typography: H1: 48px, Body: 16px
└── Components: Optimized layout for large screens
Extra Extra Large (xxl) - ≥1400px
├── Navigation: Horizontal menu, extended navigation
├── Grid: 12 columns, max-width container, Padding: 48px
├── Typography: H1: 52px, Body: 18px
└── Components: Maximum widths, optimized spacing
Why this is important: Too few breakpoints lead to compromises in implementation. Developers then have to decide for themselves what the layout should look like on screen sizes that are not defined in the design. Using the Bootstrap standard breakpoints offers several advantages: they are proven, well-documented, and already understood by many developers. They also enable consistent implementation, especially when Bootstrap or similar frameworks are used. More breakpoints mean more control and more precise implementation across all device classes.
5. Spacing between components: The invisible design element
Spacing is a fundamental design element that is often overlooked. Consistent spacing creates visual hierarchy and improves readability.
What should be documented:
- Spacing system: A consistent spacing system (e.g., 4px, 8px, 16px, 24px, 32px, 48px, 64px)
- Component spacing: Specific distances between different components
- Container padding: Inner padding of containers and sections
- Responsive spacing: How do distances change at different breakpoints?
Example Spacing System:
--spacing-xs: 4px;
--spacing-sm: 8px;
--spacing-md: 16px;
--spacing-lg: 24px;
--spacing-xl: 32px;
--spacing-2xl: 48px;
--spacing-3xl: 64px;
--spacing-4xl: 96px;
Application examples:
- Spacing between buttons:
--spacing-md(16px) - Spacing between sections:
--spacing-3xl(64px) - Padding in cards:
--spacing-lg(24px) - Spacing between form elements:
--spacing-md(16px)
Why this is important: Inconsistent spacing leads to an unprofessional appearance. A documented spacing system enables consistent implementation and facilitates maintenance.
The Biggest Challenges: Navigation and Mobile Design
Navigation with Hover Effects: A Common Problem
Navigation is often one of the most complex areas of a website, especially when hover effects and dropdown menus are involved. In the past, we have often had the problem that a lot of information was missing or not well-thought-out.
What is often missing in navigation designs:
- Hover states: What do hover effects look like exactly? Which animations are used?
- Dropdown behavior: How do dropdowns open? Are there animations? How do they close?
- Mobile navigation: How does the navigation work on mobile devices? Is there a hamburger menu? What does it look like?
- Active states: How is the active menu item marked?
- Transitions: Which transitions are used?
What a complete navigation documentation should include:
Desktop Navigation
├── Default state
│ ├── Logo position and size
│ ├── Menu item styling (font, size, color)
│ └── Spacing between menu items
├── Hover state
│ ├── Background color or underline
│ ├── Text color change
│ ├── Transition duration and easing
│ └── Cursor change
├── Dropdown menu
│ ├── Trigger behavior (hover vs. click)
│ ├── Dropdown position and alignment
│ ├── Dropdown styling (background, shadow, border)
│ ├── Animation (fade-in, slide-down, etc.)
│ └── Sub-menu behavior
└── Active state
├── Visual marking
└── Styling differences
Mobile Navigation
├── Hamburger menu
│ ├── Icon position and size
│ ├── Animation on open/close
│ └── Icon transformation (to X)
├── Off-canvas menu
│ ├── Slide direction (from left, right, top)
│ ├── Background overlay
│ ├── Menu width and position
│ └── Animation and transition
└── Menu items
├── Layout (list, grid, etc.)
├── Spacing between items
└── Touch target sizes (at least 44x44px)
Why this is important: Navigation is often the first point of contact for users. Unclear navigation designs lead to delays in implementation and can significantly impair the user experience. It is particularly problematic when desktop designs are available, but mobile versions are missing.
Mobile Implementation: Often Neglected, but Critical
Mobile implementation is one of the most common pain points in design handoff. Many designers only provide desktop designs and expect developers to decide for themselves what the mobile version should look like.
Common problems with mobile designs:
- Missing mobile designs: Only desktop designs are provided
- Incomplete mobile designs: Some pages have mobile designs, others do not
- Unclear breakpoints: It is not clear at which screen size which version is used
- Touch interactions: No specifications for touch gestures and interactions
- Performance: No consideration of loading times and performance on mobile devices
What a complete mobile documentation should include:
- Mobile-first approach: Designs for small screens first
- Touch targets: Minimum sizes for clickable elements (44x44px)
- Navigation: Detailed mobile navigation designs
- Component adjustments: What do components look like on mobile?
- Layout changes: What layout changes are necessary on mobile?
- Interactions: Touch gestures, swipe behavior, etc.
Example Mobile Specifications:
Mobile Navigation
├── Hamburger menu
│ ├── Position: Top-left or top-right
│ ├── Size: 44x44px (touch target)
│ ├── Icon: 3 lines, animation to X on open
│ └── Z-index: Above all other elements
├── Off-canvas menu
│ ├── Slide direction: From the left
│ ├── Width: 80% of the screen width, max. 320px
│ ├── Background: White with shadow
│ ├── Overlay: Dark background with 50% opacity
│ └── Animation: 300ms ease-in-out
└── Menu items
├── Layout: Vertical list
├── Padding: 16px per item
├── Font-Size: 18px (larger for better readability)
└── Touch Target: At least 44px height
Mobile Components
├── Buttons: Full width or adjusted size
├── Forms: Stack layout, larger input fields
├── Cards: Full width, adjusted padding
└── Images: Responsive, optimized for mobile
Why this is important: Mobile usage exceeds desktop usage in many projects. Missing mobile designs lead to delays as developers have to decide for themselves what the mobile version should look like. A thorough mobile implementation is essential for project success.
Best Practices for a Successful Design Handoff
1. Structured Figma File
A well-organized Figma file makes the work much easier. Developers should be able to quickly find what they are looking for.
Recommended structure:
Design System
├── Colors
│ ├── Primary
│ ├── Secondary
│ ├── Neutrals
│ └── States
├── Typography
│ ├── Headings
│ ├── Body
│ └── Special
├── Components
│ ├── Buttons (all states)
│ ├── Forms
│ ├── Cards
│ └── Navigation
├── Spacing
│ └── Spacing System
├── Breakpoints
│ └── Responsive Guidelines
└── Pages
├── Desktop
│ ├── Homepage
│ ├── About
│ └── Contact
└── Mobile
├── Homepage
├── About
└── Contact
2. Comments and Annotations
Comments in Figma can provide important contextual information that is not obvious in the design.
What should be commented on:
- Interactions: How do hover effects, animations, etc. work?
- States: What states are there and when are they used?
- Breakpoints: At what screen size does the layout change?
- Special requirements: Accessibility features, performance considerations, etc.
3. Export Options
Developers need assets in different formats and sizes. A clear export strategy saves time.
Recommended export formats:
- Icons: SVG (scalable, small file size)
- Images: WebP or optimized JPG/PNG
- Logos: SVG for vector graphics, PNG for raster graphics
- Colors: Hex values or CSS variables
Common Mistakes and How to Avoid Them
Mistake 1: Only providing desktop designs
Problem: Many designers only provide desktop designs and expect developers to develop the mobile version themselves.
Solution: Always provide mobile designs, at least for the most important pages. If time is short, at least design the navigation and main components on mobile.
Mistake 2: Missing state definitions
Problem: Components are only shown in the default state, hover, focus, and other states are missing.
Solution: Document all states. If time is short, at least define the most important states (hover, focus, disabled).
Mistake 3: Unclear breakpoints
Problem: It is not clear at which screen size which version is used.
Solution: Explicitly define and document breakpoints. Use comments in Figma to mark breakpoint changes.
Mistake 4: Inconsistent spacing
Problem: Spacing is set "by feel" without a consistent system.
Solution: Define a spacing system and apply it consistently. This can also be documented afterwards.
Mistake 5: Missing navigation specifications
Problem: Navigation is only shown visually, without details on hover effects, dropdowns, or mobile versions.
Solution: Think through the navigation thoroughly and document all interactions. Do not neglect mobile navigation in particular.
Conclusion: Investment in Quality Pays Off
A well-thought-out design handoff is an investment that pays off several times over. The time that designers invest in complete documentation saves developers weeks of work and leads to better results.
The most important takeaways:
- Completeness: Document all states, variants, and breakpoints
- Mobile-first: Do not neglect mobile designs
- Structure: Organize design files well
- Communication: Use comments and annotations for context
- Consistency: Define design systems and spacing systems
A good design handoff is like a detailed map – it not only shows developers the destination but also all the important waypoints and obstacles along the way. With complete documentation, developers can work efficiently and deliver high-quality results.
Have you had experience with design handoffs? Share your insights in the comments and let us know what information is most important to you!
FAQ – Frequently Asked Questions about Design Handoff
1. What information do developers need for a successful design handoff?
Developers need a well-thought-out Figma file or similar with color palettes, components in different states (hover, focus, disabled), typography definitions, at least 6 breakpoints (Bootstrap standard: xs, sm, md, lg, xl, xxl), spacing between components, as well as detailed navigation designs including mobile versions. Well-thought-out hover effects and a thorough mobile implementation are particularly important.
2. Why is the mobile implementation so important in the design handoff?
The mobile implementation is critical because many designers only provide desktop designs. However, developers need detailed mobile versions for navigation, component layouts, and interactions. Missing mobile designs lead to delays, as developers have to decide for themselves how elements should be displayed on small screens.
3. How many breakpoints should be defined in the design?
Ideally, 6 breakpoints should be defined, based on the Bootstrap standard: Extra Small (xs) <576px, Small (sm) ≥576px, Medium (md) ≥768px, Large (lg) ≥992px, Extra Large (xl) ≥1200px, and Extra Extra Large (xxl) ≥1400px. These breakpoints provide a precise responsive implementation and are proven, well-documented, and already understood by many developers. In practice, often only 2-3 breakpoints are provided, which leads to compromises in the implementation. More breakpoints mean more control over the layout on different screen sizes.
4. What does a complete component documentation include?
A complete component documentation should include all states of a component: default, hover, focus, disabled, active, error, and success. In addition, variants for different sizes, colors, or contexts should be documented. This allows developers to implement them precisely without having to ask questions.
5. Why are hover effects in navigation problematic?
Hover effects in navigation are problematic because they are often not well-thought-out. Developers need clear specifications for transitions, animations, dropdown behavior, and mobile alternatives. Missing information leads to delays and compromises in implementation.
6. What role does the color palette play in the design handoff?
The color palette is fundamentally important as it defines the visual identity. Developers need not only the basic colors but also variants for hover states, error states, success messages, and disabled states. A complete color palette with hex values or CSS variables makes implementation much easier.
7. How should a Figma file be structured for handoff?
A well-structured Figma file should have clear areas for the design system (colors, typography, components), spacing system, breakpoints, and page designs (desktop and mobile). Comments and annotations help to convey context. A logical folder structure makes it easier for developers to navigate.


















