Skip to main content

Figma Branching

Work in Figma branches without losing your Ditto links, variants, or collaboration setup. Ditto maps one project to an entire Figma file, including all of its branches, so your team can iterate freely in branches while keeping everything connected to the same text items and components.


How it works

If your Figma file is already connected to a Ditto project, you can link a branch of that file to the same project. Open the Ditto plugin in the branch file and enter the branch's Figma URL. The plugin links the branch file to the project automatically, so you don't need to relink text layers, recreate text items, or set up a separate project.

Text edits you make to text items in a branch file are scoped to that branch. They won't overwrite text in the main file until you merge the branch file via Figma.

  • This extends for instance tracking as well. Figma instances of your text item are tracked separately by Ditto across branch and main files

  • Metadata fields changes such as changing status, assignee, developer ID, tags, or notes propagate across all branch files and the main file


Opening a branch in the Ditto plugin

  1. Open the Figma branch file you want to work in and launch the Ditto plugin

  2. Share the file link for the branch file

  3. The plugin automatically connects this branch file to same Ditto project connected to the main file

Let a full plugin sync run for the first time after linking a branch file to Ditto so that all the linked text nodes in the branch file can be correctly linked to their existing text items.

💡 If the plugin doesn't recognize the branch, confirm the main file is already linked to a Ditto project before branching


What's supported in a branch

All core Ditto plugin features work inside a branch file:

  • Linked text items: text layers linked in the main file stay linked in the branch

  • Conflict resolution: conflicts are tracked and resolved separately for branch files

  • Applied variants: variant assignments carry over and can be changed per-branch

  • Auto-linking: new frames are auto-linked the same way as in the main file

  • Link matching suggestions: Ditto surfaces match suggestions for unlinked text layers

  • Magic Translate and Suggestions: you can generate translations and accept style guide suggestions in branch files

  • Branch-specific change items: branches track text edits for text items separately from the activity log tracked for main files

What’s not currently supported in branch files

  • Plural edits: adding plurals to text items in a branch file is disabled

  • Magic draft: Magic draft is disabled in branch files

  • Instance splitting: splitting off a text item instance in a branch file is currently disabled

  • Adding/removing a variant, for a text item: You can only add or remove variants to a text item using plugin in main file


Merging a branch back to main

Merging is handled in Figma, not in Ditto. Ditto explicitly supports Figma’s intended workflow with branches— you can iterate on a branch independently, and only merge those changes in when you’re ready to delete the branch.

When you merge your Figma branch:

  • Text changes from the branch propagate to the main file's frames

  • Ditto reflects the updated text in the main file after the next sync

Alternatively, you can pull in changes from the main Figma file into the branch file. This is also entirely managed via the Figma UI. The Ditto plugin simply acts as a supporting tool in this regard, keeping your text layers synced when either merging into main, or pulling into branch.

Did this answer your question?