Shared Plugin Data

We believe data stored by the Tokens Studio Plugin should be accessible by other Figma plugin makers as well, to create a thriving ecosystem of tools all being able to communicate with one another.

Imagine a world where we're able to store plugin data on a layer or document, and other plugins can pick that back up, and do the things their plugin does best. This is why we've opened up the plugin data that the plugin stores on your document or nodes so you can use it with other plugins as well.

How it works

We're storing tokens stored on a document on the shared plugin data namespace tokens. Other plugins can read from that. Also, we're storing applied decisions on each node on the same shared namespace. All you'd need to do is find out what tokens are stored on a node. Figma provides a couple of helpful functions to do so.

Getting tokens stored on the document

figma.root.getSharedPluginData("tokens", "values") allows you to read all tokens stored on the document.

Getting tokens applied on a layer

node.getSharedPluginData("tokens", key) gives you the token that was applied on that node for that key.

To find out what keys are available, you'd first run node.getSharedPluginDataKeys("tokens") on the node to find out what keys are set.

With that result you're able to query the stored tokens.

Apply Tokens on a layer

node.setSharedPluginData("tokens", key, value) allows you to store a token on a layer. You'd need to make sure that key is any of the plugin data keys that we're using.

Figma Plugin Helpers

We've built a tool that allows you to read all of the above more easily in your own plugin. We're exposing functions that wrap our plugin data functions, so you can easily get tokens stored on the document, on the layer, and even get the resolved tokens taking the activated sets/themes into account!

Last updated

Was this helpful?