The Challenge
Most design tools treat text and images as separate boxes on a page. If you want text to flow around the actual shape of an image — not just its rectangular bounding box — you're out of luck in Canva. There's no native feature for it.
This is the problem Wrap Text solves. But doing it inside Canva's app platform means working within a set of constraints that shape every decision we make.
No z-order control
The Canva SDK doesn't let apps control which elements appear in front of or behind other elements. This means we can't simply overlay text behind an image and let the image mask it.
Individual element placement
Text must be placed as individual Canva text elements. There's no way to create a single text block that wraps around a shape — each line of wrapped text is its own element.
Native text, not images
We place real Canva text elements, not flattened images of text. This means you keep full editability — change colors, resize, copy/paste — everything works natively.
Transparency-based detection
The app reads the alpha channel of your image to detect its silhouette. This is why images with transparent backgrounds (PNGs, stickers, cutouts) work best.
How We Solved It
Wrap Text works by computing the exact shape of your image and then performing word-by-word layout that flows around that shape. Here's the pipeline that runs every time you click Apply:
- Image capture — We grab the selected image from Canva's SDK and draw it onto an invisible canvas in your browser. No data leaves your device.
- Silhouette detection — We scan every row of pixels, reading the alpha (transparency) channel. For each row, we find where the opaque shape starts and ends. This builds a contour map — the exact silhouette of your image.
-
Word measurement — Every word in your text is measured using the browser's Canvas
measureTextAPI at your chosen font and size. This gives us the exact pixel width of each word. - Contour-aware layout — Working line by line from top to bottom, we figure out which areas are clear of the image silhouette (plus your gap setting). Words are placed into those clear zones, splitting into left and right columns where the image sits in between.
- Native placement — Each computed text line is placed as a native Canva text element at the exact pixel coordinates. The result is fully editable text that hugs the image shape.
Everything runs in your browser
The entire pipeline — image analysis, contour detection, text measurement, and layout computation — runs locally in your browser. No images or text are uploaded to any server. Wrap Text has no backend.
What to Expect
Wrap Text pushes the Canva Apps SDK further than it was designed to go. The results are genuinely useful — and also shaped by what the platform makes possible today.
Here's what you should know:
Text doesn't auto-reflow when you move the image
Once you click Apply, the text elements are placed at fixed positions. If you move or resize the image afterward, the text won't automatically follow. To reflow, select the image again and click Apply. This is a Canva SDK limitation — apps can't listen for element move/resize events after placement.
Each line is a separate text element
Because the SDK doesn't support shaped text blocks, each line of wrapped text is placed as its own Canva text element. This means your layers panel will show multiple text elements. The upside: you can individually adjust any line's color, position, or content.
Font and size are set before placement
The font family and size you choose in Wrap Text affect the line-breaking math. If you change font size after placement, the text will no longer match the calculated layout. Set your preferred font and size before applying, then fine-tune other properties (color, weight) afterward.
Best with transparent-background images
The silhouette detection reads your image's alpha channel (transparency). A photo with a solid white or colored background will appear as a rectangle to the algorithm. For best results, use PNGs with transparency, stickers, clipart, or run Canva's background remover first.
Why We Built It This Way
We explored several approaches before landing on this architecture. The alternative was rendering text as a flat image — which would give pixel-perfect wrapping but take away everything that makes Canva useful: editability, scalability, and native text features.
By placing native text elements, we made a tradeoff: the wrapping is constrained by the SDK, but the output is real Canva text. You can change colors, copy it, resize it, use it in Canva's animation features — it's not locked into a static image.
As the Canva Apps SDK evolves, some of these constraints may lift. When they do, Wrap Text will get better automatically. In the meantime, it does something Canva genuinely can't do on its own — and it does it in one click.
Wrap text around any shape in one click
Select an image, paste your text, and let Wrap Text handle the layout. No signups, no payments, no data collected — runs entirely in your browser.