xd.to.design docs
What it is
xd.to.design converts Adobe XD documents into fully editable Figma layers — real frames, editable text, native fills, vectors and bitmap assets, not a flat screenshot.
| Option | Output |
|---|---|
| Figma plugin | Figma layers, converted on the ‹div›RIOTS API |
| API | Figma layers or Figma REST API JSON — 2 formats total |
The Figma plugin requires Figma open; the API doesn't. Full output details, including all 4 API formats, in Output.
What it does
Drop in a .xd file. xd.to.design reads the document's structure
— artboards, layout, typography, color, gradients, images, icons and
components — and rebuilds it as a structured, editable Figma design:
each artboard becomes a frame, text stays editable, fills and gradients
become native Figma paints, and component instances are stitched back
together from the document's symbol library. It is a deterministic conversion,
not a quality slider: every import produces the same fully reconstructed
result.
Where it runs
The plugin runs inside Figma — you'll need Figma open to use it (Figma Community). It works in Figma Design, FigJam, Figma Slides and Figma Buzz.
The plugin sends the file to the ‹div›RIOTS API, which converts it. See Privacy & processing.
The ‹div›RIOTS API runs wherever you call it from — any backend or
app that can make an HTTP request. Same converter, exposed as the
xd input format. Metered separately — see
Pricing. Full reference:
‹div›RIOTS API documentation.
Supported input formats
The same input applies to the plugin and the API: Adobe XD documents.
| Category | Formats |
|---|---|
| Adobe XD | .xd (documents saved locally) |
Only locally-saved documents are accepted. A cloud-saved
.xd is a link to Creative Cloud with no artwork inside,
so the reader refuses it by name — save a local copy from Adobe XD first.
Every XD document ever shipped uses manifest format version 6, which
is what the converter targets.
Output
Figma plugin
Every import produces the same thing: fully editable Figma layers. Before converting, a settings dialog lets you shape what lands on the canvas:
| Setting | What it does |
|---|---|
| Artboards |
Import all artboards, or a range (e.g. 1-3,7).
On the free tier the first three artboards import.
|
| Layout | Arrange the imported artboards vertically, horizontally, or in a grid (with a chosen number of columns), inside one parent frame. |
| Pasteboard | Optionally also import the artwork that lives outside every artboard, as one additional frame. |
| Fonts | Fonts the document references but that aren't available are flagged so you can remap them before importing. |
Each artboard is converted immediately before it is placed, so the plugin reports progress per artboard and nothing larger than one artboard's model is ever resident.
API
Two output formats available for the xd input type:
| Output format | What it is |
|---|---|
figma-clipboard | Data to load into the clipboard and paste onto the Figma canvas |
figma-rest | JSON, structurally compatible with the Figma REST API |
The API accepts the same choices as the plugin's dialog: a
range of artboards, and a pasteboard flag to
include the off-artboard artwork. There is no image output — an XD document
has no flattened composite to return.
Editability
| Element | How it imports |
|---|---|
| Text | Editable Figma text layers — both point text and area (boxed) text, positioned by baseline. |
| Layout | Artboards as frames; nested groups preserved. |
| Images | Cut out as bitmap assets. Images beyond Figma's 4096px limit are reported. |
| Vectors & icons | Editable vector shapes, including filleted (rounded-corner) polygons. |
| Colors | Native Figma fills, gradients included. |
| Components | Instances re-merged with their master from the document's symbol library, then imported as finished artwork. |
A few XD features have no Figma equivalent and are not reconstructed: prototype interactions, scroll viewports (imported as ordinary frames), repeat grids (imported as the plain groups XD materialised them into), and the brightness adjustment on a background blur (the blur itself comes across). Each is reported after import so you know exactly what changed.
Limits
| Limit | Value |
|---|---|
| Accepted input | Locally-saved .xd only (no Creative Cloud links) |
| Max image dimension | 4096px — Figma's limit; larger images are reported |
| Free-tier artboards | First 3 artboards per document |
| Max file size (free tier) | 500 MB; uncapped on ‹div›RIOTS ONE |
| Not converted | Prototype interactions, scroll viewports, repeat-grid relationships, background-blur brightness |
Privacy & processing
- The Figma plugin, the web app and the API convert your file on the ‹div›RIOTS API. The file is stored only for the processing, then deleted, and never used for training.
-
Anonymous usage analytics are captured (on
api.divriots.com) to improve the experience. - If an import fails, you can choose to send that one file to us for debugging; nothing is uploaded unless you click that button.
Terms and privacy policies for ‹div›RIOTS products are published at divriots.com/legal.
Pricing
| Option | Free tier | Paid |
|---|---|---|
| Figma plugin | 5 imports (first 3 artboards each), no card required | Full imports draw on a shared ‹div›RIOTS ONE credit balance |
| API | — |
Metered per call; the xd input is a flat 2 credits
per call
|
One subscription for every ‹div›RIOTS product — xd.to.design included — with a shared credit balance you top up as needed.
How to use
Figma plugin
- Open your Figma file, launch xd.to.design from the plugins menu.
-
Drop or upload your locally-saved
.xddocument. - In the settings dialog, choose which artboards to import, how to lay them out, and whether to include the pasteboard; remap any missing fonts.
- Click Import.
- Edit the result directly on the canvas.
API
- Generate an API key from your ‹div›RIOTS ONE dashboard.
-
Send a request to the
/convertendpoint withinput: xdand a chosen output format —figma-clipboardorfigma-rest— optionally with arangeof artboards and thepasteboardflag. -
The conversion runs as a background job: the call returns
202 Acceptedwith aLocationheader. PollGET /convert/jobs/{jobId}untilstatusisdone, then download the result fromresultUrl(a signed URL valid ~15 min; re-poll for a fresh one if it expires).
Full reference: ‹div›RIOTS API documentation.
FAQ
Which XD files are supported?
Adobe XD documents saved locally (.xd). A cloud-saved document — a Creative Cloud link — carries no artwork, only a pointer, so it is refused. See Supported input formats, above.
Is anything uploaded when I import in the plugin?
Yes: the file goes to the ‹div›RIOTS API, which converts it. It is stored only for the processing, then deleted, and never used for training. See Privacy & processing.
How accurate is the conversion?
It reliably reconstructs artboards, layout, editable text, native fills and gradients, vector shapes, bitmap images and component instances. A handful of XD features have no Figma equivalent and are reported after import — see Limits.
What happens to my component instances?
Each instance is re-merged with its master from the document's symbol library, so it imports as finished artwork. The rare instance whose master is missing from the file has nothing to draw and is reported.
Are fonts preserved?
Text imports as real, editable Figma text. Fonts the document references that aren't available are flagged so you can remap them to a Figma font before importing.
Can I import just some artboards?
Yes — import all artboards, or type a range (e.g. 1-3,7). You can also arrange them vertically, horizontally, or in a grid, and optionally include the artwork on the pasteboard.
Does it work in FigJam and Figma Slides?
Yes — the plugin runs in Figma Design, FigJam, Figma Slides and Figma Buzz.
Are XD prototype interactions imported?
No. Prototype wiring has no importer-side equivalent in Figma, so it is left out; everything visual comes across.
Is xd.to.design free?
Your first five imports are free — the first three artboards of each document — no card required. Beyond that, imports draw on a shared ‹div›RIOTS ONE credit balance (see Pricing, above).
Does it work with Figma's Dev Mode?
Yes — once converted to Figma layers, standard Figma functionality applies, including Dev Mode inspection, prototyping, and component libraries.