Figma Feature
Overview
Figma is an influential and growing design product that is always pushing to make new and relevant features. One core feature is components, which is the focus of this project. The goal was to reduce friction when needing to edit a master component, by adding a contextual edit in place feature.
Timeline
4 weeks
Role
UX/UI Design,Interaction Design
Discover
Research to find user needs and frustrations and validate assumptions.
Research Goals
-
Is there a real need for this feature?
-
Do competitors have a component feature, and how does it work?
-
How do designers use and organize components in their workflow?
-
What pains and gains do designers have when using components?
-
What are the workarounds for these challenges?
-
Are there plugins for this, and how do they work?
Methodologies
-
Survey
-
Secondary research
-
Competitor analysis
-
User interviews
Survey
I used a survey to get a general pulse on what designers' feelings, confidence, methods, needs, and frustrations are regarding components, The goal was to get an overview snapshot of the core issues and see if my problem aligned with anything discovered.
Participants
-
Figma users
-
Any experience
Beginners organize components in same page or a separate page, and experienced designers use libraries
Biggest gain from components is how it helps consistency
Biggest pains are overrides and variants
Beginners report fewer pain points than experienced designers
A common workaround for all levels is detaching the link of an instance from the master
Beginners have lower confidence and usage frequency and experienced are vice-versa
Secondary Research
I looked at many plugins by searching for "component", and only a couple came close to what I was looking for. One is called Edit in Place, by Tom Lowry. The other is Master by Gleb.
I also looked at some Figma documentation and their Medium article, and other articles like this one by Jake Tsacudakis.
And finally, I found an old forum post by Chris Malven, which addressed this exact issue. There is a lot of support for this in the comments.
There are many plugins for components, but only one that truly matches this feature
There is at least some amount of need for this type of feature in the community
Most articles focus on design system organization and native techniques
Figma documentation doesn't address editing in place, even as a workaround
Competitor Analysis
I checked out Figma's competition to see if they handled their systems of components in a different way, perhaps to gain some inspiration and see if this kind of feature would be unique and give an advantage.
In short, Figma is second behind Adobe XD regarding instance overrides, and all 3 handle master components in a similar way. None of them have a contextual edit in place feature.
User Interviews
I looked through the Designlab Slack channel for fellow students to fulfill the beginner interviews. For more experienced interviewees, I pulled from one person I knew, one Designlab mentor, and one Designlab alum
Participants
-
Figma Users
-
All ages and gender
-
3 beginners
-
3 experienced
Interviews
-
All remote via Zoom
-
Recorded for analysis and notes
With all updates in products they always add new features, but it’s never about fixing old features.
How am I supposed to make changes as a separate element when I’m not looking at it within the entire page?
How am I supposed to make changes as a separate element when I’m not looking at it within the entire page?
Overall everything is intuitive and no issues are major enough to need a feature.
I don’t know if I’m a nerd about components, like I see videos of people doing it...I’m not that.
I wish Figma would make learning easier.
Not everyone will be a Figma wizard and understand what they can or can’t do.
Affinity Diagram
I performed an affinity diagram exercise to identify common pains and needs of the users.
Research Insights
After the affinity diagram, I found the following key themes among participants.
Needs
Beginners acknowledge they need to learn more about components
Approaches to working and organizing components are very unique to the individual
Figma could do better with clarifying limitations and onboarding
Competitors offer good solutions to specific needs that Figma could borrow
Pains
Users are afraid to make overrides or changes to components
People will give up and do manual edits if something isn't working right with a component
No participants used plugins for working with components
Define
Setting our goals and priorities to solve the problem.
Design
Ideation and design of structure, user flows, wireframes, and UI elements.
Sketches
I began doing really rough and quick sketches for ideation, which then were sketched out again in more detail for reference when making the wireframes.
Wireframes
From the sketches I made the wireframes. I only had to make it in one size, since Figma is only a desktop application.
UI Designs
I swapped placeholder elements in the wireframes for likely design elements a designer may have, to sell the immersion.
UI Kit
There was mostly copywork of existing UI, but thankfully there was a shared file someone made that contained most of the Figma UI that I used. A small amount of new icons, modals, panel sections, and styling were needed to accompany the feature.
Test
Building a prototype, usability testing, and revisions based on results.
Usability Tests
For this usability test, I wanted to see how intuitive the new UI elements and interactions were, and if they fit the look and feel of Figma.
Research showed that this feature would be more geared towards mid to senior level designers, so I recruited from that niche group to specific individuals.
Participants
-
3 tests
-
Experienced designers
-
In-depth knowledge of Figma
Methodology
-
Remote on Zoom & Figma
-
Moderated and recorded
-
Feedback questions
It just has to be super clear that if the master does live in a design system file somewhere, and I go to master edit mode right here, and I save these changes, it’s gonna update in reverse to the design system.
If I go into a mode, it needs to be more obvious that I’m in a different mode.
I don’t need any other information from that file. I just need that component.
Key Takeaways
These are the main points taken from the usability tests.
Make it clear that you are in a new edit mode
Make it clear how everything works with libraries
Make viewport mode less like a frame and more like a window
Focus on the single component and not the entire design system
Make it clear what the instance level section does
Don’t forget about screen real estate
Priority Revisions
I aligned the revisions with the key takeaways from the usability test feedback and observations.
Added a canvas stroke and edit mode label when inside of context edit feature
Added in Figma publishing and reviewing modals and UI when updating libraries
Added styling to viewport to make it more like a scalable window
Removed the fit to component and reset icons
Removed the other design system components from the viewport
Made instance level clickable and also give a readout of what is being edited and/or selected
Moved edit options out of the side panel and into a modal on canvas
Change check icon to a button
Example frame from prototype V1.
Example frame from prototype V2.
Example frame from prototype V1.
Final Prototype
After testing and prioritizing revisions, I updated the prototype. In addition I updated the usability test plan with a new script, updating the instructions to match the changes.
What I Learned
I wasn’t even sure the feature idea would solve a real issue for designers until the research said otherwise. I had only my own personal frustrations that were the initial catalyst for imagining this feature.
This project was right up my alley, since I always like to optimize and improve upon processes. Coupling that with Figma itself made for a fun and challenging puzzle.
I feel like I have a much better idea of what working within an existing brand and style is like. It’s an interesting mix of freedom and restriction. Since Figma has a contextual interface, I had to double check what would happen elsewhere with every interaction that occurred in the prototype.
Designing Figma interactions and existing element in Figma was a bit of a mental exercise, since visually the content and the tool look the same. It took me a little bit of thinking and planning to tackle all the different states of all the existing UI.
I learned that even designers need extremely clear visual communication about what they are doing in their tools, especially for a new feature that is introduced.
With more time, I would add more interactions overall to make it really feel like a Figma playground. I would also make a task flow for a complex component with many variants, and that instructed the user to navigate with the new Instance Level section.