Install & use figma-print
Add the plugin to your Figma desktop app, set your bleed, and export. Everything — including the conversion to true CMYK — happens on your machine, instantly and offline.
1 · Add it to Figma
figma-print isn't on the Figma Community, so you add it by downloading the plugin and importing it once. You'll need the Figma desktop app — the browser version can't load it.
- Download the plugin
.zipabove and unzip it anywhere. - Open the Figma desktop app and any design file.
- From the menu, go to
- In the file picker, choose the
manifest.jsonfrom the folder you just unzipped. - figma-print now appears under , ready to run.
Note. You only do this once. After that, figma-print is just there in your Plugins menu whenever you need it.
2 · Use it
Select the frames you want to print on the canvas, then run figma-print from . The main panel has everything you need for a typical job; Advanced holds the colour, marks and output controls for when you want them.
Bleed & placement
The main panel reads your selection and shows a live schematic of the print model — bleed, trim and safe zone — that updates as you type.
- Check your selection. The panel shows how many frames you picked and the final printed size.
- Set your bleed — 3 mm is the usual metric amount; 0.125 in is the US equivalent. Ask your printer if you're unsure.
- Choose bleed placement: Inside frame if your artwork already includes bleed, or Outside (extend) to grow the frame and stretch the background out to the new edge.
- Hit Export print-ready PDF — or click Add to canvas first to drop a non-destructive “Print-Ready” copy on the page (with bleed, locked crop marks and a safe-zone guide) so you can eyeball it. Your originals are never touched; ⌘Z or Remove undoes it.
Advanced → Colour — see what shifts in CMYK
A live look at how every colour in your selection will behave on press. Nothing here changes your file — it just shows you what to expect before you commit.
- Pick the CMYK profile your printer uses. GRACoL (coated stock) is the default; SWOP, screen (sRGB) and a custom embedded option are there too.
- Choose the conversion method — Formula for a quick estimate, or ICC for an accurate, profile-driven conversion you can trust.
- Set the rendering intent (relative colorimetric suits most print).
- Read the colour list. Each swatch shows its hex, its CMYK mix and how much ink it lays down. Anything too ink-heavy is flagged, gradient stops included, and you can tag any Pantone/spot colours here.
Formula is a ballpark — handy for a fast glance. When a colour decision actually matters for the print, switch to ICC.
Advanced → Output — tune the PDF
- Choose Files — combine everything into one multi-page PDF (reading order) or export one file per frame.
- Pick the resolution — 300 dpi is standard for print; go higher only for fine detail.
- Pick the PDF standard — PDF/X-4 (colour-managed) or PDF/X-1a (true DeviceCMYK). Both are produced offline; see below.
- Set the total ink limit used for the colour warnings (the default suits most coated stocks).
3 · True CMYK, on your machine
However you export, figma-print converts your artwork to real DeviceCMYK before it leaves Figma — using a professional ICC engine (LittleCMS) and a bundled GRACoL profile, the same maths a print RIP uses. There's no conversion service, no upload and no cold start: it all happens locally, in a click.
- PDF/X-4 — a colour-managed PDF/X with your profile attached as an OutputIntent. Right for the large majority of jobs.
- PDF/X-1a — every pixel converted to DeviceCMYK and embedded as a true CMYK image, for the fussy shops that demand exact separations.
Good to know. The artwork is rasterised to a high-resolution (300 dpi by default) CMYK image — print-identical at final size, since every press RIP rasterises anyway, and it sidesteps font and transparency surprises.
Building from source
Prefer to build it yourself, or want to tinker? Clone the repo and build from the root:
cd figma-print
npm install
npm run build
That produces the same files you'd get in the download, including the manifest.json you import into Figma. Use npm run watch while you're hacking on it so it rebuilds as you go.
Troubleshooting
- “No frames selected.” figma-print works on frames. Select at least one frame on the canvas (not a group or a loose layer) before you generate print frames or export.
- A big frame is slow or stalls. Higher resolutions balloon the file size fast — a poster at the top setting is huge. Drop back to 300 dpi, which is plenty for almost all print.
- The download feels large. That's expected — the colour profile is bundled in so the colour check works offline, with nothing phoning home.
- Don't see your latest edits? Reload the plugin from (right-click it and choose Reload) so it picks up your newest artwork.
Want the background on choosing bleed, safe zones, colour profiles and ink limits? There's a deeper guide in docs/USAGE.md in the repository.