Skip to main content

In my organization, we have enterprise level Figma or something like that and we use branching.

So, without adding too much info, the situation is:

 

The design file linked with library file.

And in the design file we have stuff going on.

And then we have branches from the design file.

 

The scenario I had this week which cost me sleepless nights and two days of headaches, plus additional work on cleaning the mess out:

And yes, I know, I’m partly responsible for that but I will add my conclusion in the end.

 

So one day it was decided in the team that we need to alter one input in the input component (one variant). I made the change. Unfortunately, forgot to first train on a branch, but I thought “hey, it’s just one input, just adding some element to it” (let’s say it lacked an asterisk to be obligatory as a feature of the component).

I rolled the change to branches and I think I just updated one of the branches as I was specifically needing this change just there (unfortunately, some 5-6 pages of stuff but not like the end of the world). It turned out, my fields with data went corrupt somehow - they defaulted to - not even the basic variant but well, the data was cleansed. (e.g. “Name” turned into “Lorem ipsum”) so theoretically it stayed as a “filled in” type but the content was cleansed.

I panicked. Created a branch for the change in input and - I don’t remember now - whether I rolled back in history or I just remade the old state.

And this is the problematic part I don’t really remember. This is a bit of my fault… but Figma was of no help (see conclusions) here.

I wanted to bring back the initial state, with both files being as in the beginning, the branched file not touched by the change. However, when brought back from history in the original design file, I didn’t know - should I go back in history with the branched file also?

I went back and forth, trying to adjust the right place in history and state of my files.

E.g. it was that I reversed in history and after a second still my files went corrupt. But only some of the inputs! E.g. date (like in calendar) inputs were OK!

I then re-edited the problematic fields so that they take the component from the original file, re-edited the content.

Note: the branched file had some components in other pages too, so they were served as local.

Then I wanted to copy the designs into another branch for some alternative work thread.

And the designs, after pasting (CTRL+C, another page→ CTRL+V), they changed the fields or the fields disappeared! I was fighting with this for some 4-5 hours. Going through fields, checking which ones had to be re-configured. Thankfully, no data apart from some individual ones, was cleansed.

Yesterday afternoon, I was sure it’s OK now but when I checked instances of my internal components (some 3-4 components I created just for the design), it turned out they didn’t have names on their frames and they were not really original components of the instances! Had to go through the instances and bring back (“restore”) the original components.

It was like the changes was not connected with my initial change in the input component! Some other stuff got distorted somehow! And I didn’t change any libraries in the meantime or other local components (local = in the same design file)!

So today morning I come back to work, start Figma and find out those components are like they were before, I mean before restoring the original components! I had to do it once again!

At this point I had the original file with the input file without any changes, brought back from history to the state before anything happened.

Same with the branch files… and I thought it would be good!

And I still had e.g. one component that had some button. And everything copied well into that third file (the one I needed as a copy) and one type of button component didn’t copy! Just had a component group and nothing within it!

Magic! But how?

Generally, it was really hard to track what was happening, why it was happening and at this point I just want everything to be checked and corrected, best half-automatic as neither the manual way was good, nor totally automatic.

I repaired those connections, restored stuff, etc.

And I cleaned Figma cache!

Now, I stopped my work - but I am eager to check the state of it just today in the evening because I am just wondering - what will I see in Figma on Monday?

Now, I am a designer with over 20 years of experience. I started with CorelDRAW. Wait. I started with Deluxe Paint IV on Amiga! And there was Xara, and Adobe stuff, and PaintShopPro, etc. Adobe XD! Just fiddled with Sketch (I’m not a Mac user). Also, like mentioned, I code a bit.

I have NEVER seen such a problematic, annoying tool like Figma. And it’s supposed to work like standard stuff because lines are lines, rectangles are rectangles, grids are grids. As for the UI, we can all agree that there are standards for e.g. icons like drawing a rectangle or a marquee (who remembers THIS word? : ), etc.

I have days when I don’t remember that I have to click something somewhere or there’s this strange connection that I have to click this and that because in other case the component won’t see the nested instances. And everything is like half-hidden, in some icons that don’t mean much, and there aren’t many tips and infotips and tooltips and whatever you can have.

To be honest, I dislike Figma.

But have to know it, have to work on it. And I feel there are times where my work goes awesome but there are those days, moments, where I am just totally stuck and I keep looking for an answer to the same question all over again.

Stop adding “new ideas”, please polish what needs polishing!

Conclusions:

  • Figma is really not forgiving with anything that is about linking, instancing, using libraries, etc. It shows little info, very rarely, and hidden somewhere “there on the right”...
  • It is still illogical to me, after what - 6 years in Figma? - how libraries work. You can have the file not linked and yet stuff from it is used and shown. This also contributes to confusion.
  • Error reporting, alerting is virtually non-existant. You get some scraps of alerting like there’s a variant missing or there’s a need to restore a component… the rest you have to find out yourself, with the use of plugins, e.g. if anything is linked to a wrong library or an instance is missing its main component.
  • I never understood how history works. I have experience with SVN, git, generally - version control but the way it works here, and the fact that it’s not just about one file but also connections - it’s hard to understand.
  • Branching theoretically is great but the experience is awful. A lot of confusion...

I totally agree. I made a late switch from Sketch to Figma about half a year ago, and although Figma has many great features that Sketch don’t have (dev mode, way more capable prototyping, variables,…) the general UX of Figma is just sooo bad! Here are a few of the things that really annoy me:

  1. Visibility of functions:
    In UI3 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 right 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.
     
  2. 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.
     
  3. 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...)
     
  4. 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…

Would be interested in what you think about this.


I just wrote another 5th point and realized I should rather extract my feedback into its own thread then posting it as an answer to an unrelated topic. Sorry for the inconvenience. Posted my feedback now here: