TextureFull
Published on November 13, 2024
By
Pierrick Vauvelle
Responsive design in Figma - The ultimate guide

Why make your Figma designs responsive?

In today’s digital landscape, designing for multiple devices and screen sizes is no longer a luxury—it’s a necessity. As we move into 2025, users are interacting with products on an ever-expanding range of devices, from large desktop monitors to small, foldable smartphones.

Responsive design in Figma goes beyond aesthetics. It plays a crucial role in accessibility, performance and user satisfaction. By designing responsively, you ensure that your product and website remains accessible to a broader audience, minimizes loading times and provides a consistent experience regardless of the device used.

Plus, a growing number of plugins now allow you to export code from Figma or directly publish your website from Figma, like figma.to.website. Having responsive designs can save a lot of time down the line.

As one of the most popular design tools today, Figma offers robust features that make responsive design easier than ever allowing for adaptive, scalable designs without compromising aesthetics or functionality. Let’s dive in!

How to make your designs responsive in Figma

Figma offers a number of features crafted for responsiveness. Here is a list of all available features:

1. Constraints

Constraints are the foundational tool for making elements adapt to their container. You can set constraints like "left," "right," "center," or "scale" on individual elements or groups to control how they behave when the frame is resized. For example, setting an element's constraints to "left" and "right" ensures it will stretch horizontally when the frame is resized.

More about Constraints

2. Auto layout

Auto layout is a powerful feature that allows you to create flexible layouts that adapt to the size of the content within them. It adjusts the spacing between elements automatically and maintains alignment even when content grows or shrinks. This is especially useful for buttons, lists and containers that need to dynamically adjust to different content lengths.

How to apply auto layout

  • Select your elements: First, choose a frame, group or individual elements you want to apply auto layout to.
  • Add auto layout: Once your elements are selected, click the “Auto layout” button in the right-hand properties panel. You’ll notice the selected elements now have dynamic spacing between them, and the layout becomes flexible.

Adjusting auto layout properties

Once auto layout is applied, you can customize it further:

  • Direction: Choose between vertical or horizontal stacking of elements. This helps when creating rows (horizontal) or lists (vertical).
  • Padding: Set the inner spacing around the content. This ensures the right distance between the content and the edges of the frame.
  • Spacing between items: Control the spacing between individual elements within the Auto Layout. For example, adjusting this can help you manage how far apart buttons or text elements are.
  • Alignment: Choose how the elements should align within the frame—top, center, bottom, left or right. You can also distribute them evenly.
  • Resizing: Set items to resize automatically with the content. Choose between "Hug contents," where the frame adapts to the size of the content, "Fill container" for full-width elements, or "Fixed" for static sizes.

Adding content dynamically

After applying auto layout, you can easily add or remove elements. For example, you can duplicate buttons or text blocks, and they will be positioned and spaced correctly within the layout. This makes auto layout perfect for components that might need to change in size or content dynamically, such as forms, buttons or lists.

ℹ️ Check out these tutorial videos to learn more about applying auto layout to multiple elements:

📼 Auto layout wrap

📼 Using auto layout min and max values

More about Figma's auto layout

3. Resizing properties

Figma provides options to control how frames and components resize. You can choose between "Fixed Width/Height" for static elements and "Hug Contents" or “Fill container” for dynamic elements that grow or shrink based on their content or container. This is particularly useful for text elements, buttons or cards that need to adjust their size according to their environment.

More about resizing properties

4. Figma Variables

In Figma, Variables allow you to store design values like font size, spacing, colors, and more, making it easier to create responsive designs across different screen sizes. Here’s how you can leverage them:

Create variables:

Go to the variables panel, create a variable set (e.g., “responsive sizes”), and define variables for properties like font sizes, spacing, padding, or breakpoints. For instance, create different font sizes for desktop, tablet and mobile.

Apply variables to design elements:

Once you’ve set up your variables, you can apply them to text, frames, or components. Instead of setting static values (e.g., font size 16px), bind the text size to a variable (e.g., font-size-desktop, font-size-mobile). Do the same for spacing and other properties.

Switch between variables for different screens:

Use the “Mode” feature to switch between variable sets. For example, when designing for mobile, switch to the mobile variable set, and all linked values like font sizes and spacing will automatically adjust to the predefined mobile values.

ℹ️ Note: figma.to.website will automatically use these different mode variables to switch between devices, which Figma Prototype currently cannot.

More about Figma Variables

5. Component variants

By using variants, you can create multiple versions of the same component for different screen sizes or states (like desktop and mobile). This allows you to switch between these variants easily while maintaining consistency in design. It's an effective way to manage responsive elements without duplicating them.

Here is how to get started with component variants in Figma:

[1] Create the base component:

Design the component (e.g. a button or card) and convert it into a component by selecting it, right-clicking and choosing “Create component”.

[2] Add variants:

Click “Add variant” in the right-hand panel to create multiple versions. Each variant represents a different screen size or state (e.g. desktop, tablet, mobile). You can add as many variants as needed.

[3] Customize each variant:

Adjust the layout, size and styling of each variant to suit different screen sizes. For example, make the mobile version more compact with smaller buttons or less text.

[4] Define variant properties:

Label the variants with properties like “Desktop” or “Mobile” to make switching between them easier when working in different layouts.

[5] Switch between variants:

Drag the component into your design and choose the appropriate variant in the right-hand panel under Instance. You can quickly switch between the desktop, tablet or mobile versions as needed.

More about component variants

6. Grid layouts

Grids are a great way to ensure consistent spacing and alignment across various screen sizes. Figma allows you to set up columns, rows and gutters within your frames to maintain proportion and balance. You can combine grids with constraints to create layouts that adapt smoothly to different breakpoints.

More about grid layouts

Try these responsive design techniques in Figma!

As we've explored in this guide, making your designs responsive in Figma is not just a best practice—it's essential for creating modern, user-friendly digital products. By leveraging Figma's own features like constraints, auto layout, variables and component variants, you can ensure your designs adapt seamlessly across various devices and screen sizes.

Once you’ve made your website designs responsive in Figma, you can then publish them to the web in a click with figma.to.website. It provides the perfect testing ground to see if your designs are truly responsive in the browser, without investing in extensive development time or additional tools. You’ll have a live, responsive website just using Figma!

Thanks for reading :)
Made
with