Large-image proxy loading — High-resolution photos are now rendered on the canvas from an automatically downscaled proxy, dramatically cutting memory use and preventing crashes on mobile devices when customers upload big images. The full-resolution original is always preserved — print exports and orders are unaffected. Control the threshold with the new imageProxyMaxDimension option (default 1600px; set 0 to disable).
Hybrid server-side proxies — Images can now point to a server-hosted, pre-downscaled variant (proxySource) so the browser only ever downloads the smaller version, saving bandwidth on top of memory. The full-resolution original is only ever used for export. Uploads and Pixabay picks wire this up automatically, and the choice is saved with the design.
Per-image proxy opt-out — A new imageProxy parameter (default on) lets you force any image — or a whole group, such as your configured product images — to always render at full resolution.
Accurate multi-view pricing — Prices for views a customer hasn't opened yet are now included in the total from the start, so the running price is correct even before every view has been visited.
New documentation — Added a dedicated Image Proxy Loading guide covering both proxy modes, configuration, per-group opt-out, and the upload-server contract.
Gradient-filled SVG exports — Fixed a crash ("color.match is not a function") when exporting SVGs containing gradient or pattern fills; these designs now export correctly while keeping their gradients on screen.
Bulk Order panel — The Bulk Order panel no longer shows up empty ("Please set all variations…") on products whose variations are stored in the product/view options; the configured attributes (e.g. Size, Colors) now load reliably.
Names & Numbers options — Dropdown values and per-entry price configured at product/view level are now picked up by the Names & Numbers module.
Mask rotation — Print-area masks can now be rotated directly on the canvas in mask-edit mode, alongside moving and scaling.
Oversized images auto-fit — Custom images larger than the canvas are now always scaled down to fit the stage automatically — no setting required (explicit resize values and print-area bounds still take precedence).
Element toolbar visibility — The element toolbar no longer disappears when both the Position/Layer Order and Transform tools are excluded together; the remaining actions (Duplicate, Remove Background, Remove) stay available.
Graphic auto-centering — Catalog graphics added without a saved position now drop into the centre of the print area instead of a corner.
Per-view & per-print-area fonts — Font pickers can now be scoped to each view and each print area, so customers only see the fonts you've assigned to the area they're editing instead of the full global list.
Touch scrolling over the canvas — On touch devices, swiping over the canvas now scrolls the page naturally instead of getting trapped on the customizer.
Text editing — The last line of a text element is now fully editable, and pressing Enter reliably inserts a new line.
Replace across views — Text replacement now also applies to text added through modules when "replace in all views" is enabled.
Legacy upload settings — Older top-level upload configuration keys are now automatically migrated into the new uploads module config, preserving upload behaviour on upgrade.
Pricing rule values — Pricing rule prices and values stored as strings are now correctly coerced to numbers, preventing rules from silently failing to apply.
Colour pricing on multi-path SVG elements — Dynamic pricing rules now correctly sum individual path prices when an SVG contains multiple distinct paths, so customers pay the right amount for each colour they choose.
Canvas layer shadow parts — FabricJS canvas layers are now exposed as CSS shadow parts, enabling external stylesheets to target and customise individual canvas layers without modifying the component source.
Simplified pricing API — The imageSize and imageSizeScaled properties have been removed from pricing rules; image-dimension pricing is now handled through a cleaner, more predictable mechanism.
Colour pricing on text — Fixed colour pricing silently falling back to zero when text element colour prices were configured but the global textParameters object was empty ({}).
Catalog design placement — Designs fetched from the graphics catalog that were saved at the default 0/0 origin are now centred on the canvas when added, matching the expected behaviour.
Optional views (legacy) — Views stored with optionalView: "yes" / "no" string values (legacy format) are now handled correctly; the editor no longer incorrectly locks these views.
Curved text pricing — Switching a text element to curved mode no longer resets its individual element price.
Upload-zone to print-area conversion — Elements placed inside an upload zone now keep their correct position when the zone is converted to a print area.
Background elements in exports — Background elements that extend outside the canvas bounds are no longer clipped during offscreen rendering (exports), ensuring full bleed backgrounds appear correctly in print-ready files.
Text cursor under text transforms — The text editing caret no longer jumps to an incorrect position when textTransform (uppercase/lowercase) is applied to the element.
Export-only print areas — A print area can now be marked export-only, so it appears in the final print-ready file but stays hidden in the live customizer. Useful for production marks, hidden backgrounds, or print-only content customers shouldn't see while designing.
Resize controls for free-scaling text — Text elements set to free scaling now show width and height dimension controls, so they can be sized precisely instead of dragged by eye.