Baseline #5 — Naming in Figma
Naming is tough! Here are a few tips that may help.
Hello again! 👋 So much about working in design tools today can feel overwhelming, and something that has always felt especially challenging for me has been anything to do with naming. I recently joked that working on design systems is only a little bit about creating components and a lot about naming components, but some days, that does feel true! The uncertainty of what to call things can quickly prevent forward movement and may create a general sense of uneasiness when thinking about the overall consistency of a component library in Figma.
In this newsletter, I’d love to share how I approach naming with the hope that these tips can help if you’re feeling stuck with where to start!
Figma Focus: Naming
Teams, projects, and naming files
Within Figma, there are two primary ways to organize all of the created files: Projects and Teams. One way of thinking about the two that helped me was to imagine Projects as folders that hold files and to think of Teams as a way to collect and store all of those folders into larger groups. What's nice about searching in Figma is that all projects, files, and Community Files populate as results based on the search term(s). However, because there's no concept of file tags (yet 🤞), the search query has to be nearly exact to locate the correct file. If a file is titled "Onboarding," but I search for "signup flow," the chances of finding that file are slim.
To help with this problem, I've started to name my files in a way that allows me to include more information, such as version numbers and tags. This way, I can dramatically improve the odds of finding the file. To keep this easy and consistent, here's the pattern I tend to use: Filename (version no.) [tags or keywords]
Pages are a helpful way to separate multiple canvases, flows, or prototypes while keeping everything all within the same file in Figma. I typically like to rely on pages to help divide different parts of the design process, such as collecting inspiration, pulling in research, creating prototypes, or archiving previous iterations.
Pages can also be a tool for those designers working on design systems and component libraries in Figma. When a designer enables a component library within a file, the Assets Panel will show all of the published components available to use. Still, that list can feel daunting to sift through for anyone unfamiliar with how those components are named. Figma will add a top-level dropdown for each page to help further categorize component areas, and creating pages specific to different component categories can make the whole panel and library easier to use.
Tip: Page names also support emoji! ✨ 💭 ⌨️
In an earlier newsletter, I wrote about how helpful frames can be to anyone working in Figma, especially for designers who often create and organize components. Not only do frames made around groupings of components on the canvas provide a bit of visual separation, but they also allow for even more organization within the Assets Panel.
For example, in my iOS UI Kit for Figma, I created four components related to designing for the Apple Pay interface. By placing a frame named "Apple Pay" around each of those four components, the Assets Panel now shows each of those four components under a new dropdown with a name that matches the frame's title.
To make the list of dropdown items as easy to scan as possible, I tend to capitalize the first letter of each word and keep words separated by a space, even if the component's name is using PascalCase. A component may be called "DatePicker", both in code and within Figma, but at least for me, trying to look for "Date Picker" in a packed list of items has felt a little easier and more approachable.
Ahh, finally... components! I won't go too much into what to name them in this section, as this can differ by product area and team, but I will share a few things that have helped me with how to name them.
I've resonated with and have followed the Atomic Design methodology by Brad Frost when creating components. I'll often make molecule-level components to help compose and form larger, more useful organism or template components (these are different from Base Components, though!). Because those molecules are rarely functional on their own, I'll add an underscore (e.g., “_StatusBar”) to the start of the component's name to prevent it from being published and shared to the Team Library. Even though it's now a private component, Figma still allows it to exist as a nested instance within any other published component. So cool!
As for the names of these helper components, I recommend including the name of the component for where this molecule will eventually live (if applicable), followed by a hyphen and the name of the actual molecule, written using camelCase. The reason for this is so that when using a component, it's easy to see which nested instances were built for a specific component and which may have more broad use cases.
There's a component named "Calendar" in the example above, and inside are several atom and molecule-level components. Each name begins with an underscore, followed by the name "Calendar", and finally a hyphen with the name "dayRow" attached to signify that molecule’s specific name. This method may seem a little complicated at first, but in my experience, having this structure in place has scaled well with the library and creates very predictable naming. Whenever possible, I've also found that working to match both component and variant naming in Figma with what's reflected in code can quickly have an overall positive impact. Any opportunity to bring designers and engineers closer always feels like a big win!
In case you missed it...
Last week, I published an update to my iOS 15 UI Kit for Figma, including all-new keyboards, predictive text prompts, SMS autofill, Sign In with Apple, and message bubbles. If this project has ever been valuable to you or your team, having your support would mean so much to me!
Photographer Johann Clausen shared a new project that uniquely highlights Apple’s product packaging.
I always love hearing from people, and if you enjoyed this, please reach out! You can find me on Twitter @joeyabanks.