Changelog
Explore the recent changes made to CreativeEditor SDK.
Our release notes contain more details on features and changes.
Recent Releases
Version v1.54.1 Changelog July 2, 2025
Breaking Changes
Non Breaking Changes
- Editor/iOS: Fixed zoom insets being wrong in the crop and resize sheet when resizing the page.
- Engine/Swift: Fixed crash when closing the editor while a text block is being edited.
Version v1.55.0 Changelog June 27, 2025
Breaking Changes
- Engine/Android: Fixed
DesignUnit
raw values are not aligned with the C++ enum, resulting in incorrect mapping forengine.scene.getDesignUnit()
andengine.scene.setDesignUnit()
.
Non Breaking Changes
- Engine: Added ten new blend modes: Linear Burn, Linear Dodge, Lighten Color, Darken Color, Vivid Light, Linear Light, Pin Light, Hard Mix, Subtract and Divide.
- Editor/Web: Updated
FeatureAPI.enable()
to automatically use default guards when no predicate is provided. - Editor/Web: Introduce a new
ly.img.dock
feature key to allow controlling the dock. - Editor/Web: Introduce a new
ly.img.inspectorBar
feature key to allow controlling the inspector bar. - Editor/Web: Introduce a new
ly.img.videoTimeline
feature key to allow controlling the video timeline. - Editor/Web: Introduce a new
ly.img.navigationBar
feature key to allow controlling the navigation bar. - Editor/Web: Introduce a new
ly.img.navigate.undoRedo
feature key to allow controlling the navigation bar undo and redo. - Editor/Web: Introduce a new
ly.img.navigate.zoom
feature key to allow controlling the navigation bar zoom. - Editor/Web: Introduce a new
ly.img.navigate.actions
feature key to allow controlling the navigation bar actions. - Editor: Added improved loading animations
- Engine: Added new editor APIs to enable/disable and check the state of a block’s highlight:
setHighlightingEnabled
andhasHighlightingEnabled
- Editor/iOS: Fixed incorrect icon order for content fill mode in the crop sheet.
- Engine: Fixed legacy handling in the
loadFromString
API which could cause a legacy scene to be corrupted, e.g., vector paths getting deleted. Only occurs if a legacy scene is a loaded whileloadFromString
is called. - Engine: Trim length and trim offset now have the expected behavior when using GIFs.
- Engine: Fixed crash when using compositing keyboards.
- Editor/Web: Improved the video playback performance.
- Engine: Improved the video playback performance.
- Editor/Web: Adding documentation on how to update and manage video caption presets
- Engine: Added video captions support, see documentation. Introduced two new block types: caption and captionTrack. Introduced a new API for creating captions from a file: createCaptionsFromURI.
- Editor/Web: Added support for video captions in the editor, enabling the creation and management of captions for video projects. This feature includes functionalities for manually adding, editing, and removing captions, as well as importing captions from SRT and VTT files. Additionally, it supports managing various caption style assets.
- Editor/Android: Added predefined crop presets to the crop sheet.
- Editor/Android: Introduced multiple
SheetType.Crop.Mode
options that enable a combined crop and page resize sheet, supporting both manual adjustments and predefined size presets. Custom modes are configurable to define custom behavior. - Editor/Web: Fix editor crash when OPFS is not available in certain browser environments e.g. Firefox private mode.
Version v1.54.0 Changelog June 26, 2025
Breaking Changes
- Editor/Web: Removed the “more” options menu from the inspector bar.
- Editor/Web: Removed the
ly.img.options
feature key that was used to enable the “more” options menu in the inspector bar. - Engine/Swift: Fixed
DesignUnit
raw values not being aligned with the C++ enum. - Engine/Swift: Updated default asset sources configuration to include new crop and size preset sources. The sources ly.img.crop.presets and ly.img.page.presets are now part of the default assets served through the CDN. You must update your CDN configuration to include these new sources.
Non Breaking Changes
- Engine: Added new
getTextVisibleLineContent
API to retrieve the text content of the visible lines in text blocks. - Editor/Android: Added “Select Group” button in canvas menu for design blocks that are in a group design block.
- Engine: Skia is now used to parse SVG data instead of NanoSVG
- Editor/Web: Introduced new feature keys to configure the transform controls via the feature API.
- Editor/Web: Introduced the following UX improvements:
- Centered the controls in the inspector bar.
- Moved the stroke settings into a dropdown in the inspector bar.
- Introduced the text style dropdown in the inspector bar.
- Introduced the advanced text controls in the inspector bar.
- Introduced a new dropdown in the canvas bar that contains the following actions:
- Copy
- Paste
- Flip Horizontally
- Flip Vertically
- Moved the inspector toggle into the top level inspector.
- Camera/Android: Fixed an issue where the permission request flow could break under certain conditions when the same permission was being requested elsewhere in the app.
- Engine: The dashed outline of groups are now independent of zoom level.
- Engine/Web: Deprecated the old export API signatures in favor of a new improved signatures to follow better API design practices. The following changes were made:
- Simplified the
exportVideo
,export
andexportWithColorMask
APIs by making all parameters optional except for the page handle - Moved all optional parameters (including
mimeType
) into a singleoptions
object, which removes the requirement to passundefined
or empty objects for unused parameters - Removed enum usage for mime types in favor of string literals to align with the rest of our type definitions
- These changes make the APIs more intuitive and easier to use, especially when only specific options need to be configured
// Beforeengine.block.export(page, MimeType.Jpeg, {jpegQuality: 0.8,targetWidth: 1080,targetHeight: 1080});engine.block.export(page, undefined, {targetWidth: 1080,targetHeight: 1080});// Afterengine.block.export(page, {mimeType: 'image/jpeg',jpegQuality: 0.8,targetWidth: 1080,targetHeight: 1080});engine.block.export(page, {targetWidth: 1080,targetHeight: 1080});// Beforeengine.block.exportWithColorMask(page, MimeType.Png, 0.5, 0, 0, {pngCompressionLevel: 6});engine.block.exportWithColorMask(page, undefined, 0.5, 0, 0);// Afterengine.block.exportWithColorMask(page, 0.5, 0, 0, {mimeType: 'image/png',pngCompressionLevel: 6});engine.block.exportWithColorMask(page, 0.5, 0, 0);// Beforeengine.block.exportVideo(page,MimeType.Mp4,(numberOfRenderedFrames,numberOfEncodedFrames,totalNumberOfFrames: number) => {console.log(`Rendered ${numberOfRenderedFrames} frames, encoded ${numberOfEncodedFrames} frames out of ${totalNumberOfFrames}`);},{targetWidth: 1080,targetHeight: 1080});engine.block.exportVideo(page, undefined, undefined, {targetWidth: 1080,targetHeight: 1080});// Afterengine.block.exportVideo(page, {mimeType: 'video/mp4',onProgress: (numberOfRenderedFrames,numberOfEncodedFrames,totalNumberOfFrames: number) => {console.log(`Rendered ${numberOfRenderedFrames} frames, encoded ${numberOfEncodedFrames} frames out of ${totalNumberOfFrames}`);},targetWidth: 1080,targetHeight: 1080});engine.block.exportVideo(page, {targetWidth: 1080,targetHeight: 1080}); - Simplified the
- Engine/iOS: Fixed export not continuing after app was returned from the background.
- Engine: Use magic bytes primarily for determining the MIME type of a file during import.
- Editor/iOS: Added a new dock button to open the page resize sheet, supporting both manual adjustments and predefined size presets.
- Editor/iOS: Added predefined crop presets to the crop sheet.
- Editor/iOS: Changed default of
SheetType.crop.style
toSheetStyle/only(detent:)
. - Editor/iOS: Fixed OS system photo camera permission handling to prevent black screen.
- Editor/iOS: Fixed sheet dismissal behavior to ensure the sheet closes correctly when the event is triggered.
Version v1.53.0 Changelog June 12, 2025
Breaking Changes
Non Breaking Changes
- Editor/Web: Added new
pagePresetLibraries
configuration that enables defining asset sources with transform presets. In addition,pagePresetLibraries
configuration replacespageFormats
. Finally, format selection is now shown in its own panel instead of the document inspector. - Editor/Web: Added new
cropPresetLibraries
configuration that enables defining asset sources with transform presets. These presets will be shown inside the crop panel. - Engine: The duplicate API now has an additional parameter that allows choosing if the new block will be attached to the same parent as the original (defaults to true).
- Editor/iOS: Added new SwiftUI view modifiers:
.imgly.canvasMenuItems
and.imgly.modifyCanvasMenuItems
, which allow customization of the canvas menu (a list of buttons that appears next to the selected design block). - Editor/iOS: Added and updated custom SF Symbols in the iOS editor.
- Engine: new transform presets assets can be applied to graphics blocks and pages with
defaultApplyAssetToBlock
. These presets can set dimensions, enforce an aspect ratio or allow free resizing. - Engine/Android: Fixed
AssetSource
references not being released when the engine is stopped. This allowsAssetSource
instances to be garbage collected. - Engine: Fixed a potential crash in
unstable_enableCameraZoomClamping
if the settingpageCarouselEnabled
is used. - Engine: Remove
PageDurationSourceTag
from page when using thecreateSceneFromVideo
API. This fixes the issue of the timeline duration not updating correctly. - Editor/Android: Fixed the default value of demo asset sources
baseUri
. - Editor/iOS: Added spacing between dock and inspector bar items.
- Editor/iOS: Configured dock and inspector bar items to have dynamic width, enforcing a minimum width.
- Engine/iOS: Render cursor while text field is not tapped.
- Editor/RN: Fix Compose Compiler plugin not getting applied correctly for Kotlin 2.0.0+.
- Engine: Enable
setWidth
andsetHeight
on groups. Setting a dimension on a group will modify the other dimension as well according to the aspect ratio of the group. - Editor/Web: Fixed an issue where toggling fonts bold was buggy. You had to click the bold button twice to turn a font family bold after selecting a new font family.
- Engine: The property
image/fill/imageFileURI
is now undeprecated. - Engine: Improved HDR color information detection on HEVC videos.
- Editor/Web: For registered components, pass payload from order to all components not just Dock & NavigationBar
- Editor/Web: Render the text content of a text clip instead of the thumbnail.
- Engine/Swift: Fix issue when the audio did not stop when the app went to the background.
- Editor/iOS: Fixed potential memory leaks after closing a sheet, e.g., when dismissing the asset library.
- Editor/Android: Fixed an issue where internal debug dependencies were unintentionally included in release artifacts.
- Editor/Web: Updated video timeline thumbnail display.
- Editor/Web: Fix an issue where the
onUnsupportedBrowser
callback was not being triggered when the video editor is opened in an unsupported browser. - Editor/Web: Introduce a new
ly.img.page.resize
feature key to allow controlling the page resize feature in the editor. - Engine: Fixed an issue with the
setTypeface
block API where italic and bold toggling would only work in the second try after switching the typeface. Occurred when switching from a typeface with active bold or italic to one that does not support it and then back. - Editor/Android: Added translation keys for known subfamilies from ly.img.typeface.
Version v1.52.0 Changelog May 29, 2025
Breaking Changes
Non Breaking Changes
- Engine: If a scene is created with
scene.createFromImage
orscene.createFromVideo
, the content fill mode is now changed toCrop
instead ofCover
. This is now consistent with adding images or video. To keep the old behavior, the content fill mode can be changed toCover
withblock.setContentFillMode
once the scene is created. - Editor/Android: Fixed an issue where the crop reset button remained disabled even when it should have been enabled.
- Engine/Web: Fixed that asset labels were not passed to a custom
addAsset
function in custom asset sources. - Engine:
supportsBlendMode
returns false for the following block types: Stack, Audio, Metrics, Track, CaptionTrack - Editor/RN: Added proper handling for export errors on Android.
- Editor/Flutter: Added proper handling for export errors on Android.
- Editor/iOS: Fixed attribution sheet presentation looping when opening the bottom most images.
- Engine: Changed the
block.setTextColor
API to also update the fill color if the color is changed on the whole text and not only the text run. This prevents the fill color from being different than expected. - Engine: Changed the
block.setTextFontSize
API to also update the font size property if the font size is changed on the whole text and not only the text run. This prevents the font size property from being different than expected. - Editor/Android: For scenes without a stack, the toggle pages button is no longer visible by default in the DesignEditor.
- Editor/Web: Fixed an issue where the upload button on the panel would get squished when an image with small height is uploaded and the size gets very longer when a bigger image is uploaded.
- Editor/Web: Export the types
FeaturePredicate
andFeaturePredicateContext
used by the Feature API - Editor/iOS: For scenes without a stack, the toggle pages button is no longer visible by default in the design editor.
- Editor/Web: Fix an issue where the background color inspector is not visible in some cases.
Version v1.51.0 Changelog May 19, 2025
Breaking Changes
- Editor/iOS: Added new SwiftUI view modifiers:
.imgly.navigationBarItems
and.imgly.modifyNavigationBarItems
, which allow customization of the navigation bar (a list of items shown at the top of the editor). With this change, the button used to dismiss the editor should now always be managed through these new APIs, rather than being injected externally via a regular.toolbar
modifier. TheBackButtonHiddenKey
preference key, previously used to control the visibility of the back button, has been marked as unavailable in favor of the newNavigationBar.Buttons.closeEditor
button. - Editor: Add new ‘Font Combinations’ asset source to our demo assets. It’s enabled by default in our static design editors. To disable, exclude
ly.img.textComponents
fromaddDemoAssetSources
. Font combinations make use of groups and have limited editing experiences in our video-based editors for now and are therefore disabled there by default. When using these combinations, be aware that the resulting blocks reference font resources in our CDN. These will be replaced with archives in a future release to further decouple resources. - Editor/iOS: Fixed scene mode not being available in
AssetLibrary
by removing@Environment(\.imglyAssetLibrarySceneMode)
from the public API. UseAssetLibrarySceneModeReader
instead.
Non Breaking Changes
- Engine/Android: Added new asset API
AssetApi.applyAssetSourceProperty
that appliesAssetProperty
to theAsset
. - Editor/Android: Added new inspector bar button
InspectorBar.Button.rememberAnimations
that opens the animations sheet in the video editor. - Editor/Android: Added support for animations in the video editor.
- Editor/Android: Added new
Background
option to the inspector bar that controls the background of text design blocks. - Engine: Fixed the playback control APIs to check if the given block is valid.
- Engine: When setting the
none
animation, and undo set is now added. - Camera/Android: Enable video and preview stabilization if supported.
- Editor/Web: Fix an issue where the active card background was not visible on hover.
- Engine: When saving block hierarchies to archives, all referenced resources are now added to the archive.
- Editor/Web: Fixed an issue where setting the css custom property ‘—ubq-typography-font_family’ did not work when set under ‘.ubq-public’ class
- Editor/iOS: Fixed the initial scroll position in the timeline on iOS 18.
- Editor/iOS: Fixed scrollbar behavior in the timeline on iOS 18.
- Editor/iOS: Fixed the initial scroll position in the voiceover sheet on iOS 18.
- Editor/iOS: Fix loading error in the Design Editor for scenes without a stack.
- Editor: Allow resizing and moving of elements with mouse or gestures that have a percent unit in x-position, y-position, width, or height.
- Editor/Web: Improved the naming of the animation direction values of block animations in the video editor.
- Engine: When loading individual blocks while no scene is present, design unit information will now be retained and used when saving those blocks again.
- Engine: When loading blocks, design unit conversion is now applied to the entire loaded hierarchy, not just its roots.
- Editor/Web: Fix an issue where disabling the text color feature via configuration will also affect the fill of other block types.
- Editor/Android: Resolved an issue in the Photo Editor where the inspector bar briefly remained visible and interactive after closing the crop sheet. The inspector bar now hides immediately with the crop sheet.
- Editor/iOS: Fixed text alignment options to not depend on
layer/resize
scope. - Editor/iOS: Fixed an issue where scrolling the asset library inadvertently tapped an asset on iOS 18.1+.
Version v1.50.2 Changelog May 15, 2025
Breaking Changes
Non Breaking Changes
- Camera/Android: Enable video and preview stabilization if supported.
Version v1.50.1 Changelog May 9, 2025
Breaking Changes
Non Breaking Changes
- Fix(Android): Fix asset property access crash.
Version v1.50.0 Changelog April 29, 2025
Breaking Changes
Non Breaking Changes
- Editor/RN: Added option to change the
kotlinCompilerExtensionVersion
. - Editor/RN: Added support for Kotlin v2.0.0+.
- Engine: Animations are no longer active during crop or text editing to allow more precise editing.
- Editor/Flutter: Added option to change the
kotlinCompilerExtensionVersion
. - Editor/Flutter: Added support for Kotlin v2.0.0+.
- Engine: Animations are now only applied in design scenes (i.e. if the scene’s mode is
Design
and notVideo
). - Engine: forceLoadAVResource no longer sets an error state when a block has an empty URI.
Editor/RN: Fixed a crash on Android when exporting scenes containing
content://
Uri(s). The SDK now allows these Uri(s) by default. UpdatedEditorResult
documentation to clarify that such Uri(s) may not be reusable and recommend handling them usingEngineConfiguration.onUpload
andengine.editor.setUriResolver
. - Editor/RN: Fixed thumbnails not being encoded correctly.
- Editor/Flutter: Fixed thumbnails not being encoded correctly.
- Editor/Flutter: Fixed thumbnail of postcard editor exports would be blank.
- Editor/RN: Fixed thumbnail of postcard editor exports would be blank.
- Engine: Fixed a crash that could occur when the
useSystemFontFallback
setting was enabled while continuously changing a text block’s font. - Engine/Web: Fixed HDR video display.
- Editor/Web: Improved selection frame behavior by preventing frame visibility during playback mode
- Engine: Fixed stuttering on exported videos.
- Engine: Fixed stutters and repeated frames in exported videos.
- Camera/iOS: Set
preferredVideoStabilizationMode
asstandard
to improve recording’s stabilization.
Version v1.49.1 Changelog April 21, 2025
Breaking Changes
- Editor/Web: Revert breaking
TextArea
height introduced in 1.49.0
Non Breaking Changes
- Editor/Web: Fixed the editor crashing when being loaded in 32bit browsers.
All Releases
v1.54.1 Changelog July 2, 2025
v1.55.0 Changelog June 27, 2025
v1.54.0 Changelog June 26, 2025
v1.53.0 Changelog June 12, 2025
v1.52.0 Changelog May 29, 2025
v1.51.0 Changelog May 19, 2025
v1.50.2 Changelog May 15, 2025
v1.50.1 Changelog May 9, 2025
v1.50.0 Changelog April 29, 2025
v1.49.1 Changelog April 21, 2025
v1.49.0 Changelog April 16, 2025
v1.48.1 Changelog April 11, 2025
v1.48.0 Changelog April 1, 2025
v1.47.0 Changelog March 20, 2025
v1.46.1 Changelog March 5, 2025
v1.46.0 Changelog March 4, 2025
v1.10.6 Changelog February 19, 2025
v1.45.0 Changelog February 19, 2025
v1.44.0 Changelog February 6, 2025
v1.43.0 Changelog January 21, 2025
v1.42.0 Changelog January 9, 2025
v1.41.1 Changelog December 16, 2024
v1.41.0 Changelog December 11, 2024
v1.40.1 Changelog December 6, 2024
v1.40.0 Changelog November 28, 2024
v1.39.0 Changelog November 12, 2024
v1.38.0 Changelog October 29, 2024
v1.37.0 Changelog October 14, 2024
v1.36.1 Changelog October 4, 2024
v1.36.0 Changelog September 30, 2024
v1.35.1 Changelog September 20, 2024
v1.35.0 Changelog September 16, 2024
v1.34.0 Changelog August 31, 2024
v1.10.5 Changelog August 30, 2024
v1.33.0 Changelog August 23, 2024
v1.10.4 Changelog August 21, 2024
v1.32.0 Changelog August 6, 2024
v1.31.0 Changelog July 18, 2024
v1.30.0 Changelog July 3, 2024
v1.29.0 Changelog June 20, 2024
v1.28.0 Changelog June 6, 2024
v1.27.1 Changelog May 23, 2024
v1.26.1 Changelog May 22, 2024
v1.27.0 Changelog May 21, 2024
v1.26.0 Changelog May 7, 2024
v1.25.0 Changelog April 23, 2024
v1.24.0 Changelog April 5, 2024
v1.23.0 Changelog March 26, 2024
v1.22.0 Changelog March 12, 2024
v1.21.1 Changelog February 27, 2024
v1.21.0 Changelog February 22, 2024
v1.20.0 Changelog January 25, 2024
v1.19.0 Changelog December 13, 2023
v1.18.1 Changelog November 29, 2023
v1.18.0 Changelog November 6, 2023
v1.10.2 Changelog October 26, 2023
v1.10.3 Changelog October 26, 2023
v1.17.0 Changelog October 9, 2023
v1.16.1 Changelog September 14, 2023
v1.16.0 Changelog September 8, 2023
v1.15.0 Changelog September 1, 2023
v1.14.0 Changelog July 21, 2023
v1.13.1 Changelog July 10, 2023
v1.13.0 Changelog July 3, 2023
v1.12.2 Changelog June 30, 2023
v1.12.1 Changelog June 12, 2023
v1.12.0 Changelog June 2, 2023
v1.11.1 Changelog May 17, 2023
v1.11.0 Changelog May 10, 2023
v1.10.1 Changelog March 29, 2023
v1.10.0 Changelog March 14, 2023
v1.9.2 Changelog January 18, 2023
v1.9.1 Changelog December 15, 2022
v1.9.0 Changelog December 12, 2022
v1.8.0 Changelog October 21, 2022
v1.7.0 Changelog August 11, 2022
v1.6.3 Changelog June 13, 2022
v1.6.2 Changelog May 24, 2022
v1.6.1 Changelog May 23, 2022
v1.6.0 Changelog May 16, 2022
v1.5.1 Changelog May 9, 2022
v1.4.7 Changelog May 3, 2022
v1.4.6 Changelog April 14, 2022
v1.5.0 Changelog April 4, 2022
v1.4.5 Changelog April 1, 2022
v1.4.4 Changelog March 9, 2022
v1.4.3 Changelog March 7, 2022
v1.4.2 Changelog February 23, 2022
v1.4.1 Changelog February 22, 2022
v1.4.0 Changelog February 18, 2022
v1.3.0 Changelog January 6, 2022
v1.2.1 Changelog November 30, 2021
v1.2.0 Changelog November 22, 2021
v1.1.1 Changelog October 29, 2021
v1.1.0 Changelog October 28, 2021
v1.0.0 Changelog August 18, 2021