Sneak Peek: Stack Layout

Hi everyone! We’ve not been shy about the fact we’re working on a new layout feature akin to Figma’s “Auto Layout”, XD and Framer’s “Stacks”, and Penpot’s “Flex Layout”. Earlier this summer we’ve put out a call for feedback here in the forum, and we’ve been hard at work at it since.

Today, I want to give you a sneak peek at this upcoming feature.

We don’t do this often, and I want to make very clear this is an incomplete and non-polished development build, with rough UI, missing features, experiments that may not ship, etc.

That out of the way, sound on :speaker: as I’ll walk you through it:

The keen-eyed among you may have noticed the lack of a wrapping control. Most likely wrapping won’t be available at launch, but we hope to bring it in a future update. The same may be true for things like negative gaps, aspect ratios, and more advanced customizations. As I said in our call for feedback, we won’t be doing everything, and it’ll take time to go all the way. This is the start.

As you can tell, we’ll be calling it stack layout / stacks. We think stack is a nice short word that works well in writing/speaking, and describes the layout arrangement well (other tools agree).

However, there won’t be a beta this year. Explaining why requires us to take a deeper look at what building this feature really entails, but also includes a teaser at what’s coming next.

So, let’s get into it.


The layout aspect of stacks — that is, placing and sizing the layers automatically based on the settings you chose, as you change settings, edit and delete layers, or add new ones — is just one piece of the puzzle. The central piece, no doubt, but layout isn’t enough on its own.

You often also want control over the container itself, namely its style and sizing. Our two main container primitives — groups and artboards — are very restrictive about those aspects: groups are auto-sized and style their contents, artboards are fix-sized and can only have one solid fill. Neither works for stacks, but we don’t want to make a new, more capable stack-only container.

Making a new stack container type would be too narrow in purpose, which is a poor investment of our limited resources, puts people in a bind (“I want this container to have a background, but I don’t want it to be a stack”), and creates new problems we have to solve (e.g. what happens if you remove layout from a stack with a fixed size and a background?).

So we need a more capable container, which stacks should then complement with layout, and that’s exactly what we’re going to do. We’re going to take artboards from what they are now — root-level containers with limited styling — and evolve them into nestable containers with full styling and layout support, which you may know as “frames” in other tools. We see them as the primitive for interface work in Sketch going forward, on their own or with stack layout applied.

You may have already seen some results of this work in the v102 beta, which introduces styling for artboards (and symbol sources). But the work runs much deeper than styling, as we need to consider hierarchy, selection, parenting, constraints, prototyping, and more.

This evolution of artboards is why there won’t be a beta now, but I hope you can see it’s for good reason. It’s not a trivial effort, but we think now is the time to do it, and it’s what it takes to bring you a great stack layout feature, rather than a half-assed version built on unsuitable foundations.

We‘ve got lots to do, and I’m super excited about what all of this means for doing interface work in Sketch. As always, I’ll be happy to answer questions and hear your feedback.

31 Likes

Really excited about this, thanks for the detailed explanation. It’s helpful to read about the team’s approach to the development of this feature. Obviously it’s not as simple as flipping a switch but walking us through the thinking and evolution of artboards is helpful context. I also appreciate the approach of giving smaller artboard enhancements as you lay the foundation for stacks and not waiting to deliver it all at once.

I’ll spend more time reviewing the demo and post feedback as it comes. Thanks again! Excited!

5 Likes

I’m really excited about this. Can’t wait to implement it into our design system. I watched the video and I think you have developed everything we need. I didn’t find any questions to ask or features to add (: Thanks for the hard work.

6 Likes

This is :fire:! I can’t wait for it.

5 Likes

Wow, this preview video is awesome! The “Stack Layout” looks incredible, and the design is so well done with the latest Sketch UI. Big props to the team—amazing work!

4 Likes

This is so great to watch, thanks for being so public with the process! This is a masterclass on how to design software and should really be available in design schools to follow along. I’m enjoying watching the process as much as I’m looking forward to try these features.

6 Likes

This looks like a really great addition! With Adobe discontinuing XD, my team was in a quagmire. I didn’t want to move to Figma and its pricing structure, so I had been considering PenPot, but their progress toward a usable component system was non-existent. So, after a year of holding out on making a decision, I ultimately decided to try out Sketch and I’m not at all disappointed. In fact, there is much about it that I like more than XD. Great job!

10 Likes

Let us know if your team has any questions while getting set up with Sketch! We’d love to help where we can :pray:

1 Like