How to replace symbols efficiently

Hello, I am looking for some advice on how to correctly swap symbols in a design system.
Now that since Athens was released, a lot of old plugins do not work anymore (a shame, to be honest),
there’s a task I was doing with a plugin that has become impossible to my knowledge.
I wonder if this task is possible natively.

The scenario is the following:
• I have a library file including two symbols : symbol A and symbol B
• Several documents use those two symbols from the library.
• I want to delete symbol B and relink all the instances to symbol B onto symbol A, so that all the document using symbol B will now reuse symbol A, without them being detached.

How I was doing before
I was using the plugin Symbol Swapper by Jason Burns.
• I could select symbol B, and use the plugin to replace this symbol by symbol A (I could even select a symbol from any available library)
• Then the symbol B was removed from the library document.
• When update was proposed in documents, all instances of symbol B were correctly replaced by instance of symbol A, and nothing was detached

Does anyone know a method to do so in Sketch ?
Thank you very much in advance for your kind help

Hello Victor,

Thank you for your question. I personally think it’s a legitimate use case that we’re not covering right now.

We do have the ability to replace components to another Library’s sources, but there’s not a quick way to replace symbols from the same one and keep everything linked.

We’ve been discussing what would be the best way to work around it, and it would depend. If you want to discard Symbol A in favor of Symbol B and there’re not instances of Symbol B around (or not many), you just can replace the contents of the Source Symbol A into Source Symbol B and rename it.

However this could make things complicated, since that would require extra work and maintenance, leading to unexpected problems.

Another quick and dirty fix (I wouldn’t call it a workaround) would be to empty the Symbol Source A contents and add an instance of B to it, creating basically a nested Symbol. If (and that’s a big ‘if’), you’re in a hurry, that might work for you.

In any case, I’m filing your case internally as a feature request that I’ll bring to the Product team so we can discuss about it.

Thanks for asking!

Thank you for your feedback.

Really, swapping a symbol with another should be natively available in Sketch, it’s very important task when maintaining a design system. Before I never complained because there were (very old) plugins doing this, but now all those plugins do not work anymore since Athens update.

3 Likes

Likely not the answer you’re looking for but until Sketch implements a native solution for this I found that MCP is a great way to accomplish this and many other clean up tasks (merge duplicate text-styles or layer styles, colors, listing # of usage for various symbols or text-styles, finding and deleting unused symbols).

1 Like

Thank you for letting me know. I gonna give a try when I have time, it’s the future, people say :slight_smile: