Convert components from external to local?

Is there a way to take a component that is linked from an external file (a design library) and convert it to a local component? I have a document with lots of linked components from the design library, and I want to be able to experiment with the visual design by changing the appearance of all the components in my file without going into the master library file and changing it there.

1 Like

My plugin Master do that, although if you need to do it for many components, it may take a bit of time.

  1. Select instances you want to create a new local component from. You can use default feature in the menu Edit → Select All with Same Instance or plugins like Select Similar to find them.
  2. Go to Plugins → Master → Create Component from Objects.

Master will create a new component and attach all selected instances to it. You can also use the Pick & Link feature to link instances on multiple pages to any component. Here are the instructions and tips on how to use it:

And a video on how to use Master so you can see it in action:

1 Like

There needs to be a built in solution for this, not only through a paid plugin…

13 Likes

Yes, figma should ask when you paste comp’s from an external file if you want them to become local.

6 Likes

Former Sketch user here… shocked that a plugin is required to do this!

8 Likes

The InstaRelinker plugin can replace all instances of a remote main component with its local equivalent.

4 Likes

Even though a solution has already been found to this, you could alternatively save a local copy of the file which contains the component you want to import, then open/import that local file and copy/paste directly from there. Any local component copied from a local file will paste as local as well in the destination.

My team and I recently did this to import a huuuge library of icons into a core library file.

That said, it won’t keep links between instances or replace the remote instances with local ones. To do that you might have to rely on a plugin indeed.

4 Likes

I found a hack for this.

  1. Cut (cmd + x or ctrl + x) the original component
  2. Paste it into another project
  3. Go to the original project, and undo the action (cmd + z or ctrl + z)
4 Likes

Figured I’d add an in-app experience that is possible too.

Depending on how many variants the component has, you’ll have to perform these steps multiple times. These steps also would only work on each page, so if there are multiple pages in the document, you’ll need to perform the action multiple times.

  1. You can copy the master component from the library and paste it into the file where you want the local copy. (It has to be the master component. If it is a component with multiple variants, select the parent frame.)

  2. Search “Select all instances” in the ⌘ + / menu

  3. Once all the instances are selected, you can then change the component to the new local master component from the dropdown on the right-hand panel. All the properties should be preserved.

    image


You’re also able to migrate components from one file to another—it is a 1st party integration they added a few months ago, albeit a little rough around the edges. That requires both files to be libraries, and then you need to publish after cutting and pasting the master component from one file to another.

1 Like

Thanks for this David… <3