Version v1.19.0 Changelog December 13, 2023
Check our migration guide for more details on the changes.
Breaking Changes
- The editor now sets all scopes directly for the selected target block. (Previously, the scope
content/replacewas set for the associated fill block instead.) - Use of the following scopes is being deprecated in favor of new, more granular scopes:
content/replace- Use a combination offill/changeandtext/editinstead.design/arrange- Use a combination oflayer/move,layer/resize,layer/flip, andlayer/rotateinstead.design/arrange/move- Uselayer/moveinstead.design/arrange/resize- Uselayer/resizeinstead.design/arrange/flip- Uselayer/flipinstead.design/arrange/rotate- Uselayer/rotateinstead.design/style- Use a combination oflayer/opacity,layer/blendMode,appearance/adjustments,appearance/blur,appearance/effect,appearance/filter,appearance/shadow,shape/change,stroke/change,fill/change, andtext/characterinstead.
- Translations have been updated:
- Removed the following keys:
scope.content.replacescope.design.arrangescope.design.style
- Renamed the following keys:
scope.design.arrange.flipis nowscope.layer.flipscope.design.arrange.moveis nowscope.layer.movescope.design.arrange.resizeis nowscope.layer.resizescope.design.arrange.rotateis nowscope.layer.rotate
- Added the following keys:
component.placeholder.appearance.descriptioncomponent.placeholder.appearancecomponent.placeholder.arrange.descriptioncomponent.placeholder.arrangecomponent.placeholder.disableAllcomponent.placeholder.enableAllcomponent.placeholder.fill.descriptioncomponent.placeholder.fillcomponent.placeholder.general.descriptioncomponent.placeholder.generalcomponent.placeholder.shape.descriptioncomponent.placeholder.shapecomponent.placeholder.stroke.descriptioncomponent.placeholder.strokecomponent.placeholder.text.descriptioncomponent.placeholder.textscope.appearance.adjustmentsscope.appearance.blurscope.appearance.effectscope.appearance.filterscope.appearance.shadowscope.fill.changescope.layer.blendModescope.layer.opacityscope.shape.changescope.stroke.changescope.text.characterscope.text.edit
- Removed the following keys:
- Editor: Switched to using the new Graphic block for images, videos, shapes, etc… for a more unified experience across different design elements
- Editor: Introduced a new Content Fill Inspector that allows switching the fill of Graphic blocks between video, image, and color
- Editor: All of the Graphic blocks (shapes, images, videos, etc…) now support filters, effects, blurs and adjustments
- Editor: UX/UI Improvements for both the Advanced and Default UI, as well as for the canvas actions
- Engine: Replaced
image,sticker,shapes/rect,shapes/line,shapes/ellipse,shapes/polygon,shapes/star, andvector_pathblocks with a new, more composablegraphicdesign block. Old scenes are automatically migrated when they get loaded. For a full list and detailed description of how to adapt to these changes, check out our documentation - Engine: Added optional
shapeType,fillTypeandkindkeys to our asset definitions. Fill type ids may not be set as the value of theblockTypeproperty any more. E.g. in order to create a video asset,blockTypeshould now be set to//ly.img.ubq/graphicandfillTypeshould be set to//ly.img.ubq/fill/video. - Engine/Web: Introduced new union types:
DesignBlockTypesShorthand,DesignBlockTypesLonghand,DesignBlockTypesfor top-level design blocks.ShapeTypesShorthand,ShapeTypesLonghand,ShapeTypesfor shape blocks.FillTypesShorthand,FillTypesLonghand,FillTypesfor fill blocks.EffectTypesShorthand,EffectTypesLonghand,EffectTypesfor effect blocks.BlurTypesShorthand,BlurTypesLonghand,BlurTypesfor blur blocks.BlockTypesShorthand,BlockTypesLonghand,BlockTypesfor all blocks combined.
- Engine/Web: The
createAPI now expects an ID of typeDesignBlockTypesinsteadDesignBlockType. - Engine/Web: The
createFillAPI now expects an ID of typeFillTypesinstead ofstring. - Engine/Web: The
getTypeAPI now returns an ID of typeBlockTypesLonghandinstead ofDesignBlockType. - Engine/Web: The
findByTypeAPI now expects an ID of typeBlockTypesinstead ofDesignBlockType. - Engine/Web: The
createShapeAPI now expects and ID of typeShapeTypesinstead ofstring. - Engine/Web: The
createEffectAPI now expects and ID of typeEffectTypesinstead ofstring. - Engine/Web: The
createBlurAPI now expects and ID of typeBlurTypesinstead ofstring. - Engine/Web: The
DesignBlockTypeenum is now removed in favor of introducing a new alternative string-literal types that are more representative of our API signature.
Non Breaking Changes
- UBQ: Add
BlockAPI.isIncludedInExportandBlockAPI.setIncludedInExportto allow blocks to be excluded from the export process without having to rely on the properties API. - UBQ: All Cutouts have the always on top attribute by default.
- Engine: Added
createShape,hasShape,getShape,setShapeAPIs for changing the shape of a design block. - Engine: Added the
graphicdesign block with support for the new shape APIs. - Engine: Added
setKind,getKindandfindByKindAPIs for categorizing different design blocks of the same type with custom string tags. - Engine: Added the
fill/changeTypescope to prevent unwanted fill type changes. - Placeholder Settings now feature more granular options.
- Editor: Clickable area of a cutout is a stroke 6 pixels wide centered on its offset path.
- Editor/Web: Fixed double clicks for entering crop mode and text edit mode not recognized on mobile browsers.
- Editor: DPI input is available for pixel design unit as well
- Engine: Add
BlockAPI.isTransformLocked,BlockAPI.setTransformLocked, and thetransformLockedproperty. - Engine: Fixed the image edge handles to scale the image around the center opposite handle instead of the corners.
- Engine: Prevented crop edits via edge handles if cropping is not allowed for adopters.
- Engine: Fixed color fill leak when duplicating
Textelements resulting in massive scene file sizes. - Engine: When
DoubleClickSelectionModeis set toDirect, hovering/clicking in the empty space within a group highlights/selects that group. - Editor: Fixed performance issue when playing back videos
- Engine: Fix video support detection on Chrome for Windows.
- Engine: Legal symbols (©, ®, ™) are no longer rendered as their emoji counterpart.
- Editor: Pause video playback when selecting an element in the scene.
- Engine: Lower memory usage when downscaling images to
maxImageSize. - Engine: Fix MP4 videos that make use of edts and elst atoms.
- Engine: Added mousewheel support
The CreativeEngine canvas now supports mouse wheel events on the canvas to
scroll and zoom the scene. The CreativeEngine instance gained a new method,
setWheelEventTarget, which can be used to reinstall the event listener on another DOM element. This can be useful for situations where custom DOM elments are positioned on top of the canvas. Two engine settings have been added to enable/disable scrolling and zooming:mouse/enableZoomandmouse/enableScroll, both default to true. - Engine: Removed arbitrary strings for engine settings from the TypeScript
definitions. Passing arbitrary strings to methods such as
setSettingBoolorsetSettingStringwas never actually supported. The types have been adjusted to reflect that fact. - Editor/Engine: The Typescript types of the
getSetting/setSettingmethods in the EditorAPI have been made more strict:- Previously, Typescript allowed arbitrary strings as keys, which would have led to an error at runtime. These have been removed.
- Support for prefixing settings keys with
ubq://will be removed in a future version. The function signatures have been updates to provide a deprecation warning. - A few boolean settings not meant for public use have been removed.