0
100
200
300
400
500
600
700
800
900
1000
1100
0
100
200
300
400
500
600
700
800
900
1000
1100
Guide · Variables & styles

How to Export Figma Variables to JSON (and CSS, Tailwind or CSV)

Figma can export variables to JSON without a plugin. Open the Variables view, right-click a collection and choose Export modes. You get one JSON file per mode in the Design Tokens Community Group (DTCG) format, which tools like Style Dictionary can turn into CSS custom properties, a Tailwind theme or platform code.

Figma has no native CSS, Tailwind or CSV export, so those formats need a build step or a plugin. If you only need to copy variables from one Figma file to another, with a preview of what gets created or overwritten, a plugin like Variable Master is quicker than juggling one file per mode.

Updated Sep 24, 20266 min read
On this page
6 steps

Quick steps

1

Open the Variables view

In your Figma Design file, click Variables in the navigation bar on the left. The view opens full-window; click Minimize if you want it as a smaller modal.

2

Export one mode or all modes

Right-click a mode and choose Export mode for a single JSON file, or right-click the collection and choose Export modes to get one file per mode.

3

Check the JSON

Open a file and confirm token names, $type and $value fields, and that aliases point at the tokens you expect. Figma-specific data sits under $extensions with com.figma keys.

4

Transform it for code

Feed the DTCG files to Style Dictionary (or your own script) to generate CSS custom properties, a Tailwind theme, or iOS and Android output.

5

Import into another Figma file

To reuse the tokens in Figma, drag the JSON files into the Variables view of the target file to create a collection, or right-click an existing mode and choose Import mode to update it.

6

Use a plugin for multi-collection moves

When you need several collections in one file, a preview of created and skipped variables, or skip, overwrite and merge options, use Variable Master's Import/Export tab instead.

01

What Figma can export natively in 2026

Native variable export and import live in the Variables view. They produce one file per mode in standard DTCG JSON. That covers the most common request, getting a token file out of Figma, without installing anything.

Two other native routes are worth knowing. Dev Mode has a read-only variables table and a details panel that shows a variable's value, its alias chain and a code snippet. Developers can copy values from there, but it is a lookup tool, not a file export. The Figma REST API has Variables endpoints, but Figma's developer docs state you need a Full seat in an Enterprise org to use them. On Professional or Organization plans, the API is off the table for variables.

02

How to export Figma variables to JSON

  1. Open the file where the collection was created, usually your library file, rather than a file that only uses it.
  2. Click Variables in the left navigation bar.
  3. Right-click a collection and choose Export modes, or right-click a single mode and choose Export mode.
  4. Save the files somewhere your developers can reach, ideally the same repo as the code that uses them.

Each file holds one mode. A collection with Light and Dark modes gives you two files with the same token names and different values. Group names from Figma (color/accent/light) become nested JSON groups, and cross-collection references are stored with Figma's alias data under $extensions.

Before you export, set Code syntax on your variables (Web, Android and iOS names, up to three per variable). Dev Mode snippets then use the same names your codebase uses, which saves a renaming step later.
03

How to export Figma variables to CSS or Tailwind

Figma does not write CSS files. The usual path is a small build step: export the DTCG JSON, then run it through Style Dictionary, which reads the DTCG format and outputs CSS custom properties, SCSS, JavaScript, Swift or Android resources from one config. One file per mode maps neatly onto a :root block for Light and a [data-theme="dark"] block for Dark.

For Tailwind, generate CSS variables first and reference them in your theme. Tailwind v4 reads theme values from CSS through @theme, so a Style Dictionary CSS output can feed it directly. On older Tailwind versions, output a JavaScript object and import it into tailwind.config.js.

04

Can you export Figma variables to CSV?

Not natively. If a PM or content team wants a spreadsheet, export the JSON and flatten it with a short script, or use one of the community plugins that write CSV directly. Keep in mind a CSV loses alias relationships, so treat it as a read-only snapshot and keep JSON as the source you import from.

05

How to import variables into Figma

Native import is the reverse of export. Drag one JSON file per mode into the Variables view to create a new collection, or right-click an existing mode and choose Import mode to update it. Only people with edit access can import. Figma is strict about what it accepts:

  • Colors in sRGB or HSL, dimensions and numbers in px, font families as a single name, and durations in seconds.
  • Booleans need Figma's com.figma.type extension, and strings are a Figma addition to the DTCG types.
  • When you import several mode files at once, a token only becomes a variable if it exists in every file with the same $type.

Tokens that break these rules are skipped, so a JSON file written by hand or exported from another tool may import partially. Check the variable count after importing.

06

When a plugin is worth it

The native flow is file-per-mode and collection-by-collection. That gets tedious when you are moving a whole token set between Figma files, restoring a backup, or merging tokens into a collection that already has variables. Variable Master handles that Figma-to-Figma case:

  • Export lets you pick all collections or specific ones and downloads a single JSON file with variable definitions, values and mode configuration.
  • Import accepts pasted JSON or a file, validates the structure, then previews which variables will be created, updated or skipped. You choose to skip duplicates, overwrite or merge.
  • Modes are matched by name, so a Light and Dark collection lands in the right modes of the destination.
  • The Find tab lists unused variables, so you can clean up before exporting instead of shipping dead tokens.

Variable Master's JSON is built for moving variables between Figma files. It does not generate CSS or Tailwind, so keep the native DTCG export plus Style Dictionary for the code side. The plugin is free with no login. If you haven't added a plugin before, see how to install Figma plugins.

Its Swap tab also helps after an import: it repoints layers from one collection to another by name and type, including library collections, so you can move a file from local tokens onto the newly imported library. The Variable Master docs list every property it swaps.

07

Tokens Studio and other alternatives

Tokens Studio for Figma is the better fit when code or a Git repo is the source of truth. It stores tokens in its own JSON, syncs with providers like GitHub and GitLab, supports themes across many token sets, and can create Figma variables from them. It has a free tier and paid plans, and it takes more setup than a one-off export. Several smaller community plugins export variables straight to JSON or CSS too; they are fine for quick snapshots, but check that their output format matches what your build expects.

Ranked listThe best Figma design token and variables plugins in 2026
FAQ

Frequently asked questions

Can I export Figma variables without a plugin?

Yes. In the Variables view, right-click a collection and choose Export modes, or right-click one mode and choose Export mode. Figma saves DTCG-format JSON, one file per mode.

Can Figma export variables directly to CSS?

No. Dev Mode shows a CSS snippet for individual variables, but there is no CSS file export. Export the JSON and generate CSS with Style Dictionary or a script.

Is the Figma Variables REST API available on every plan?

No. Figma's developer docs say the Variables endpoints require a Full seat in an Enterprise organization, and guests can't use them.

Why did only some of my tokens import into Figma?

Figma only creates variables for tokens with a supported $type and value, such as px dimensions and sRGB or HSL colors. When importing several mode files, a token must exist in all of them with the same type.

What's the easiest way to copy variables from one Figma file to another?

Export from the source file and import into the target. Natively that's one file per mode. Variable Master exports chosen collections into one JSON file and previews the import with skip, overwrite or merge options.

Keep learning

More in Variables & styles

All guides in Variables & styles