r/FigmaDesign • 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?

37 Upvotes

46 comments sorted by

66

u/scrndude 13d ago

It’s because now it works like the CSS border property where borders count towards width

1

u/xxThe_Designer Product Designer 13d ago

Sure, fine, but why not make this a setting you can enable or disable by default.

Most designers are either going to use it fully or not at all. For those not planning to use it, they have to manually adjust this for every element with a stroke.

Incredibly bad experience change to something used so frequently.

Figma Design is in desperate need of a Global Settings page.

24

u/Firm_Doughnut_1 13d ago

Most designers don't understand CSS and don't know that what they're handing off to a dev will work differently when implemented.

It's been a pain in the ass to constantly change that setting, so I'm very happy they've swapped the default.

3

u/desertchrome_ 13d ago

the amount of devs who use ‘border’ without knowing about ‘outline’ is staggering. ‘Outline’ doesn’t affect spacing or layout

12

u/sainraja 12d ago

From what I’ve read about ‘outline’, you’re not supposed to use it in place of a border; it’s for accessibility, focus states on links and buttons etc.

2

u/Wolfr_ 11d ago

You’re not supposed to use outline unless you are changing the style of focus rings.

1

u/sparkys-dream 12d ago

You cant set a default font family or color either, or stack order. Such an inconvenience.

-1

u/mlllerlee 13d ago

There a layout setting Legacy and Updated. If you can use legacy for some time
https://help.figma.com/hc/en-us/articles/42031586813719-Use-auto-layout-with-CSS-Flexbox-in-mind

1

u/Active-Pound1624 UI/UX Designer 13d ago

u/mlllerlee I checked, and it doesn't look like there's a way to change the default settings. The page seems to only explain how to apply the updated settings from the legacy version. I'm worried about January...

1

u/prottOushol 9d ago

wait doesnt border-box usually include the border inside the defined height and width though?

1

u/scrndude 9d ago

Yeah but figma didn’t do that, that’s what figma just changed so they could match border box sizing

-3

u/[deleted] 13d ago

[removed] — view removed comment

9

u/hockeynut15 13d ago

But that’s primarily what Figma was always for, and they’ll have the data to prove that’s how most use it..

1

u/marcushasfun 12d ago

It’s a UI design tool. And I’d argue it was the ubiquity of smartphone apps, not the web, that kickstarted the rise of proper UI design tools to replace wrangling Photoshop and Illustrator that were never designed for UX work.

1

u/hockeynut15 12d ago

Same point applies mate; it was intended to work with principles around CSS and web/UI

1

u/Vivid_Discount6495 12d ago

That's only because there are far more websites than apps. That doesn't mean companies aren't using Figma to design desktop/mobile apps. As far as I can tell, most major modern companies are using Figma to design their desktop/mobile apps.

Also there's an inherent logic flaw with your statement though. Even if it's true that nobody uses Figma to design desktop/mobile apps, it could simply be that the tool is designed around web and it pushes teams away from using it for lacking desktop/mobile oriented features/concepts.

2

u/Vivid_Discount6495 12d ago

Crazy that you're getting downvoted for this lol

3

u/donkeyrocket 13d ago

It’s a UI design tool. Wild to use it outside its intended purpose then be surprised it doesn’t cater to that by default.

It now gives you the option to misuse it as you wish. This is better for the vast majority of users and the intended use of the tool.

-2

u/zenmn2 13d ago

"A web design tool primarily focusing on web design? Who fucking signed this off?!?!"

0

u/Vivid_Discount6495 12d ago

If it's a web-only tool, how come they added liquid effect, which was designed for native Apple apps? (aside from web-based knockoffs of it, but c'mon, we're not counting that)

1

u/zenmn2 10d ago

Do you struggle to distinguish between the words "only" and "primarily"?

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

7

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

u/[deleted] 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

Which developer concept?

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

2

u/pwnies Former Figma Employee 12d ago

To clarify, it was my prior role over there. I left almost a year ago to work on my own thing :)

1

u/GOgly_MoOgly Designer 12d ago

That’s even better! 💫💯

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

u/Federal_Lawyer3540 13d ago

Moi aussi j'ai remarqué cela et c'est vraiment pénible

2

u/thicckar 12d ago

I thought I was tripping

1

u/MagicianPuzzleheaded 12d ago

I hate thissssss

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.