From 8c2dc1f22da4018370ee743fb9c09f3b61b7f28b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?andr=C3=A9s=20gonz=C3=A1lez?= Date: Mon, 23 Jun 2025 15:37:57 +0200 Subject: [PATCH] :books: Add DT import/export options to the docs (#6753) --- .../22-tokens-export-multiple.webp | Bin 0 -> 10892 bytes .../23-tokens-export-single.webp | Bin 0 -> 15682 bytes docs/user-guide/design-tokens/index.njk | 91 +++++++++++++++++- 3 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 docs/img/design-tokens/22-tokens-export-multiple.webp create mode 100644 docs/img/design-tokens/23-tokens-export-single.webp diff --git a/docs/img/design-tokens/22-tokens-export-multiple.webp b/docs/img/design-tokens/22-tokens-export-multiple.webp new file mode 100644 index 0000000000000000000000000000000000000000..9daef9166c972c3919b1fc0b979bad5ffbebf350 GIT binary patch literal 10892 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 literal 0 HcmV?d00001 diff --git a/docs/img/design-tokens/23-tokens-export-single.webp b/docs/img/design-tokens/23-tokens-export-single.webp new file mode 100644 index 0000000000000000000000000000000000000000..acefbd41f94fc22a3d159190dc79b41bf4edb30c GIT binary patch literal 15682 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 and Exporting Tokens

You can export Tokens from Penpot and import them from your computer to a Penpot file. Tokens can be imported from the Tools option at the bottom of the Tokens tab.

-

The Import functionality allows you to upload and replace the global token set using a single file, while the Export functionality lets you download the current global token set using a single file to your system.

+

The Import functionality allows you to upload and replace the global token set using a single file or a folder with multiple files in it.

These features support JSON files formatted according to specific guidelines and preserve the ability to undo changes if needed.

Tokens import export
    -
  1. Import: At the Tools option, select Import, then select your tokens.json file.
  2. -
  3. Export: At the Tools option, select Export. This will export all the tokens, including token sets and themes.
  4. +
  5. Import: Click Tools, then select Import to view import options.
  6. +
  7. Export: Click Tools, then select Export to view export options.
+ +

Import Options

+

Single file

+ +

You can import a JSON file comprising all tokens, token sets and token themes.

+

When importing a single file, the first-level keys of the json file will be interpreted as the set name.

+ +
+
+  {
+    "Global": {
+      // first-level key will be interpreted as set name
+      "color": {
+        "300": {
+          "$value": "red",
+          "$type": "color",
+          "$description": "my token description"
+        }
+      }
+    },
+    "Brands/A": {
+      // first-level key will be interpreted as set name
+      "color": {
+        "accent": {
+          "$value": "{red}",
+          "$type": "color",
+          "$description": "my token description"
+        }
+      }
+    },
+    "Brands/B": {
+      // first-level key will be interpreted as set name
+      "color": {
+        "accent": {
+          "$value": "#fabada",
+          "$type": "color",
+          "$description": "my token description"
+        }
+      }
+    }
+  }
+
+
+ +

Multifile

+

Imports a folder containing multiple JSON files (one per Token Set) and additional files like $themes.json or $metadata.json configurations. When importing multiple files, the name and path of the individual json files inside the folder will be interpreted as set names. These files should only contain tokens.

+

Multifile folder structure example:

+ +
+    folder/
+    ├── global/
+    │   ├── colors.json		  // can only contain tokens
+    │   └── dimension.json	// can only contain tokens
+    ├── mode/
+    │   ├── dark.json       // can only contain tokens
+    │   └── light.json      // can only contain tokens
+    ├── $themes.json        // themes config
+    └── $metadata.json      // other metadata config
+  
+
+
The main folder name won’t be used to build token set names, so in this example, folder will be ignored in the set names.
+ +

Export Options

+

Just like with importing, you can export tokens, themes and sets either in a single JSON file or in multiple files. There is no difference in the content being exported; the choice depends on your team's preferences for file organization: a single file with all the tokens, sets and themes, or a folder structure with separated JSON files organized by sets.

+

In both cases you can preview the result of the export options:

+ +
+ Tokens export with multiple files +
Exporting tokens as multiple files.
+
+ +
+ Tokens export with single file +
Exporting tokens as a single file.
+
+ + + + + + + + + +