5 Little Feature Requests from a Sketch Power User
Just to make our lives (and our friends’ lives) a little bit easier.
First off, this is not a passionate memoir about what Sketch is doing wrong, or “how dumb their product team is for not having thought of these things already”. They’re doing so many things right as it is, and I continue to be impressed with each new version.
This is just a little list of ideas I’ve collected after talking to lots of Sketch users, designing thousands of screens, and writing long tutorials.
If you’ve read any of my articles or seen my side project UX Power Tools, you’ll know that I’m all about efficiency. Symbols, Styles, Hotkeys, Templates…basically anything that makes me a little bit faster, a little bit smarter, or a little bit more consistent.
So these ideas seek to bolster those aspirations. Maybe I’ll print out this article and mail it to Pieter Omvlee with a crisp $5 bill as extra encouragement…Side note: Would that revenue still be reported?
I did my best to rank these in increasing order of difficulty, but who knows, maybe they can bang these out over a weekend 🙃 (cc: Ale Muñoz)
1. Resizing Option Menu
Exciting Update: I was just messaging with Ale Muñoz at Sketch on Twitter DM and he confirmed that this feature is coming in Sketch v45! Here’s how it’ll look:
The new resizing tool in Sketch 44 is fantastic, but I immediately started missing my hotkeys:
Control+1 → Stretch
Control+2 → Pin to Corner
Control+3 → Resize Object
Control+4 → Float in Place
I recognize that the new resizing tool is more sophisticated, so these old hotkeys didn’t translate. However, I do think that you could add a resizing menu somewhere in the app menu with all of the new options:
This would at least allow us power users to add custom hotkeys using the OSX keyboard shortcut builder.
2. Border Control
And I’m not talking about Donald Trump’s wall 🙄
There are lots of native workarounds to help accomplish this already, but adding border control support would aid in dev handoff because edge targeting is already commonplace in CSS.
Perhaps there are larger ramifications that I’m missing, but a simple border syntax like the one we already use for border radius would be rad:
3. Eyedropping Styles
Note: You can already copy and paste all attributes from one layer to another using Command+C to grab the source attributes, then Command+Option+V to paste those attributes onto your new shape. An eyedropper would just add another layer of efficiency, and ease the transition for Illustrator converts.
Edit: You can also grab source attributes with Cmd+Option+C. Thanks, Cory!
Illustrator had this handy little eyedropper that would replicate all of the styles from one layer to another. It worked on shapes, it worked on text, and it pulled all of the attributes of the target layer.
Now, I don’t always want this to happen. It’s nice being able to grab a single color. But I’d love if there was a modifier key I could press that would allow me to eyedrop the entire object to grab all of its attributes.
The eyedropper tool can be invoked with Control+C right now, and it’d be awesome if I could hold Option or Command while I eyedrop from a layer to copy over all of the attributes of that layer:
In the above case, holding Option while using the eyedropper tool would copy the pink fill color and the black border. Bonus points if this works on text, too.
4. Style Overrides in Symbols
I’ve written many times before about the importance of using Layer Styles and Text Styles. My entire design system is built on them, and they allow me to update colors and fonts across hundreds of artboards in like…2.9 seconds. No ifs, ands, or buts about it — using styles throughout your design file is an absolute best practice.
And I think Sketch can encourage this behavior by supporting style overrides inside of symbols.
If you’ve read my button article, you’ve seen the technique where I use text symbols to enable me to swap text colors in my symbols. You can see that working in the GIF below:
A Better Way to Make Buttons in Sketch
Buttons like you’ve never seen them before! Probably.
This is fine. And honestly, it works! But it’s a real pain in the ass to set up, because I have to create text symbols using each of the text styles that I already have configured. It’s needlessly duplicative.
It would be amazing if Sketch would allow you to override text styles inside of a symbol.
Here’s how it would work:
- User builds a button symbol using some text and a rectangle.
- The text is styled using a saved Text Style.
- The colored rectangle is styled using a saved Layer Style.
- Because those two layers are tied to saved styles, the user can override them in exactly the same way they would override a nested symbol.
Just like Sketch only allows you to override nested symbols with other symbols of the same dimensions, they could enforce similar rule(s) with style overrides and require a consistent naming convention. That is:
…can only be overridden by other styles starting with…
Knowing how high up the style naming tree they should go may be a challenge, but they could just throw their hands up and allow any text style to be used, and it’s just on the user if they pick something that looks bad.
Lastly, there’s no reason this couldn’t also work for layer styles. Remember that rectangle we made in our button and colored using one of our layer styles? I should be able to swap this color with another layer style.
Why require the user to use saved styles at all? Why can’t I just make local changes to text and/or color attributes?
Because Sketch can actually track saved styles — they’re already JSON objects. Overriding nested text with completely new attributes would seriously bloat the file, because every object would need to support the potential for one-off changes to a multitude of text or layer attributes.
5. Shared Symbols from External Documents
Here’s a humdinger for all you Adobe folks. You know how you can insert linked artwork into an Illustrator document using File>Place?
Wouldn’t that be dope inside of Sketch?!
It opens up all kinds of doors:
- Branding folks can now maintain all logos and branding assets in a single Sketch file. Product designers can pull those logo symbols directly into their UI files, and it’s referenced as an external asset.
- Visual designers can now maintain that coveted “single-source-of-truth” with regards to the product style guide.
- Illustrators can operate independently of product designers as they work through things like website imagery or empty state artwork. Product designers would just insert a reference to the external illustration symbol, and it would update live (or at save time) as progress is made.
“But we have Craft Library!” they cried.
Yeah, we do. And shared libraries like this work well.
I’m actually a very strong proponent of Brand.ai, and there would still be a place for them, especially given the way they handle nested symbols.
But I think the use case for external symbols and linked assets is different enough that it would give way to some very clever techniques and processes. I wouldn’t be surprised at all if it ended up being reasonably attractive to illustrators and brand designers who are still holding out in Illustrator. It’s a completely untapped design audience who currently operate completely outside of the product design pipeline.
Brand and product have grown closer than ever, and streamlining this asset handoff would save lots of clipping mask headaches when logo SVGs are imported into Sketch.
Brb, deleting all of those.
Anyway, these are just some ideas that’ve been floating around in my dumb head for a while. Each one creates tremendous efficiency gains for different people at some point in the design process.
I think if Sketch can build features that support the other people involved in the product design process, then they’ll attract more users. More users…more money. I’ve already seen a respectable number of logo designers doing their work in Sketch…why not more?
When I’m not trying to make Sketch faster, I’m working on Sketch design tools at UX Power Tools to make you a better, more efficient designer.