Skip to content

Variables

figma_create_variable_collection

Creates a variable collection — a container of tokens with modes (themes). The collection is created first, then variables are put into it with figma_create_variable. Requires the plugin.

Parameter Type Required Default Description
name string yes Collection name, for example 'Colors' or 'Spacing'.
initialModeName string? null Name of the first mode. By default Figma calls it 'Mode 1'.
additionalModes string? null Additional modes, comma-separated, for example 'Dark, High Contrast'.
JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "description": "Collection name, for example \u0027Colors\u0027 or \u0027Spacing\u0027.",
      "type": "string"
    },
    "initialModeName": {
      "description": "Name of the first mode. By default Figma calls it \u0027Mode 1\u0027.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "additionalModes": {
      "description": "Additional modes, comma-separated, for example \u0027Dark, High Contrast\u0027.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "name"
  ]
}

figma_delete_variable_collection

Deletes a variable collection together with all its variables. The operation is irreversible. Requires the plugin.

Parameter Type Required Default Description
collectionId string yes Collection id, for example 'VariableCollectionId:1:2'.
JSON Schema
{
  "type": "object",
  "properties": {
    "collectionId": {
      "description": "Collection id, for example \u0027VariableCollectionId:1:2\u0027.",
      "type": "string"
    }
  },
  "required": [
    "collectionId"
  ]
}

figma_create_variable

Creates a variable in a collection. resolvedType: COLOR, FLOAT, STRING or BOOLEAN. A color in valuesByMode is set by the string '#RRGGBB'. Name hierarchy is made with a slash: 'color/brand/primary'. Requires the plugin.

Parameter Type Required Default Description
name string yes Variable name, for example 'color/brand/primary'.
collectionId string yes Collection id.
resolvedType string yes Type: COLOR, FLOAT, STRING, BOOLEAN.
valuesByMode string? null Values per mode, JSON of the form {"1:0":"#FF0000","1:1":"#0000FF"}.
description string? null Variable description.
JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "description": "Variable name, for example \u0027color/brand/primary\u0027.",
      "type": "string"
    },
    "collectionId": {
      "description": "Collection id.",
      "type": "string"
    },
    "resolvedType": {
      "description": "Type: COLOR, FLOAT, STRING, BOOLEAN.",
      "type": "string"
    },
    "valuesByMode": {
      "description": "Values per mode, JSON of the form {\u00221:0\u0022:\u0022#FF0000\u0022,\u00221:1\u0022:\u0022#0000FF\u0022}.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "description": {
      "description": "Variable description.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "name",
    "collectionId",
    "resolvedType"
  ]
}

figma_update_variable

Changes the value of a variable in a specific mode. A color is set by the string '#RRGGBB', a number by a number, a reference to another variable by its id. Requires the plugin.

Parameter Type Required Default Description
variableId string yes Variable id, for example 'VariableID:1:23'.
modeId string yes Mode id, for example '1:0'.
value string yes New value: '#FF0000', a number, true/false or JSON.
JSON Schema
{
  "type": "object",
  "properties": {
    "variableId": {
      "description": "Variable id, for example \u0027VariableID:1:23\u0027.",
      "type": "string"
    },
    "modeId": {
      "description": "Mode id, for example \u00271:0\u0027.",
      "type": "string"
    },
    "value": {
      "description": "New value: \u0027#FF0000\u0027, a number, true/false or JSON.",
      "type": "string"
    }
  },
  "required": [
    "variableId",
    "modeId",
    "value"
  ]
}

figma_delete_variable

Deletes a variable. When it is used somewhere Figma refuses — remove the bindings first. Requires the plugin.

Parameter Type Required Default Description
variableId string yes Variable id.
JSON Schema
{
  "type": "object",
  "properties": {
    "variableId": {
      "description": "Variable id.",
      "type": "string"
    }
  },
  "required": [
    "variableId"
  ]
}

figma_rename_variable

Renames a variable. Slashes in the name define the group hierarchy. Requires the plugin.

Parameter Type Required Default Description
variableId string yes Variable id.
newName string yes New name, for example 'color/brand/primary'.
JSON Schema
{
  "type": "object",
  "properties": {
    "variableId": {
      "description": "Variable id.",
      "type": "string"
    },
    "newName": {
      "description": "New name, for example \u0027color/brand/primary\u0027.",
      "type": "string"
    }
  },
  "required": [
    "variableId",
    "newName"
  ]
}

