Struggling with the new Stacks

The new Stacks layout is great in many ways and it’s something I’ve been wanting for a long time!

However, I’ve been struggling with many of its quirks, which I expect to just work, specially being also a web developer and noticing that it’s still a bit far from being 1:1 to Flexbox.

Overrides

Replacing symbol overrides that don’t have the same dimensions will simply distort them, if they don’t share the same aspect ratio.

I understand that this somehow clashes with this issue, but I don’t think that forcing a full resize isn’t the best behavior either.

Please, give us options to control what to expect, ideally all the following:

  • Resize to match original override or just one of the sides, using the same logic as CSS’s object-fit (The current behaviour matches fill).
  • Keep original size of the new override.
  • Resize to match just width/height of the override, forcing the other dimension to resize as needed. (Similar to the contain/cover of first option, but now one side is explicitly chosen by the user).

Negative spacing

I’m pretty sure this was mentioned before, but please add support for negative paddings and (bring back) negative spacing between layers.

Custom offsets for individual children

Sometimes, I want to use the alignments, but want to offset some individual layers, while still benefiting from the automatic alignment.

For example, I might want to make a button with icons in it, but I might need to visually align the text 1px up or down, or because the text’s line height is an odd number while the icons have even numbers, and I don’t want either of them to be aligned in half-pixels.

Hi Oscar,

It’s good to see you back here. Thanks for sharing the screenshot.

Your Overrides question fits this post better. The one you referenced is about how to preserve dimensions when swapping, whereas you want the opposite: swap with the new size.

This is a change introduced in version 2025.2. Before this version, when you had nested symbols inside a stack, you’d swap with the dimensions of the target symbol.

The change was done to unify swapping behaviors, we used to have two:

  • Preserve dimensions when swapping outside stacks
  • Use new dimensions when swapping inside stacks

In 2025.2 and later versions, nested symbol overrides will now swap keeping the original symbol dimensions. In this case, since the size (and ratio) are different, the symbol will stretch or squish.

So, how to get the size you want? You need to add layout to the symbols you’re swapping. The team has discussed this change thoroughly and we know there’s room for improvement. We’ll get there. But for the time being, adding layout gets you the result you want.

Swap different ratio symbols.sketch (38.7 KB)

This covers bullet points one and two (behavior wise, we’re aware of the differences with flexbox).

About point no.3, we’ve also discussed it, and I’ll pass this along to the team so they’re aware of the interest.

Negative spacing

Negative spacing is currently not supported in stacks, the team’s aware and tracking interest here

Just for the record, negative spacing in layers has always been possible outside stacks.

Custom offsets for children

You can get custom offsets by wrapping child elements in a new stack. You can add as many nested stacks as needed. If you run into any issues, you can share a screen and I’ll take a look.

Overrides

I really think it was a bad move to just change the behavior without giving options to the users. As you can see in the post you mentioned, the other user is also dissatisfied with this change.

About the example you gave in the video, I understand you’re trying to help here, but unfortunately that doesn’t solve my problem, it just introduces another, since the spacing and left padding is now incoherent between instances.

Thank you for the time you took trying to find a solution for me, though. :wink:

Negative spacing

By being possible outside stacks, you mean manually? Because I can’t find the spacing controls inside groups (or regular frames without stacks) anymore. Just when selecting multiple layers, which honestly doesn’t help me much, since I want to keep spacings automated.

Custom offsets for individual children

That’s what I’ve been doing, but yeah, it’s hacky and introduces noise. I hope the team finds a better solution in the meantime.