Skip to main content
Question

Figma autolayout changes

  • August 27, 2026
  • 7 replies
  • 203 views

Kristaps_Stikuts

The recent figma autolayout update has brought up conflicting emotions. From one point it’s great that the autolayout would work closer to code, but on the other hand for teams that do more complex projects than Web UI, this creates a loooot of issues.
 

3 things in particular, that I know for sure, will break what we've been using in case of complex layouts:

  • "Padding now always gets the room it needs" - Often when necessary, I relied on the fact that you can set auto-layout frame size to 0 and add paddings inside to allow precise position of elements without affecting the size and position parent and sibling frames. Now that won't be possible.
  • "Inside strokes counting in autolayout" - again pretty sure this will break layouts where inside stroke was used.
  • ⁠"Stacks with gap set to auto no longer overlap" - A lot of cases it's better to have parent in the desired size than have the parent rely on the children. Then we will get uneven distances and paddings in some cases. 

All of this would be fine, except for the fact that the previous auto layout will be discontinued and there is no way to switch new auto layout to the old one for newly created frames, forcing us to rework previous layouts if we want to make new changes.

7 replies

adamsmasher
Figmate
  • Figmate
  • August 27, 2026

Hi ​@Kristaps_Stikuts - thanks for your post. I appreciate you providing some real-world examples of how this affects your workflow.

 

First, some good news: you can switch back to the previous auto layout version, including on newly created frames. This isn't going away for a while, either. Each auto-layout frame has a Layout setting in the Auto Layout settings panel which toggles between Latest and Legacy, and that option will be available until January 24, 2027. So for now, if a frame breaks under the new behavior you can flip it back to Legacy on a frame-by-frame basis (or use the Update layout version for selection/page action in the Actions menu to preview changes before committing). One thing to keep in mind, though: that toggle isn't overridable on component instances; only on frames and main components. If you're hitting this inside a design system, you’ll want to change this at the component level rather than per-instance.

 

To address the three specific behaviors you called out:

  • Padding/frame sizing
    • This brings it closer to code by matching how CSS border-box works: a frame can no longer render smaller than its padding (plus inside stroke width, if included). If you were relying on 0-size frames with padding for precise positioning, you might want to simply reduce the padding to bring it back to a particular size.
  • Inside strokes
    • Only inside strokes count toward layout now; center/outside strokes are visual-only. For this, you might want to try a similar approach that developers use with CSS: a nested spacer frame (an extra wrapping frame with padding sized to match what the outside/center stroke used to occupy).
  • Auto gap overlap
    • Gap in an auto-gap stack no longer goes negative; children pack tightly instead of overlapping. You could try setting a negative gap value manually since that is supported, rather than relying on auto-gap to produce overlap.

 

Hopefully those are helpful for you going forward, particularly since you have a lot of time to make the changes before the toggle goes away. Regarding the update itself, you can also read more about the changes in our help article on using auto-layout with CSS flexbox in mind. In the meantime, let me know if you have any other questions!


Kristaps_Stikuts

Thank you ​@adamsmasher for the response!

Tho I want to state that none of this really solves the issue. As I stated we don’t design standard web solutions, but rather game design, on which we don’t necessarily need to focus on CSS accuracy always, but we need to have precise positons and alignments in complex layouts. 

Again it’s good to have CSS accuracy but not at the cost of breaking everything built before.

We have a lot on our roadmap. And remaking everything based on a Figma update before new updates was not on it. We for sure do not have plenty of time to update.
That’s the reason I mentioned that it would be great to either always have the legacy option available, or have the 3 points i mentioned as a setting rather than set in stone “feature”.


anniewarner
  • New Participant
  • August 28, 2026

I can definitely understand the mixed feelings here. The changes make Auto Layout behave more like actual code, which is great for many UI workflows, but for complex design systems and non-standard layouts, that can remove some really useful flexibility.

The three changes you mentioned padding sizing, inside strokes and auto gaps could definitely affect existing layouts that relied on the previous behavior. The biggest concern for me is losing the ability to switch back to the old Auto Layout. Having a compatibility option for legacy behavior would make the transition much less painful.

 


Kristaps_Stikuts

@anniewarner, exactly. All that im asking is to either allow us to use legacy forever (not just til January 24th, 2027) or add them as settings in autolayout properties.


Ivan-Ravena
  • New Member
  • August 28, 2026

The new inside stroke behavior is the dumbest thing I’ve seen in a while, and risks breaking existing components that rely on previous behavior or opacity and clip combos, creating inconsistency between states system-wise. Now everything that used an inside stroke on a hover or selected state has a different size than its default one. Will have an awesome time changing hundreds of components and screens, thanks.


Kevin_Thuillier

This update absolutely does not match my needs. It has made Figma significantly harder and more frustrating to use.

Something as basic as resizing an Auto Layout inside a frame proportionally with K should be simple. Instead, it has become unnecessarily complex.

This goes against what I consider Figma’s original strength: being accessible and intuitive first, then allowing users to add complexity and specificity when they need it. This update seems to reverse that logic by putting edge cases, technical constraints and numerical controls first.

A tool that lets you proportionally scale absolutely anything — dimensions, typography, spacing, gaps, strokes, etc. — is one of the most fundamental things a designer needs.

Design is first and foremost a creative process. The tool should enable fast, instinctive creation first. The technical layer should come after, when needed.

Even Legacy Mode does not fully solve the problem.

For example, I have a horizontal Auto Layout with wrap enabled. I define the vertical spacing between rows, then try to resize the whole layout using K. The vertical spacing does not scale proportionally with the rest of the layout. Instead, it remains constrained by the numerical value that was initially entered.

That makes no sense.

When I scale a composition, the first thing I want to preserve is the ratio and visual relationship between all its elements, including spacing. I do not want an arbitrary spacing value to take priority over the proportions of the layout.

Scaling should mean scaling everything proportionally. It should temporarily override these fixed values, not be blocked by them.

This should be one of the simplest and most predictable operations in a design tool.

I’m genuinely disappointed to see Figma moving in a direction that makes such a fundamental design operation feel less intuitive and less immediate.


Kevin_Thuillier

I’m sorry maybe i’m missing something I need an explanation here, I’ve been in hell for a week since the auto layout update and i still can’t make it work properly. Please, help. If i make 4 frames at 1000x2000 for example, and i want to wrap them in an horizontal auto layout, how do I make it so it does not affect the size of my frame and the content inside the frame ? Right now the frame size change even when the aspect ratio is locked (moving all my content with it). I don’t understand how to even make it work properly. thank you for your help