FigmaDesign TokensDesign Systems

figma-export.json — Import Any Website's Design System Directly Into Figma

DesignDNA Team5 min read

The gap between a live website and a Figma design file is one of the most frustrating in the design-to-development workflow. A site is visually defined — every color, shadow, and spacing value is right there in the browser — but getting that visual language into Figma means hours of manual color picking, spacing auditing, and style creation.

figma-export.json closes that gap. DesignDNA generates it automatically alongside every scan, and a handful of excellent Figma plugins can import it directly.

What figma-export.json Contains

figma-export.json is structured to map directly to Figma's variable and style system:

{
  "variables": {
    "colors": {
      "primary": "#6D3FFF",
      "primary-foreground": "#FFFFFF",
      "secondary": "#F4F4F5",
      "background": "#09090B",
      "foreground": "#FAFAFA",
      "muted": "#27272A",
      "muted-foreground": "#A1A1AA",
      "border": "#3F3F46",
      "destructive": "#EF4444",
      "coral": "#FF6B4A"
    },
    "spacing": {
      "1": 4,
      "2": 8,
      "3": 12,
      "4": 16,
      "6": 24,
      "8": 32,
      "12": 48,
      "16": 64
    },
    "radius": {
      "sm": 4,
      "md": 8,
      "lg": 16,
      "xl": 24,
      "pill": 9999
    }
  },
  "textStyles": [
    {
      "name": "Display/Large",
      "fontFamily": "Inter",
      "fontSize": 64,
      "fontWeight": 700,
      "lineHeight": 1.05,
      "letterSpacing": -0.03
    },
    {
      "name": "Display/Medium",
      "fontFamily": "Inter",
      "fontSize": 48,
      "fontWeight": 600,
      "lineHeight": 1.08,
      "letterSpacing": -0.025
    },
    {
      "name": "Body/Large",
      "fontFamily": "Inter",
      "fontSize": 18,
      "fontWeight": 400,
      "lineHeight": 1.65,
      "letterSpacing": 0
    },
    {
      "name": "Body/Small",
      "fontFamily": "Inter",
      "fontSize": 14,
      "fontWeight": 400,
      "lineHeight": 1.5,
      "letterSpacing": 0
    },
    {
      "name": "Label/Uppercase",
      "fontFamily": "Inter",
      "fontSize": 12,
      "fontWeight": 500,
      "lineHeight": 1.2,
      "letterSpacing": 0.22
    }
  ],
  "effectStyles": [
    {
      "name": "Shadow/Small",
      "effects": [
        { "type": "drop-shadow", "color": "rgba(0,0,0,0.05)", "offsetX": 0, "offsetY": 1, "blur": 2, "spread": 0 }
      ]
    },
    {
      "name": "Shadow/Medium",
      "effects": [
        { "type": "drop-shadow", "color": "rgba(0,0,0,0.08)", "offsetX": 0, "offsetY": 4, "blur": 12, "spread": 0 }
      ]
    },
    {
      "name": "Shadow/Large",
      "effects": [
        { "type": "drop-shadow", "color": "rgba(0,0,0,0.12)", "offsetX": 0, "offsetY": 8, "blur": 32, "spread": 0 }
      ]
    }
  ]
}

This structure is understood by the major Figma variable import plugins. Import it, and Figma creates a variable collection with every color token, text styles for every typography size, and effect styles for every shadow — automatically.

How to Import figma-export.json Into Figma

Figma doesn't have a native JSON import for variables, but three excellent community plugins handle it:


Option 1: Tokenhaus

Tokenhaus — A modern variable import/export plugin that preserves variable links and aliases.

Install: Figma Community — Tokenhaus

  1. Open Tokenhaus in your Figma file
  2. Select "Import"
  3. Paste figma-export.json content
  4. Tokenhaus creates a variable collection with proper type mappings (COLOR, FLOAT)
  5. Variable aliases and references are preserved across collections

Best for: Teams that use Figma Variables natively and want to maintain alias relationships between token tiers (primitives → semantic → component).


Option 2: Variables Pro

Variables Pro — A full-featured variables management plugin with import, export, and swap capabilities.

Install: Figma Community — Variables Pro

  1. Open Variables Pro in your Figma file
  2. Select "Import Variables"
  3. Upload figma-export.json
  4. Review the preview of variable collections to be created
  5. Confirm import

Best for: Teams who need to import variables and also frequently swap between design modes or re-export variables back to JSON.


Option 3: Token Forge

Token Forge — Imports JSON and creates Figma variables with a builder interface.

  1. Open Token Forge
  2. Import → paste figma-export.json
  3. Variables collection created with type-correct mappings

Option 4: Export/Import Variables

Export/Import Variables — A straightforward utility to move variables in and out of Figma.

  1. Open Export/Import Variables in your Figma file
  2. Select the import option
  3. Upload figma-export.json
  4. Confirm variable creation

Option 5: Variables Import

Variables Import — Another reliable utility for importing JSON variable definitions natively.

  1. Open Variables Import
  2. Upload figma-export.json
  3. The plugin will automatically map the JSON structure to Figma variables

Option 6: Token Importer

Token Importer — Designed specifically for taking structured token JSON and translating it to Figma's native variables.

  1. Open Token Importer
  2. Paste or upload your figma-export.json data
  3. Apply to document

What Gets Created in Figma

After importing figma-export.json, your Figma file gains:

Variable collections:

  • Color variables (COLOR type) — one per extracted color token
  • Spacing variables (FLOAT type) — the entire spacing scale
  • Radius variables (FLOAT type) — all border radius values

Local styles:

  • Text styles — one per typography role (Display/Large, Body/Default, Label/Uppercase, etc.)
  • Effect styles — shadows mapped to Figma drop-shadow effects
  • Gradient paint styles — any gradients detected on the scanned site

After import, designers can:

  • Apply color variables to any layer fill, stroke, or effect
  • Use text styles for consistent typography across components
  • Share the variable library across files via Figma's library publish feature
  • Build components that reference variables — so updating one token propagates everywhere

figma-export.json vs tokens.json in Figma

Both files can be imported into Figma, but they serve different workflows:

figma-export.json tokens.json (via Tokens Studio)
Figma construct Native Figma Variables Tokens Studio token sets
Plugin needed Tokenhaus / Variables Pro / Token Forge / etc. Tokens Studio ONLY
Alias support Yes Yes
Code sync Export to JSON only Sync to GitHub, Style Dictionary
Best for Design-first teams in Figma Design-to-code pipeline teams

Use figma-export.json when your priority is getting variables into Figma fast. Use tokens.json via Tokens Studio when you want a bidirectional sync between Figma and your codebase.

Reverse-Engineering Any Website Into Figma

figma-export.json is most powerful as a reverse engineering tool. You see a website with a design language you want to study, rebuild, or take inspiration from. Instead of hours of manual color picking and spacing audit work, you:

  1. Open DesignDNA and scan the site
  2. Download figma-export.json
  3. Import it into Figma via any of the plugins above
  4. Start building components with the extracted design system

What used to take a senior designer a full day of audit work takes under two minutes.

Generate your figma-export.json now →


See also: design-system.md, tokens.json, variables.css, theme.css