We add it to the end of the name rather than replacing the name so that other designers can easily tell what component it was so that they can more easily locate a newer version.

3. Publish your component

I’m not entirely sure this step is necessary, but to be very explicit about it I publish this visible version first, before deleting the component. If you wait a few days before going onto the next step, you’ll also give your team time to notice and give you a heads up if they really don’t want a component deprecated for one reason or another.

4. Delete your component

An earlier version of this article contained the following guidance for this step:

Once you’re confident in your decision, delete your component and “Remove from library” when you’re prompted during publishing.

Though since publishing, it’s come to my attention that deleted components don’t have previous updates pulled consistently, so my recommendation now would be to move these to a ⚠️ Deprecated page, and leave them there for whatever period you feel is appropriate for changes to propagate through your team’s working files.

5. Other considerations

Auto-layout: We first developed this approach before auto-layout existed. This won’t work for components that have an auto-layout set on a component, as any component added would be put into the auto-layout flow, rather than being placed on top of the other layers. The workaround for this is creating a Fill style with the same tiling bitmap, and replace the component’s fill with that style.

Communication: Always communicate your intent to deprecate something to your team well before you decide to do so. You can explain your reasons why, and tell people what to use instead. This is difficult to do in a purely systematic way using Figma right now. Maybe in the future, we’ll get component versioning with visible changelogs, or team-wide component replacement features that will make this easier to manage.

Maybe someday, Figma will make the finely-crafted notes you write when publishing updates actually visible when people review and pull in those updates, but until then, talk to your team (or Slack them).

It’s one approach: This approach may or may not work for your team. Try it with something small, get feedback, and iterate. If you’ve used similar, or completely different approaches to achieve similar results, let me know in the comments.