Search
Loading...
Skip to content

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 for engine.scene.getDesignUnit() and engine.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 and hasHighlightingEnabled
  • 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 while loadFromString 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 and exportWithColorMask APIs by making all parameters optional except for the page handle
    • Moved all optional parameters (including mimeType) into a single options object, which removes the requirement to pass undefined 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
    // Before
    engine.block.export(page, MimeType.Jpeg, {
    jpegQuality: 0.8,
    targetWidth: 1080,
    targetHeight: 1080
    });
    engine.block.export(page, undefined, {
    targetWidth: 1080,
    targetHeight: 1080
    });
    // After
    engine.block.export(page, {
    mimeType: 'image/jpeg',
    jpegQuality: 0.8,
    targetWidth: 1080,
    targetHeight: 1080
    });
    engine.block.export(page, {
    targetWidth: 1080,
    targetHeight: 1080
    });
    // Before
    engine.block.exportWithColorMask(page, MimeType.Png, 0.5, 0, 0, {
    pngCompressionLevel: 6
    });
    engine.block.exportWithColorMask(page, undefined, 0.5, 0, 0);
    // After
    engine.block.exportWithColorMask(page, 0.5, 0, 0, {
    mimeType: 'image/png',
    pngCompressionLevel: 6
    });
    engine.block.exportWithColorMask(page, 0.5, 0, 0);
    // Before
    engine.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
    });
    // After
    engine.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
    });
  • 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 to SheetStyle/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 replaces pageFormats. 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 allows AssetSource instances to be garbage collected.
  • Engine: Fixed a potential crash in unstable_enableCameraZoomClamping if the setting pageCarouselEnabled is used.
  • Engine: Remove PageDurationSourceTag from page when using the createSceneFromVideo 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 and setHeight 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 or scene.createFromVideo, the content fill mode is now changed to Crop instead of Cover. This is now consistent with adding images or video. To keep the old behavior, the content fill mode can be changed to Cover with block.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 and FeaturePredicateContext 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. The BackButtonHiddenKey preference key, previously used to control the visibility of the back button, has been marked as unavailable in favor of the new NavigationBar.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 from addDemoAssetSources. 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. Use AssetLibrarySceneModeReader instead.

Non Breaking Changes

  • Engine/Android: Added new asset API AssetApi.applyAssetSourceProperty that applies AssetProperty to the Asset.
  • 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 not Video).
  • 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. Updated EditorResult documentation to clarify that such Uri(s) may not be reusable and recommend handling them using EngineConfiguration.onUpload and engine.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 as standard 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