How we organize components is one of the biggest missed opportunities for designers

Stop putting everything in bloated files and start creating systems that benefit your entire team.

Here's my strategy for organizing components for Maven 👇
I like to think about components as falling into one of three categories:

01 — Design System
02 — Product-Level
03 — Flow-Level

Let's look at each category and then I'll detail how they fit into the larger organization 👇
01 — Design System Components

These are top-level components that are used across many projects in your organization.

Most of the time these are simple atoms/molecules that become part of larger, more complex components:

ex: buttons, inputs, icons, etc.
Where do they live?

I always organize top-level components within their own "Design System" project.

These are the libraries that I'll auto-import into every new file so it makes sense to keep them separate from any specific project.

ex: UI Kit, Icon Library, Style Guide
02 — Product-Level Components

These are components that are only used within a single "product" but span across multiple pages/flows within that product.

ex: a "Header" that is used across every page in a dashboard product
Where do they live?

For each "product" I'll create a new project in Figma (ex: "Admin Dashboard").

Then, I have a separate file for all product-level components

ex: "Components (Admin Dashboard)"

This library is imported into every new file within the project
03 — Flow-Level Components

These are components that are only used within a single flow or on a specific page.

ex: containers designed to segment info within the "Settings" page of the dashboard
Where do they live?

Flow-level components live as local components within specific files!

I typically make a "🔗" page within each file where I organize local components and document all of their states
Bonus: I often insert local Flow-Level components into higher-level components using "slots".

This way I get a single source of truth at the product (02) and design system (01) levels while being able to use components specific to the page I'm designing.

Building on this system can create a library flowchart for your entire Figma organization.

The best part? If you talk with your engineers, this flowchart can map directly to how your team's codebase is structured.

That's when you unlock the real superpowers...
You can then communicate at what level a change is being made:

1. Source level UI Kit?
2. Components folder within a specific product folder?
3. Or is it ok for this component to live directly in a page file?

This is when your components truly become a LANGUAGE for building
Note on flexibility:

If I'm using an element from a specific flow and realize I want to use it in a different part of the product, I'll simply move the component from a local page to my "Components (Product Name)" file.

Now it's accessible throughout the entire Figma project 👍
Note on customization:

Every team/product is different so it's unrealistic to try to fit your org perfectly into the flowchart above.

And that's ok! Because the principles can be easily applied to any organization! Happy to weigh in on your specific situation too 👍
My challenge to you is this 👇

Be intentional when creating new components.

How you intend to use them in the future dictates where they should live. And their location can even inform how they're ultimately built!
Lastly, this system is only valuable if you're using it as a language for communicating with developers.

It can be a powerful framework for building efficiently and getting everyone on the same page... 💪

...or it can be locked in your own brain 🤷‍♂️
P.s. this is the type of material I want to cover with Figma Academy so sign up if you're interested in learning more 👇

figmaacademy.com

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Ridd

Ridd Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @Ridderingand

2 Jun
I've created the foundations of a component/library system that I'm quite proud of at Maven.

It decreases the # of levers I need to pull to make changes so that we can iterate more quickly in the early days

Here's a little peak under the hood of a real-world example 👇
We're in the early stages of building an admin dashboard so we're making changes left and right...

My goal is to make those changes only one time so I can be as efficient as possible

For example, we realized the other day we wanted to decrease the sidebar width 👇
Think about how many frames you can have in a dashboard... easily 100+! I just started and already have 30+

If I only have a sidebar component, my layout breaks in all 30+ mockups as soon as I change the width 🤦‍♂️

Here's how I updated every layout automatically 👇
Read 13 tweets
27 May
How to iterate at the speed of light using components ⚡

A simple 4 step process that I use 20+ times a day 👇 Image
If you're like me, you spend a good amount of time tweaking the design of component groups while trying all sorts of different approaches.

But most designers I talk to don't use components until AFTER they pick the final design direction.

I'm here to propose a better way 👇
But before we get into the details... here are the two goals of this workflow:

1. Create a bunch of iterations side by side for easy comparison

2. Work as efficiently as possible (don't make the same design tweak twice)

Ok now that we got that out of the way... let's dive in👇
Read 8 tweets
15 Mar
I like to think of portfolio projects as a recipe video you'd see online🥙

It starts with a beautiful visual of the finished plate to draw people in.

And then 95% of the video documents how you make the dish from scratch.

Here's a list of questions to help fill in that 95%👇
There's been a lot of Q&A around portfolio pieces in @shiftnudge recently. So I decided to compile some question prompts into a bit of a list.

Not every project produces answers to all of these questions. But hopefully, these spark some ideas of your own.

Let's take a look 👇
TEAM/PROJECT INFO

Who was the project for?
What was your role on the team?
What were you directly responsible for?
How did you collaborate with other team members?
What business context is needed to understand the project?
Read 11 tweets
7 Feb
I truly believe learning @webflow is one of the best investments you can make as a product designer

It's a master class in understanding how your @figmadesign UIs will ultimately be built.

So I created an animated walkthrough of the 5 main things I've learned from Webflow 👇
01 — Webflow teaches you how to think in terms of responsive units.
02 — Webflow teaches you exactly how to use Flexbox in your interfaces (and is the perfect extension to the new @figmadesign auto-layout updates).
Read 7 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(