Specify helps you synchronize design data between sources (e.g., Figma) and destinations (e.g., a GitHub repository).
Here is the current workflow you can create with Specify. Of course, more sources and destinations will be added in the future.
The following workflow shows how you can collect design tokens (here colors) from Figma and distribute them to GitHub and a local directory.
How Specify updates your design data between your Sources and your Destinations
For now, Specify only synchronizes your design tokens and assets from Figma to a GitHub repository or a local directory.
The synchronization flow is:
You update your design data in Figma (we advise you to use Figma libraries) and publish your Figma library
Specify detects the update and updates your Specify repositories collected design data from your freshly updated Figma library
Specify distributes your updated design data and generates a Pull Request in your GitHub repositories set as Destinations to your Specify repositories. You can also use our CLI to pull design data in your projects.
Automatic synchronization between Sources and Specify
Your repositories in Specify are automatically synchronized with your sources every 24h at the same hour of the creation of your repository.
👉 If you created a repository at 5pm, it will be synchronized every day at 5pm.
ℹ️ Figma's webhooks are still in beta and not stable enough for us to use them to automatically synchronize your repositories in Specify.
Automatic synchronization between Specify and Destinations
When you update your Specify config file (
.specifyrc.json) in your GitHub repository, Specify will automatically generate a new Pull Request if necessary.
For instance, if you update your config file to add another type of design data (e.g., vector) in your project, Specify will create a Pull Request containing your vectors coming from Specify.
ℹ️ Please make sure you're on the
main branch when updating your Specify config file (
.specifyrc.json). Otherwise, Specify won't detect the change.
You can also manually synchronize a Specify repository with its sources and destinations.
Within the app
Either by manually syncing your Specify repository in the app:
With the Specify CLI
Or by manually syncing your Specify repository with the CLI with the command