The JSON tab shows your variables as a nested JSON document and lets you edit them as text.
Collections are the top level, each carrying its $id and $modes. Every / in a name becomes a level of nesting. Leaves carry $id, $type and $value.
{
"color": {
"$id": "VariableCollectionId:1:2",
"$modes": ["Light", "Dark"],
"red": {
"500": { "$id": "VariableID:3:4", "$type": "COLOR", "$value": "#EF4444" }
}
}
}
Collections and groups fold like code, so a large file stays navigable.
Read this before you edit
Edits apply automatically, about half a second after you stop typing. There is no Save button and no confirmation.
A variable missing from the JSON is deleted. Delete a block in the editor and those variables are gone from the file. This is the single most destructive thing in the plugin, and it happens without a prompt.
You cannot create variables here. A leaf without a $id is ignored, and an unknown collection is skipped. The JSON tab edits what exists; it does not import.
$value is the first mode only. Other modes are not shown and are not written.
Invalid JSON is simply not applied — the editor outlines itself in red until it parses again.
Format pretty-prints the document.
To export, select the text and copy it. There is no download button.