Spend more time on creative design work.
I will show you today how to automate mundane tasks like frequent artboard export with a little tool that comes with Sketch (which you can use to do even more advanced things).
(Pssst: blended.io will launch two workshops: Version-Controlled Sketch for Skillful Designers & Design Teams and Git for Marvellous Designers)
Once you have build up your layouts and visual designs in Sketch, you probably have more than 1 dozen artboards. All steps involved, ie. minimising the layer tree, selecting artboards, exporting 1x, 2x and 3x separately takes too much time, especially if you keep redoing this procedure frequently.
Luckily, the guys @bohemiancoding, the creators of popular design tool Sketch, started with “the end in mind”. In fact, Sketch has a CLI (short for command line interface in the dev world) called Sketchtool.
If you have Sketch installed already, skip to the next paragraph. Otherwise download Sketch first and then continue with the very next step.
How to install the Sketch command line tool, Sketchtool
The CLI cannot be installed as you would normally install a program. But hey, we want to learn something here, right? So, let’s tip our toes into the dev world. It will be pretty cool.
A couple of things for context and understanding
Making the install
MBP:/ andree$
or MBP:~ andree$
. MBP
refers to the name of your Mac and andree
is the username of your Mac account (the one you log-in with)sudo sh /Applications/Sketch.app/Contents/Resources/sketchtool/install.sh
and hit RETURN (keep in mind that in later version that file path above (/Applications/…
) may have changed)You should now see a text output like this (as of version 3.8.1):
Screenshot 1: After installing Sketchtool.
Once that is done, type in sketchtool
in terminal and hit RETURN. You should see exactly what is shown below.
Screenshot 2: Sketchtool is successfully installed and shows what commands can be executed.
The Sketchtool is now installed and you can use it from any folder on your machine. Let’s start with the cool stuff!
You will need
.sketch
file with more than 4-5 artboards within that project folder (Finder may not show the file extension .sketch
)Note: Hit me up on if you have a question via Twitter @andreehuk
Having a terminal window open, a blinking cursor indicates that you are basically “sitting” in some folder on your Mac. You can use the command cd %folderName%
to switch to other folders. %folderName%
stands for the name of the folder that is shown in Finder. Now, in order to keep this very simple and straight forward, the Mac offers a trick for non-developers to easily switch between folders in terminal:
cd
and add a space
Screenshot 3: Click and drag that folder item over into terminal.
Screenshot 4: I have dragged over the folder into terminal, the folder path appears after _cd_
.
Screenshot 5: After hitting RETURN, I am now located in “test-project” as shown at ‘MBP:test-project andree$’.
Note: Whenever you see $
, that basically implies that whatever follows is a command to be typed in Terminal.
Pro Tip: In Terminal, hitting cursor-up will show the previous command.
By executing sketchtool
, the terminal will reply by showing help about Sketchtool
, for example:
Export artboards
Export layers
Export pages
Export slices
The command to export (default: directory where the .sketch
file is located) all artboards is as follows:
$ sketchtool export artboards %fileName%
Replace %fileName%
with the name of your Sketch file, in my case:
$ sketchtool export artboards layouts.sketch
The previous command will export all artboards in 1x (default) and will list each name in terminal.
Pro Tip: If you want to type in a file or folders, type the first character and hit TAB. Terminal will auto-complete the filename. If you have >1 files that start with the same first letter, terminal does not do anything because it does not know what file you meant. Just keep on typing the next character and hit TAB again. Voilà.
What about exporting 2x or 3x? Yes, that is also possible. Type:
$ sketchtool export artboards layouts.sketch --scales=2x
$ sketchtool export artboards layouts.sketch --scales=3x
You can change the 2
or 3
for any number, Sketchtool automatically adds the scale to the end of the filename. Awesome. I have myself not tried anything above 10
as that already took ages to export.
If you do not want the artboard to be exported within the artboard dimensions but only objects that sit on those artboards, you can run the command below. It will trim all artboards down to the smallest rectangle possible, sort of like double-clicking a layer in Photoshop (which then sets the marquee around objects in the document).
$ sketchtool export artboards layouts.sketch --trimmed=YES
If you would like artboards to have a background color, simply run:
$ sketchtool export artboards layouts.sketch --background=white
You can substitute white
for other colors, like black
or else. In fact, Sketchtool exports artboards with any background color you want, but it has to be described in HEX code, see this.
Pro tip: You can combine commands for --scales
, --background
or else.
In order to save even more time, I have written a super lightweight script ‘e.sh’ that exports all artboards in 1x, 2x and 3x with a transparent background (default). Download the script here and copy it into your Sketch project folder (either through terminal or Finder).
Once the script is in your project folder, simply run
$ sh e.sh %fileName%
I have kept the script name short for the purpose of less typing.
Pro tip: Exporting all artboards at once on steroids
If you do not even want to add the filename to the command every time, open the script in any editor like TextEdit or through terminal (command below) and exchange $1
with your .sketch
filename. Granted that you are in the project folder in terminal, you can simply run the following command to export the artboards in 1-3x for the current project. If you have >1 .sketch
file, simply open the script and copy+paste the Sketchtool commands and change the filename accordingly.
Thanks for reading. We at blended.io are incredibly excited and passionated about the potential innovative leaps for software design and engineering in fintech, investtech and industry 4.0. Get in touch!
Get hands-on articles about innovation, experience design or engineering! No spam and worthwhile content only.
(Pssst: blended.io will launch two workshops: Version-Controlled Sketch for Skillful Designers & Design Teams and Git for Marvellous Designers)
Originally published at blog.blended.io on February 20, 2017.