figma_set_variable_description

Sets the description of a variable — designers see it in the variables panel. Requires the plugin.

Parameter Type Required Default Description
variableId string yes Variable id.
description string yes Description text.
JSON Schema
{
  "type": "object",
  "properties": {
    "variableId": {
      "description": "Variable id.",
      "type": "string"
    },
    "description": {
      "description": "Description text.",
      "type": "string"
    }
  },
  "required": [
    "variableId",
    "description"
  ]
}

figma_add_mode

Adds a mode to a collection — this is how themes (Dark) and breakpoints (Mobile) are made. The number of modes is limited by the Figma plan. Requires the plugin.

Parameter Type Required Default Description
collectionId string yes Collection id.
modeName string yes Mode name, for example 'Dark'.
JSON Schema
{
  "type": "object",
  "properties": {
    "collectionId": {
      "description": "Collection id.",
      "type": "string"
    },
    "modeName": {
      "description": "Mode name, for example \u0027Dark\u0027.",
      "type": "string"
    }
  },
  "required": [
    "collectionId",
    "modeName"
  ]
}

figma_rename_mode

Renames a mode of a collection. Requires the plugin.

Parameter Type Required Default Description
collectionId string yes Collection id.
modeId string yes Mode id.
newName string yes New mode name.
JSON Schema
{
  "type": "object",
  "properties": {
    "collectionId": {
      "description": "Collection id.",
      "type": "string"
    },
    "modeId": {
      "description": "Mode id.",
      "type": "string"
    },
    "newName": {
      "description": "New mode name.",
      "type": "string"
    }
  },
  "required": [
    "collectionId",
    "modeId",
    "newName"
  ]
}

figma_get_token_values

Reads variables straight from the plugin, bypassing REST. It works on any Figma plan, unlike figma_get_variables. Requires the plugin.

Parameter Type Required Default Description
refresh boolean false Re-read the data in the plugin before reading.
JSON Schema
{
  "type": "object",
  "properties": {
    "refresh": {
      "description": "Re-read the data in the plugin before reading.",
      "type": "boolean",
      "default": false
    }
  }
}

figma_batch_create_variables

Creates many variables in one collection at once: noticeably faster than one by one. The variables format is a JSON array: [{"name":"color/bg","resolvedType":"COLOR","valuesByMode":{"1:0":"#FFFFFF"}}]. Requires the plugin.

Parameter Type Required Default Description
collectionId string yes Collection id.
variables string yes Array of variable descriptions as a JSON string.
JSON Schema
{
  "type": "object",
  "properties": {
    "collectionId": {
      "description": "Collection id.",
      "type": "string"
    },
    "variables": {
      "description": "Array of variable descriptions as a JSON string.",
      "type": "string"
    }
  },
  "required": [
    "collectionId",
    "variables"
  ]
}

figma_batch_update_variables

Updates the values of many variables in one call. The updates format is a JSON array: [{"variableId":"VariableID:1:2","modeId":"1:0","value":"#FF0000"}]. Requires the plugin.

Parameter Type Required Default Description
updates string yes Array of updates as a JSON string.
JSON Schema
{
  "type": "object",
  "properties": {
    "updates": {
      "description": "Array of updates as a JSON string.",
      "type": "string"
    }
  },
  "required": [
    "updates"
  ]
}

figma_setup_design_tokens

Rolls out the foundation of a design system in one call: it creates a collection with the modes you need and fills it with variables. The tokens format is a JSON array, the same as in figma_batch_create_variables. Requires the plugin.

Parameter Type Required Default Description
collectionName string yes Collection name, for example 'Design Tokens'.
tokens string yes Array of variable descriptions as a JSON string.
initialModeName string? null Name of the first mode, for example 'Light'.
additionalModes string? null Additional modes, comma-separated, for example 'Dark'.
JSON Schema
{
  "type": "object",
  "properties": {
    "collectionName": {
      "description": "Collection name, for example \u0027Design Tokens\u0027.",
      "type": "string"
    },
    "tokens": {
      "description": "Array of variable descriptions as a JSON string.",
      "type": "string"
    },
    "initialModeName": {
      "description": "Name of the first mode, for example \u0027Light\u0027.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "additionalModes": {
      "description": "Additional modes, comma-separated, for example \u0027Dark\u0027.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "collectionName",
    "tokens"
  ]
}