Should I switch from Sketch to Figma? (Updated 2021)
By: Ahmed Abdelmageed
Tags: UI, UX, Prototyping, Sketch, Figma

Sketch vs Figma

Last year I made this article to tell you what design to choose in your next project. Last year was almost a draw between sketch and Figma but this year we may have a winner.

The competition between these 2 amazing design tools is ongoing and without this competition we wouldn’t have what we have right now I am thankful for having both in the market and wishing success for both because the make us as designers to think about stuff that matter and tools shouldn’t be a problem anymore.

So in this article, I will tell you the differences I noticed in the tool and let’s see at the end which one is better.

I will go through the 2 design tools in the following aspects:

General features

Design Systems — Symbols Vs Components

Collaborations

Handoffs

Prototyping

Export Files

Offline Work

Plugins

Features

General features

Both tools have almost the same features, same shortcuts, and the same structure. If you know how to use one of them then by default you know the other one.

Sketch on the right and figma on the left

Figma support to open Sketch files in Figma

Figma works in any OS (Windows, macOS..) because it is web-based

Sketch is a native macOS app, so it works only on mac

Sketch and Figma is almost similar performance now

Design Systems — Symbols Vs Components

I was working for a while with Sketch to build design systems it was good, but when I moved to Figma I found it much better there. let me tell you why!

Component States

If you have experience with design systems you will know that duplicates is the enemy of any design system.

Symbols in sketch from material design library

In sketch you have to create every state of your symbols as new symbols which doesn’t match design systems rules because we have duplicates of the same component and if we want to do change we have to do it in every other component. I was hoping that sketch realise something have states for the symbols. I even create a plugin for that 4 years ago.

End of last year Figma introduced a game changer feature for anybody how love working with design systems. It is called Component variants which is very similar concept to React props. The amazing thing is it bring the designers and developers even more closer. and prevent duplicates of the same components by changing the state.

Check out the following Gif.

Variant in Figma

When you create components in Figma you can add states to your component “Variant” and every time you call that component you have access to all variants in that component.

Sketch text/layer styles

Sketch text/layer styles are not atomic at all when I want to build text style I have to define all the cases of the styles I want which can end up to so long list of text styles

Let me explain how Sketch styles work: when you define any text or layer style Sketch saves all the properties in this style and if you do any change to any property then you are overriding the text style. for example, if you want to have a different alignment for the text or different colours. with Sketch you have to make text/layer style for every case.

Let’s jump to Figma and explain how it works there:

From Figma property panel

So with Figma what is so amazing is the styles are more atomic level, each property in the properties panel you can define style to it. and this is how it works exactly with the design tokens, you can save colours, fonts, shadows separately and use any combination you want to define your main style.

This is really helpful because for example if I decided to change colours. I don’t have colours in text styles and colours ors in layer styles like Sketch. in Figma it is one place of truth and if you change it in one place it will change everywhere.

Now let’s talk about the components, What I notice as well Figma is doing so much better, the took sketch symbols and made it less restricted.

in Sketch if you have a symbol you can only modify the symbol through the overrides, but you cannot remove elements inside the components. for example, if you have a button with an icon, you have to create 2 symbols, 1 with icon and the other without the icon.

Figma components are a bit different, you can change the overrides but you can also modify the component layers. and the properties of the layers

Figma component instance, I can remove the icon layer and change the border-radius

Collaborations

The collaboration between designers is very important to choose the right tool for you.

Last year Figma was winning in this track but sketch came back with the collaboration feature

Figma & Sketch now has the approach of Google doc or time viewer. it allows all the designers work on the same file at the same time. you see many mice going around in the project and you can watch other designers what they are doing.

To be honest I am still not a big fan of somebody who is watching me all the time or work on the same file with others because when the file gets bigger and 2 people want to work on the same screen it is really a huge mess. but some other designers prefer this way of working.

Sketch still offer the integration with Abstract. Which allow designers to have branching system like (Github for developers) and every designer do the designs in branches and then merge this branch and solve the conflicts if there is any. I personally prefer this way of working but some designers find it too complicated.

Handoffs

How we send the designs to the developers (specs files)

Figma they have there own specs inside Figma tool, but the biggest problem my developers are suffering from is when I want to send one screen I have to send them all the project file link. and when they click on that link they have to wait forever until the project loads to get specs only for 1 screen in the project. or in our grooming sessions if we want to open the links of the designs we can finish the meeting and the links is not loaded yet.

Sketch there is Sketch cloud to share your screens but I believe it is still in development, but you can use many plugins to make the specs process smoother like (abstract, Zelpin, invision … ).

with all this plugin you only share the screens that are relevant in the tickets so it much faster to load.

Prototyping

Here is the Game changer, Figma just released a new feature for interactive component which made Figma much stronger prototype tool and you can really create very fancy transition. not just that It is also helping the design system to have interactions in the design system level. which make the prototyping process much much easy.

Do you remember the Variant that Figma released last year the I mentioned earlier? Now Figma took this feature to next step where it allows you to change the variant to another variant when the user do any event. for example:

You can add action On click for example when the user click on the select component in change the state from selected to unselected. and when ever you use this component any where it will be interactive by default.

Component is interactive by default

Can you imagine if we want to make this prototype with the normal way by duplicating the screens with every possible state how much time you would spend. and imagine you decided to change something in the screen. you have to go through all these duplicates and change them one by one. while here you just add the component in one screen with no duplicates.

but what is good it there are so many plugins to create animation and nice prototypes with Sketch and Figma like (Flinto, Protopie, Principle…)

Export Files

Both of them are similar in the export, and there are many integrations plugins that work with both, for example Zeplin plugin and Simpli plugin that makes the export even easier.

Offline work

Both tools work offline, but Figma doesn’t load the components and it is very laggy when it works offline. but Sketch works offline perfectly.

Plugins

Last year sketch was definitely a winner but that changed this year. since the community of Figma is getting bigger and bigger. there is now big community of plugin developers who do plugins for Figma. and what I really like about Figma plugin development, it is they use Javascript which most of your developers will be familiar with and you can ask them to implement you own plugin very easy. Sketch has Javascript framework too but you cannot do so much with it and if you want to make advanced plugins you need to know Objective-C