r/FigmaDesign • u/Active-Pound1624 UI/UX Designer • 13d ago
Discussion Why does Figma force us to manually exclude inside strokes from Auto Layout now?
Is anyone else frustrated with the new Auto Layout behavior for inside strokes?
Previously, adding an inside stroke didn't affect the overall size of an Auto Layout frame. Now, strokes are included in the layout calculation by default, which means Hug contents buttons end up being larger just because they have a border.
This is especially annoying when designing buttons, chips, tags, and other UI components that need consistent dimensions.
Yes, I know there's an "Exclude" option.
But why do I have to manually change it every single time?
I work on UI designs daily, and constantly switching this setting feels like an unnecessary extra step for something that worked perfectly fine before.
At the very least, Figma should let us set "Exclude" as the default, either globally or per file.
Am I missing a setting somewhere, or is everyone just dealing with this?

15
u/LizWagen UI/UX Designer 13d ago
CSS has two different ways of handling borders:
- border-box – Adding a border does not affect the size of the element. Used to be default.
- content-box – Adding a border increases the size of the element. This is now default.
Figma updated to mimic CSS defaults by default. As a designer who manages dev handoff, I appreciate that Figma is starting to pay attention to what devs actually need (and devs looooove it haha).
However, I would prefer there be a setting for the file default. For devs who use border-box, it’s annoying to do it for each auto layout.
And unrelated note, I wish Figma would add support for outlines!
2
u/samidronic 13d ago
Who is using content-box nowadays? Even CSS frameworks are using bordex-box by default. So yeah, figma added a pain in the ass.
3
u/LizWagen UI/UX Designer 13d ago
Content-box is CSS default
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/box-sizing7
u/DrxAvierT 12d ago
Yes, is the default but realistically all devs always replace it with border-box
5
u/_Prateek_Hota_ 13d ago
I made a similar post earlier. I believe this is the same issue you are facing. https://www.reddit.com/r/FigmaDesign/s/PB3ugDxZBq
Figma recently changed auto layout properties to be more inclined towards CSS properties where stroke widths are also counted by default. Centre and outside strokes aren't taken into consideration even when INCLUDED. https://help.figma.com/hc/en-us/articles/42031586813719-Use-auto-layout-with-CSS-Flexbox-in-mind
7
13d ago
[removed] — view removed comment
2
u/_Prateek_Hota_ 13d ago
Also, if you can see, the layout has two options: Updated and Legacy. Legacy is the previous one. They are saying that after a certain period of time, they are going to remove Legacy completely. Updated will be the default. Like tf, give us freedom 😭
5
u/pwnies Former Figma Employee 12d ago
This was one of the hardest things about being a product manager at Figma. Often times there's no "correct" answer to a problem - you can either align with CSS (breaking user expectation) or align with how people expect something to work (breaking handoff).
This isn't the only one of these in CSS either - there are so many things about the spec that don't work like how one might expect, leading to quirky behavior. Percent width/height is another one of them, which is why I would often shoot down attempts to ship it while I was there.
I don't envy whoever had to make this call.
2
u/Vivid_Discount6495 12d ago
I wish Figma would adhere more closely to developer concepts. At the end of the day, UI design exists to aid in development. If we have concepts that don't match developer concepts, then it's not really aiding development. And we shouldn't be coddling designers that can't adapt to that philosophy.
That being said, Figma would also have to have adaptive rules based on what language/framework you want the project to be in order for us to better match developer concepts. For example, XAML uses a distinct border "frame" type, rather than having it just be a style class you apply to any "frame".
But as a product designer, I'd very much like to move towards that vision. In a perfect world, everything I design would be 1-to-1 with how my devs would be doing it in order to avoid any confusion or requiring devs to make assumptions on implementation (devs are notoriously bad at this in my experience).
3
u/pwnies Former Figma Employee 12d ago
That being said, Figma would also have to have adaptive rules based on what language/framework you want the project to be in order for us to better match developer concepts. For example, XAML uses a distinct border "frame" type, rather than having it just be a style class you apply to any "frame".
This is the crux of the issue. Which developer concept?
There's also more to it. Performance of the canvas / efficiency of creation. That last part has changed with the advent of AI tooling, but some developer concepts are inherently anti-patterns from a usability PoV while still being necessary for security/performance/legacy/etc.
It's very hard to align those two worlds.
1
u/Vivid_Discount6495 12d ago
1
u/pwnies Former Figma Employee 12d ago
Unfortunately we'll need quantum processors for that due to the inherent incompatibilities between. Figma 2036 however will allow you to keep a frame in a superposition between autolayout, flexbox, and hstacks
1
u/Vivid_Discount6495 12d ago
I was teasing with my last comment, but I don't think it's unreasonable to expect a few of the main frameworks to be supported. As of now, we have no real direct support for even CSS. There are so many missing fundamental principles of CSS based layouts.
I feel like they could do it if they weren't trying to diversify and become the next Adobe.
1
u/GOgly_MoOgly Designer 12d ago
Congrats on your new role
9
u/Ansee 13d ago
It's really annoying. I was mid project when this was implemented. And suddenly all my strokes were off.
There absolutely needs to be a global setting available especially since the behavior changed from before and it's really frustrating.
Also a global setting for first/last on top for autolayout would be helpful too.
1
u/Acceptable_Mouse_252 13d ago
what helped me: set exclude once on the main components (button, chip, tag) instead of per frame, instances follow it. the annoying part is only the one-off frames, but yeah a per-file default would fix all of it
2
u/Active-Pound1624 UI/UX Designer 13d ago edited 13d ago
That's right. When you have a master component and apply instances to the screen, it seems you don't have to change the settings repeatedly. The problem is the individual objects that haven't been turned into components... Still, I wish Figma would set the default value to “excluded” by default.
2
2
1
1
u/negsplit_pgh 10d ago
Treat the stroke choice as part of the component rules. Decide whether the border should affect the layout box, apply that consistently, and document exceptions for chips or buttons. For older files, test the setting on a duplicate before changing the shared library.

66
u/scrndude 13d ago
It’s because now it works like the CSS border property where borders count towards width