Creating a Figma Library From Scratch

When my team made the switch from Sketch to Figma, it was my job to make us a functional library with everything we could possibly need. This is how I did it.

SOME BACKGROUND

My team at NetApp finally did it. We made the jump to Figma. I’m not a Figma zealot (yet), but we’re loving it so far. 

Previously, we had some members of our team using Macs and some using Windows, so we were using a combination of Sketch and Axure. My teammate using Axure decided that he was tired of making the repetitive sorts of changes that it required over and over, so he switched to Figma for a few reasons. 1: they don’t make Sketch for Windows, and 2: it solved some of the major complaints that he had about Axure, especially relating to how components work. 

When this teammate went out on family leave for 6 weeks, I was charged with picking up some of his designs, and thus jumped headfirst into the world of Figma.

FIRST IMPRESSIONS

Relative to Sketch, I was impressed at the extensive ability to modify instances of components without needing to detach them from the master. Colors, fonts, styles, visibility and more could all be overridden and still maintain the link. Pretty cool. 

After a few months, we got wind that some other design groups in the company were making the switch and were asked if we would like to jump onboard for some licenses. The decision to do so was pretty easy. 

This page isn’t about how great Figma is though, so let’s jump into what this is really about: how I created the best, most useful and functional design library possible for my team.

BUILDING A PROCESS

A key part of having an efficient design team is creating a complete library of styles and components available to drop into designs. I had previously created and managed our Sketch library, so I recognized that I was the one who would need to facilitate the creation of the same for Figma. 

I wanted to push Figma to its absolute limits and take advantage of every feature that it offered to reduce some of the tediousness that can often plague UI design. 

I split the task into two different categories and tackled both of them in one sprint:

  • Port all of our type, color, shadow, etc. styles.
  • Port the corporate NetApp design system library (LUCI).
  • Port our team’s component library. This consisted of components that LUCI didn’t define and components where we decided to stray from LUCI.

Figma has a few really awesome features that I intended to take advantage of. Ordered by usefulness, these were:

  1. Auto layout. This feature automatically resizes containers and displaces neighboring content as you add and remove any given content. This would come in handy for things like modals, all buttons, the nav framework, etc.
  2. Constraints. When auto layout doesn’t apply and things need to be manually resized, getting this right is the difference between needing to shuffle around dozens of objects to resize a dialog/window, and just having it happen automatically.
  3. Highly linked styles. I aimed for almost every object to have linked styles, including type, color, shadows, other layer styles, etc. Having this set up properly prevents designers who are new or unfamiliar with the design system from making things different from our established patterns.

CREATING THE LIBRARY

Now that I knew what my goals were, it was just a matter of buckling down and doing the work. When I started out, I wasn’t super familiar with Figma, but this certainly did teach me what I needed to know.

I found it most effective to complete items in this order, since each successive step would use the output of the previous:

  1. Styles, including color, type, shadows, otherlayer styles
  2. Basic components like buttons, checkboxes, other form elements, etc.
  3. More complicated components like tables, modals, navigation components, etc.

I had the benefit of some existing Sketch libraries to copy things from, but it really turned out to be more efficient to to recreate things from scratch in the way that they're supposed to work in Figma and duplicate them from there before applying the styling needed for different states.

Some cool and useful things I was able to incorporate:

I used the auto layout functionality wherever possible to ensure correct padding and reduce some of the tedium of manually resizing things
to fit when designing.
Auto layout can also be used to accomplish some pretty useful things when it comes to more complex components. It makes adding and removing adjacent items within lists or something like a top/menu bar super easy.
Designers can remove a single top bar item without needing to detach the instance or manually move anything. Items shift over to the right automatically.
Using constraints only, I created some template pages that resize as they would in the browser.

SUMMING IT UP

Overall, this was a great way to learn how to use Figma. I got some pretty glowing feedback from the design team, and they've found it useful so far. A few bugs have been discovered, but Figma makes it easy for anyone to go in and fix them. I would consider this a success up to this point.

SEE MORE OF MY WORK

Check out my work for Daily UI: a collection of interface visual design & animation exercises