Figma to Canva — What to Expect
This guide explains what happens when you export a Figma design and import it into Canva. Our goal is to keep as much of your design editable as possible while preserving visual fidelity. When a Figma feature can't be represented natively in Canva, we automatically convert it to an image so nothing is lost visually — the trade-off is that those elements become non-editable.
How it works
- In Figma, open your file and select the frame(s) you want to export (up to 20 frames per export).
- The plugin analyzes every layer and decides the best way to bring it into Canva: native (editable), hybrid (background rasterized, content editable), or rasterized (pixel-perfect image).
- In Canva, open the companion app and import the export. Each Figma frame becomes a separate Canva page.
No Figma content is ever dropped. If something can't be recreated as an editable element, it is converted to an image so the design always looks complete.
Supported features (editable in Canva)
These Figma features are imported as fully editable Canva elements.
Text
| Feature | Details |
|---|---|
| Basic text | Font family, size (1–100 px), weight, color |
| Bold, italic | Preserved per text run |
| Underline & strikethrough | Preserved per text run |
| Mixed styles in one text block | Multiple fonts, sizes, and colors within a single text element are supported |
| Text alignment | Left, center, right, and justified |
| Hyperlinks | URL links on text runs are preserved |
| Ordered & unordered lists | List markers and indentation levels are preserved |
| Rotated text | Rotation is applied to the editable text element |
| Text case (uppercase, lowercase, title) | Applied during export so the text content reflects the casing |
Shapes
| Feature | Details |
|---|---|
| Rectangle | Including independent corner radii (rounded corners) |
| Ellipse / Circle | Converted to an SVG arc path |
| Polygon | Preserved with point count and corner radius |
| Star | Preserved with point count, inner radius, and corner radius |
| Line | Exported as a shape path |
| Vector paths | Imported natively when within Canva's path limits (see Vector path limits below) |
| Solid color fills | Mapped to hex colors |
| Solid color strokes | Uniform-weight, inset strokes on shapes |
| Image fills on shapes | The image is used as the shape fill — editable in Canva |
Images
| Feature | Details |
|---|---|
| Image elements | Imported as editable Canva image elements |
| Image fills on frames | Frames acting as image crops are converted to native shapes with image fill |
| Simple image masks | A basic shape (rectangle, ellipse, polygon, star) masking a single image is converted to a shape with image fill — keeping both the shape and image editable |
Layout & structure
| Feature | Details |
|---|---|
| Position, size, rotation | Preserved on all elements |
| Opacity | Preserved in the export data (see note in Partial support about Canva limitations) |
| Layer order (z-index) | Elements are placed in the same order as in Figma |
| Groups | Figma groups and frames become Canva groups |
| Components & instances | Treated as groups — children are exported recursively |
| Sections | Exported like frames |
| Frame background color | Solid fills become the page or group background |
| Multiple pages | Each selected frame becomes a separate Canva page |
Partial support
These features are imported with some limitations or behavior differences.
Fonts
Figma and Canva have separate font libraries. Fonts are not automatically matched. During import, you are asked to choose a Canva font replacement for each Figma font family used in your design. If no replacement is chosen, a default font is used.
Tip: If you use common fonts (Inter, Roboto, Open Sans, etc.), you'll likely find an exact or near-exact match in Canva.
Font size
Canva currently limits imported font sizes to 1–100 px. Text with a font size larger than 100 px in Figma will be clamped to 100 px on import. This may cause large headlines to appear smaller than intended.
Opacity
The export preserves opacity values, but the Canva API used for page creation (addPage) does not currently support per-element opacity. Semi-transparent elements may lose their transparency on import.
Nested groups
Canva does not support groups inside groups. When your Figma design has nested groups or frames, they are flattened to a single level. Child positions are recalculated so the layout stays correct — you won't see anything move, but the hierarchy will be one level deep.
Clipped frames (overflow hidden)
When a Figma frame clips its children (overflow hidden), the plugin uses a smart approach:
- Children fully inside the frame remain editable.
- Children partially overflowing are rasterized with the correct clipping applied.
- Children fully outside the frame are excluded.
- The frame background (fills, borders) is captured as a separate image layer.
If children overflow the frame bounds, you may be prompted to choose how to handle the conflict: keep native with smart clipping, or rasterize the entire frame.
Boolean operations (union, subtract, intersect, exclude)
Boolean operations are analyzed and, when the resulting geometry fits within Canva's shape constraints, imported as editable shapes. When the result is too complex (too many paths or too large), the boolean is rasterized as an image.
Tables
- Component-based tables (built from frames): The table background and borders are rasterized, but text remains editable on top — a hybrid approach.
- Native Figma tables (
TableNode): Currently rasterized as a single image. Canva's API does not yet support creating table elements during import.
Not supported (rasterized as images)
These Figma features cannot be recreated as editable Canva elements. They are automatically converted to images to preserve visual appearance. The design will look correct, but these elements cannot be edited as vectors or text in Canva.
Fills & colors
| Feature | What happens |
|---|---|
| Gradient fills (linear, radial, angular, diamond) | Rasterized. Canva has a simple linear gradient in its editor, but Figma's gradient system is broader. |
| Pattern fills | Rasterized |
| Multiple fills on one element | Rasterized when not purely solid |
Effects & styling
| Feature | What happens |
|---|---|
| Drop shadow | Rasterized |
| Inner shadow | Rasterized |
| Layer blur | Rasterized |
| Background blur | Rasterized |
| Noise / texture | Rasterized |
| Blend modes (multiply, screen, overlay, etc.) | Rasterized. An optional “Bake blend modes” setting captures the correct visual composite with layers below. |
Strokes
| Feature | What happens |
|---|---|
| Gradient strokes | Rasterized |
| Dashed / dotted strokes | Rasterized |
| Variable-width (per-side) strokes | Rasterized |
| Complex stroke properties | Rasterized |
Masks
| Feature | What happens |
|---|---|
| Alpha masks | Rasterized |
| Luminance masks | Rasterized |
| Complex vector masks | Rasterized |
| Multiple masks in a group | The mask span is rasterized as a single image |
Exception: A simple shape (rectangle, ellipse, polygon, star) masking a single image is converted natively — see Images under Supported features.
Text (when rasterized)
Text with any of the following is rasterized unless the “Keep text editable” option is enabled:
- Gradient fills on text
- Pattern fills on text
- Effects (shadows, blurs) on text
With “Keep text editable” enabled, the text remains editable but the effect is not visually reproduced.
Other node types
These Figma-specific elements are always rasterized:
| Element | Notes |
|---|---|
| Text on path | No Canva equivalent |
| Connectors & arrows | Canva does not support open paths |
| Stickies, stamps, washi tape | FigJam elements |
| Widgets, embeds, link unfurls | Interactive/embedded content |
| Code blocks | No Canva equivalent |
Vector path limits
Vector paths are imported natively only when they meet Canva's constraints:
- Maximum 30 paths per shape
- Maximum 2 KB total path data
- No Q or T SVG commands (quadratic curves)
- Each path must have a single move (M) command
- Paths must be closed
Vectors exceeding these limits are rasterized.
Typography properties not yet supported
The following typography properties from Figma are not carried over due to current Canva SDK limitations. Text content and basic styling are preserved, but these fine-tuning properties are lost:
| Property | Status |
|---|---|
| Letter spacing | Not supported by Canva SDK |
| Line height | Not supported by Canva SDK |
| Paragraph spacing | Not supported by Canva SDK |
| Vertical text alignment (top/center/bottom) | Not supported by Canva SDK |
Page size limits
Canva pages have dimension constraints. Figma frames are automatically adjusted to fit:
| Constraint | Value |
|---|---|
| Minimum page dimension | 40 px |
| Maximum page dimension | 8,000 px |
| Maximum page area | 25,000,000 px² |
If your Figma frame exceeds these limits, it is scaled down proportionally to fit.
Export limits
| Constraint | Value |
|---|---|
| Maximum frames per export | 20 |
| Maximum asset size | 10 MB per image |
Very thin or elongated images (e.g., a 2×1840 px line) may fail to upload due to Canva platform constraints on image dimensions.
Tips for best results
- Use solid fills when possible. Solid colors import as editable; gradients and patterns are rasterized.
- Avoid effects on text if you want it to remain editable. Shadows and blurs on text force rasterization (unless “Keep text editable” is enabled).
- Simplify vectors. Complex vector paths with many sub-paths may exceed Canva's limits. Flattening or simplifying paths in Figma can help them import as editable shapes.
- Group intentionally. Ungrouped layers with individual effects can produce many separate rasterized images. Grouping related elements in Figma helps keep the export compact.
- Use common fonts. Popular fonts like Inter, Roboto, and Open Sans are easy to match in Canva's font library.
- Check frame dimensions. Frames larger than 8,000 px on any side will be scaled down.
- Keep masks simple. A basic shape masking a single image will import natively. Complex or layered masks will be rasterized.
Feature support summary
| Category | Editable | Rasterized (Image) |
|---|---|---|
| Text (plain) | Yes | — |
| Text (with effects/gradients) | Optional (“Keep text editable”) | Default |
| Rectangles | Yes | — |
| Ellipses, polygons, stars | Yes | — |
| Lines | Yes | — |
| Vectors (within path limits) | Yes | — |
| Vectors (exceeding limits) | — | Yes |
| Boolean operations (simple) | Yes | — |
| Boolean operations (complex) | — | Yes |
| Images & image fills | Yes | — |
| Groups & frames | Yes | — |
| Components & instances | Yes (as groups) | — |
| Solid fills | Yes | — |
| Gradient fills | — | Yes |
| Pattern fills | — | Yes |
| Effects (shadow, blur, etc.) | — | Yes |
| Blend modes | — | Yes |
| Masks (simple shape + image) | Yes | — |
| Masks (complex) | — | Yes |
| Tables (component-based) | Hybrid (text editable) | Background rasterized |
| Tables (native Figma) | — | Yes |
| Connectors & arrows | — | Yes |
| Text on path | — | Yes |
Frequently asked questions
Why are some of my layers imported as images?
When a Figma feature (like a gradient fill, drop shadow, or blend mode) doesn't have a direct equivalent in Canva, the layer is converted to an image to preserve its visual appearance. You'll see it looks correct, but you won't be able to edit it as a vector or text.
Can I control what gets rasterized?
The plugin offers two settings:
- Bake blend modes — When enabled, elements with blend modes are rasterized with their correct visual composite, capturing how they look layered on top of other elements.
- Keep text editable — When enabled, text with effects or gradients stays editable but loses those visual effects. When disabled, such text is rasterized for full visual fidelity.
Why don't my fonts match?
Figma and Canva have different font libraries. During import, you choose a Canva font for each Figma font used in your design. If the exact font isn't available in Canva, pick the closest alternative.
Why is my design scaled down?
Canva pages have a maximum size of 8,000 × 8,000 px with a maximum area of 25 million pixels. Figma frames exceeding these limits are proportionally scaled down to fit.
Can I export Figma Slides?
Yes. The plugin supports Figma Slides — each slide is exported as a separate Canva page.
What is the “hybrid” export strategy?
For frames with visual properties (like a gradient background) that contain editable content (like text), the plugin uses a hybrid approach: the frame's background is rasterized as an image, and the children (text, shapes) are layered on top as editable elements. This gives you the best of both worlds — visual fidelity for the container and editability for the content.