How to create a Design System in Sketch
Let me show you the foundations that need to be laid to start building up a powerful Design System
Part One: Laying the Foundations
Ok. So recently I tried my hand at building out a Design System in Sketch. It was time-consuming. It was enjoyable. It was occasionally frustrating, but boy am I glad I did it.
Now having a Design System (it’s called Cabana by the way) in place has increased my workflow ten-fold, and given me a strong foundation to build on when diving head-first into any project.
Inspired by other Systems I’d come across, I was amazed at the time-saving something like a system could bring into my daily workflow. I may have rambled a little in my last post, but really it has increased the speed of my workflow massively, and it’s nuts I didn’t bring one into my workflow at an earlier stage. Ker-raaazzzy!
Now, as is the custom, there are Naysayers out there who scream from the rooftops “But you have to change 4 Symbol Overrides just to style a button. I’m just not cool with that”, and I’m inclined to agree with them……….. to a point.
When you first start working with a new System in Sketch you may find yourself (in the first couple of run-throughs) slightly hindered, because it is a different way of approaching a project inside of Sketch, and something a little different than you’ve maybe become accustomed to.
But honestly, believe me when I say, once you’ve thrown off those Design System training wheels (which I promise you wont take long), you’ll find yourself working on auto-pilot, moving swiftly through a project, and it will seem like second nature to you.
I like to call it ‘Sketch Zen Cruise Control’.
Trust me. Once you’ve brought a Design System into your life this Xmas, you wont want to go back to your old way of designing in Sketch…
- Open Sketch
- Stare at a blank screen (I call it ‘Blank Screen Syndrome’)
- Grab some icons from someplace
- Go through the rigorous process of creating Symbol after Symbol
- Set up some Layer Styles, and then a few more, and then some more
- Then actually make a damn start on the project!
- Look at the clock and go “Oh where did all that time go. Time for sleepy-land.”
Ok. Let’s get to it, and let me show you the foundations that need to be laid to start building up a towering structure of awesomeness called a Sketch Design System…
Start with those Colors…
With Cabana, and with any system that you create, you need to use the bare minimum of colours when possible. Granted you can use tints and shades, but for the actual base colors keep things to a minimum. Not too dissimilar to too many chefs/fonts spoiling the broth the same can happen with colours if you go too crazy.
The whole point of creating a design system in the first place is to have a refined library of elements and styles that keep things much tighter when working on any project. A point of reference that keeps you away from the dark side of working with 12 different colours and a multitude of slightly different font sizes from one screen to the next. I’ve been guilty of it in the past. I think we all have.
So with Cabana I kept to a universal structure of Primary, Secondary, and Tertiary colours. No more, no less and enough to adapt to different projects when required.
And of course the obligatory Black, 2 shades of Grey, White, and a White at 50% Opacity to act as an Overlay for elements such as icons.
Then the default colours of Red, Green and Yellow for Success, Warning and Error Notifications be that as a background colour for Notification badges, text on a form, or borders on a text field.
Once I had the Base Colours in place, I could then simply take some of those colours ie; Primary, Secondary, Black, and create a simple Colour Overlay at 60% Opacity which could be then applied to any images in a project, and this was as simple as taking the Hex Value from my Base Colours, applying it with a 60% Opacity and creating a new Shared Style ie; Overlay/Primary.
… and now for the Typography…
When creating Cabana, and this really goes for any project you’re working on. Stick to the 2 Font Family rule (max). One for headings, and the other for Body copy. There’s times when ‘that’ 3rd family member can get invited round but you need to give them a chair by the door.
I chose Poppins and Open Sans due to the fact that they complement each other really well as base (starter) font families.
There’s really no right or wrong way to set this up initially, as you’re going to adapt the Typography to the project at hand, but for example initial prototyping they work well for the purposes they’re serving (headings, body) and take a back seat without too much distractions. I feel if you started with for example a Serif font such as Merriweather, they distract from the off if your sole aim was to use a system like Cabana for purely Prototyping purposes.
Starting with the Poppins Font Family. I started with the Uber font style. This is not a font style that will be used the most of those available but I know from experience that when I’ve tested out other design systems in the past their largest font style has not been generous enough in its sizing, and especially when you’re wanting to create products for both mobile and the web. That’s why I put Uber into place with a healthy 111pt font size
Then I went down through the usual suspects of typography (H1 to H5) using Modular Scaling, with my Body text size set at 18pt, and using a Ratio of 1.2.
The Body I set at a healthier 18pt just to improve legibility if myself, or anyone else decided to opt for a dark grey or similar for the body copy.
As well as the headings and body styles, I added styles for Lead, Small, Caption and Tiny. Sticking to the default Character Spacing for all of the aforementioned aside from Caption.
I created both a Regular and Bold weight for each of the styles (Uber, Hero, H1, H2, Body etc…) I’ve seen systems before opting for a Light weight in place of Regular (or even just Bold for the headings, with no option of Regular), but not every Font Family is that generous with weights and styles, and relying on a Light font weight when it comes to swapping out font families can cause more work for yourself in Sketch, so I tried to avoid that with just plain old Regular and Bold. A happy medium I think!
I repeated this process for the Open Sans font (Font Family #2), and made sure for both font families that I also created a Text Style for Left, Center and Right (Yeah we rarely use right-aligned text, but I included it as a safety net)…
Once I had Black versions of both Font Families (Poppins & Open Sans) all Text Styled and at the ready, then I moved onto creating the color variants of each.
So using the Hex Color Values I’d set up previously, I copied these across and created new Text Styles with the following colors applied…
- Light Grey
- Red (Error)
- Green (Success)
In the various section of the Design System I focused on Box Shadows for elements firstly. The ability to quickly create a shape in Sketch and assign it a shadow of varying strengths within a matter of seconds massively cut down on the time it usually took to create shadows in the Sketch Inspector.
Gradients & Duotone
Ok. Admittedly with the Gradients you could see I was on a trend mission of sorts. Let’s not got into the whole Gradient debate. They still have their uses and can be used to great effect when used in moderation so I opted to include them in the System.
The same kind of reasoning goes for the Duotone effect I inserted into the System. Yes both elements may seem a little superfluous to a design system, and the initial stages could be simply created with just Colors and Typography, but I added them has a handy addition, to save extra steps at a later stage in the design process.
8pt grid system
I’d been massively inspired by the 8pt Grid System, and yes in the past I had kept to my own system (of sorts), but it could still differ greatly from project to project. With an 8pt Grid System in place I was able to size and space elements on the page in increments of 8 (8, 16, 24, 32 and so on). When I started constructing my Symbols and Components in the next stage I put this grid system into very good practice, and I’ll show you this in detail in Part 2 of this article series.
Previous to using something like the 8pt Grid System I’d relied on a combination of my eye and the good ol’ Sketch Measure Tool. I’d of course keep to some form of consistency, but eventually over the course of many pages or screens of a design, and without a point of reference you have a mish-mash for spacing measurements. 20px here, 15px there, 30px over here.
Measurements that vary ever so slightly between screens. X element 20px from Y element on one screen, but Y element 22px from the Z element on the next screen. This kind of sloppiness eventually adds up and makes for a disjointed experience for the user.
I found with adding something like the 8pt Grid System to Cabana, I was able to bring much more consistency throughout a whole project, and also have a stronger point of reference for developers to follow in the later stages of a project.
That’s why with Cabana I went with the 8pt Grid System to align and measure padding on many of the elements to just bring a consistency throughout. It keeps you much happier and on point, you developers have a simple point of reference, and the end user can subconsciously feel it.
Hopefully with this brief, but informative article you’ve been able to gain an understanding of the basic elements required to form the foundations of a great Design System.
Once the base elements such as Color, and Type are locked into place then you can move forward with creating the many Symbols, Nested Symbols and Components that will build out a solid Design System.
Join me for Part 2, where I’ll give you an insight into the creation of the Symbols Library and the subsequent creation of Components that I used inside of Cabana.
Don’t want to build a Design System yourself? You can pick up a copy of Cabana right here.
Use the offer code MEDIUM20 to receive 20% OFF.
Thanks for reading the article,
Designer, Author, Father and Lover of MacPaint