Possibility to move main components between files/libraries

Also looking for a solution to this problem. I built a file for a website that includes a Page for the design system with all my components, but now want to separate the page into its own dedicated Design System file. But, as far as I can tell, if I copy and paste these master design system components into a new file and delete the originals, the newly separated design system file component won’t be linked to the instances.

Update: I believe Master will fix my issue! Walkthrough in Master tutorial video at the 3:30 minute mark: https://youtu.be/puZP7YvVsBw?t=213

1 Like

Yes, a much needed feature is to be able to move master components around with zero negative consequences on the instance attachments and overrides. I’m pretty surprised this isn’t a thing already, given the number of people that need it and how much faster it would be to organize design systems that may not have been perfectly done from the beginning.

I’d add, besides the ability to move master components between files, they should also be able to be moved between entire projects.

I checked into plugins and although some are pretty decent, they are still limited in function (to my knowledge, they don’t work across projects) and require more work than should be required. They are also not super intuitive.

If Figma built this feature in, it could be so simple and easy to use, and would save so much time and make organizing design systems a lot easier, after the fact.

Example UX: Right click on a Master Component, select a new option for “move master component” and then there is an interface for choosing which project, and then which file within that project, to move the component to. Upon confirming the action, the master component is moved to the specified location, and all overrides, links, instances, etc etc are automatically updated and continue to work. It is not unreasonable for this feature to be developed - Figma already knows where the master component is, where all the instances are of that component, and all the overrides, etc. The primary thing required in development of this feature would be adding the automatic step for updating all of those records after the component’s new location is specified by the user.

In summary, the user simply chooses a new location (project and file) for the master component, and then the rest is handled automatically by Figma and nothing breaks or changes. Again, there is no plugin that can actually handle all of this easily and automatically, especially across projects.

10 Likes

Everything Matthew Schwartz said is exactly how I feel about wanting/needing this feature. From a beginner user or working on a really large project. Not being able to do this means having to start the whole project over or having to commit to a less than optimal way to develop a product that has real depth.

3 Likes

I totally agree with your points. It would be nice to be able to move components between projects. However I always assumed that if it is going to work between files, it would work between projects as well. Just like it works with styles now: you can move style definitions to any files, no matter where they are. Projects don’t have any effect on what’s happening inside of the files and what is connected where, so it shouldn’t be an issue going forward.

I checked into plugins and although some are pretty decent, they are still limited in function (to my knowledge, they don’t work across projects) and require more work than should be required. They are also not super intuitive.

Just wanna address this: every plugin that works across files would also work between files in different projects. And I totally agree that it is not intuitive and requires too much work.

Thanks for the comments

I was checking out your Master Plugin, which looks really nice

With the test version of the plugin, I tried moving a master component to another file per the instructions in your demonstration video, but had trouble getting it to work.

If I have copies/instances of a component in multiple files, and within separate projects, and I move the master component as shown in your video (copy and then try to reassign), will all of the instances within all projects and all files be updated? and this includes if I move the Master component into a different project than where the files are?

I may have to try it again…

Oh I didn’t realize this is a different thread, here is an explanation of how it works between files:

The video guide was created before I added that feature so sorry for any confusion. I’m working on updating it. :slight_smile:

1 Like

I really need Figma to implement this feature. Something that looks like the “Move to page” menu on right click but being “Move to file” would be perfect

6 Likes

Look at

1 Like

Thanks for the suggestions. Some helpful plugins there, but I just reviewed them, and unfortunately it doesn’t look like any of them do exactly what the feature that we are asking for would do. That said, even if there was some convoluted way of using one or more plugins to accomplish what we want, it shouldn’t be nearly that difficult or time consuming. Figma needs to just build this into their core platform and UI. It could be as simple as a right click on master component, then a contextual menu option to select new project / file (as explained in my earlier comment on this idea)

EDIT - part of the request here should be to move master components to other projects as well as other files.

Also, it looks like some of the plugins have bugs and known issues.

Definitely just needs to be a feature in Figma core.

3 Likes

I totally agree, its a key feature for anyone evolving a library that has been missing for years. the reality is I would be suprised to see it fixed in the core now and the pragmatic approach is plugins and a constrained & convoluted process to avoid the issues.

3 Likes

Hello friends! when I click on “Mark as target” in the DSO plugin then nothing happens. I usually get a notification that symbols are marked as target so I can relink them in other documents, but now suddenly it’s not working anymore. Can anyone help please?! Thanks!

Contacting the plugin author is the best way to get the issue with the plugin sorted out.

yea I did already, but I thought I might get an answer until he replies, coz this is urgent.

My library is getting too large , I’ve tried to cut and paste component from my large library to another file, but it seems to break the links in the files that are using these components. Also the components that are pasted become instances for some reason, so the original component seems to be lost.
Is there a way of de-centralizing my library with breaking everything up?

1 Like

Figma just released a way to move components between files natively!

Short tutorial:

1 Like

WooHoo thanks will be checking this out. Update, Yep finally we are here - long journey. I just refactored my library quickly. The only pain point left is that overrides can be lost on the new moved component. Depends on how deeply you rely on these - some of my designs are 100% custom auto layout overrides. So it gets quite gnarly with nested components and overrides - you need to read these in depth

Moding components

Override rules

I don’t think this is a good implementation. I cannot do anything with this feature.
According to this, I need to CUT components from the existing file in order to move them to another. But I don’t want to destroy my current library.

I want to COPY components and place them in a separate file so I could use them for another project, separately/independently of the original file.

If I do copy components to another file they act as instances there. Why would someone want to have a full page of components laid out as instances? I don’t get it.

The only reason I guess Figma did this (or didn’t do it properly) is they don’t want to store the huge duplicate libraries on their servers. They would force us to use one library for multiple projects, which is definitely not what we want. I cannot modify one component and use it equally in all projects.

I just need to duplicate the library that is it. And if I add some new screens (or I have some existing screens in some files) I want to be able to link them to any library on any page/file.

Is there a way to do it now, or did I miss anything?
(I tried with some plugins including DSO and Master but I cannot achieve the desired result)

1 Like

Don’t duplicate the component, duplicate the whole file. You even said it in your post: “I just need to duplicate the library that is it.” Then remove everything you don’t need from the duplicate file if necessary. If you need to switch other files to use this new library, use the swap library feature. https://help.figma.com/hc/en-us/articles/4404856784663-Swap-style-and-component-libraries

Hey Gleb, thanks!
Well, it seems the duplicate file works now! it preserves elements as components.

Unfortunately, this works only if I have both library and the designs in the same file. If the file doesn’t become too large I can finish the project and just copy everything. In case when my file has a library in another place, then the linking is still an issue.

I still think Figma needs to work on this to streamline the whole process with libraries if they want to stay on top of the game.

But why? I don’t see any reason why that won’t work if they are separate. After duplicating use the Swap Library feature if necessary.

I agree, this all works super weirdly in Figma and feels very raw. But they just added these mechanics so hopefully that would improve in the future.