After a late switch from Sketch to Figma about six months ago, here is my conclusion regarding the UX of Figma:
While Figma has many great features that Sketch does not have (dev mode, way more capable prototyping, variables,…) the general UX of the tool is just sooo bad! Here are the things that annoy me most:
- Visibility of functions:
There are so many functions hidden below a small icon that has no label. Much stuff is hard to find. And what drives me really nuts: When a function is not available, then its UI element (or entry in context menu) is hidden – not disabled! I’m using Figma for UX Design, and it just feels so wrong to use this tool that does not handle UX basics correctly itself.
- Library management – publishing components:
You can do this from the book button on the top left where you usually update components from other files, but publishing is mixed in here if you click on “This file”. But then you can only publish all changes. If you want to publish only a few changes, then you have to select a changed component, and click on the “Publish changes” button on the top right. From there you get a multi-select list and decide which component changes to publish. Why not have this multi-select interface in both publish locations?!?
BUT this “Publish changes” button is gone (instead of disabled) in case there are no changes OR in case there are misconfigured properties. But the indication for this is so f*****g small that you don’t see it. It would be better to have the button there, and when you push it get a pop-up info that you can’t publish this component right now, because of the error in the properties.
- Library management – Update of components:
Updating is so incredibly slow, it takes ages! And when you click a button to update only one component, nothing happens to that list. Although on the bottom of the window a toast appears “✓ Successfully updated assets”, the entry within the components list that have updates to apply stays the same. Actually it just takes very long until the update is really applied (although the toast below makes you want to believe that it is applied immediately) – so you can push the update button several times! This is so completely broken! If the update is initiated but takes up to 10s, then show a indeterminate progress indicator (e.g. a spinner). And if it takes even longer, then show some kind of progress bar. But what does Figma show? Nothing – the ‘Update’ button can be pressed again and again. This is such a frustrating experience. I really hate updating components. And as we are are big company with a big design system, we have three company-wide libraries plus for each product its own library. So it really takes so much pain until you get your update from one end of the component topology to the bottom. This was soooo much faster with Sketch (which was all in all faster because it is a native app and not running in the browser...)
- File/Window/Tab Management:
I like to open all the company wide libraries in one window with four tabs (one tab per company library). Then I have another window with my product library and the product design files opened as tabs. Guess what happens, when I then jump from a library-instance in a product file into a specific company-library-component? Instead of showing me the component master in the already opened library file in the other window, the library file is opened a second time, in a new tab within the same window. And loading this stuff from the web takes really long…
- Component creation/handling:
- Why is it not possible to create a component out of sublayers of an existing component? This is so stupid! And it creates so much extra work, because I have to copy it out of the component to then create it. And then I have to manually replace it inside the first component. And in case other frames used the first component, then all overrides break in the course of this refactoring, and I have to manually do all the overrides again. This leads to much more copy & paste of content, as refactoring into reusable components is such a pain…
- And in case I want to duplicate a component, this only works when using variants. But sometimes I don’t want the duplicate to be a variant, I just want an individual component, but based on another one. If you duplicate a normal component (without variants) then what do you get? An instance of that component. I had to write a plugin to call the clone() method on the selected component, in order to get what I want, because Figmas UI does not want me to clone normal components. But as I said, for components with variants creating of duplicates is possible. So the “Duplicate” command (CMD-D) has a modal behavior. One time it creates a component, one time it creates an instance. How bad UX is this?!?
Would be interested in what you think about this.