Skip to content

Releases: JetBrains/compose-multiplatform

1.12.0-alpha01

19 May 13:57
7701ef2

Choose a tag to compare

1.12.0-alpha01 Pre-release
Pre-release

Changes since 1.11.0

Migration Notes

Desktop

  • The background parameter of SwingPanel has been deprecated. Instead set the background manually in the factory method. There's a new (experimental) Color.toAwtColor() function to convert Compose color objects to AWT ones #3024

Features

Multiple Platforms

  • Update Skia to m148 #3028
  • Add blockPointerInputOutside flag to PopupProperties to support not-blocking pointer inputs outside of focusable Popups #2992

iOS

  • Support LiveRegion semantics in Accessibility #2944
  • The selection handles now match the style of iOS #2991

Desktop

  • The parent AWT window of a composition is now available via LocalAwtWindow.current #3007
  • Implemented a new, experimental, WindowState API #2938

Web

Navigation

  • Improved iOS specific default navigation transactions in Nav2 #3023
  • Web and Desktop default navigation transactions are set to None in Nav2 #3023

Fixes

iOS

  • Fix a conflict with external bundled Skia libraries #3008
  • Fix incorrect scaling and positioning of interop UIKitView / UIKitViewController element when LocalDensity is modified. This change does not affect scaling of factory content: UIView / UIViewController #3037
  • Fix issue where BasicTextField reported inconsistent changes between Android and iOS #2990
  • Fix issue where a BasicTextField with InputTransformation may use the incorrect internal text state #2990
  • Fix elements selection with Full Keyboard Access #3038

Desktop

  • [ComposePanel in Swing rendering mode] Fix Metal offscreen rendering crash when drawing to a Software renderer #3008
  • Fix SwingPanel size not scaling according to LocalDensity. Note that this doesn't scale the Swing content of the SwingPanel #3033

Components

Gradle plugin

org.jetbrains.compose version 1.12.0-alpha01

Libraries

Library group Coordinates Based on Jetpack
Runtime org.jetbrains.compose.runtime:runtime*:1.12.0-alpha01 Runtime 1.12.0-alpha02
UI org.jetbrains.compose.ui:ui*:1.12.0-alpha01 UI 1.12.0-alpha02
Foundation org.jetbrains.compose.foundation:foundation*:1.12.0-alpha01 Foundation 1.12.0-alpha02
Material org.jetbrains.compose.material:material*:1.12.0-alpha01 Material 1.12.0-alpha02
Material3 org.jetbrains.compose.material3:material3*:1.12.0-alpha01 Material3 1.5.0-alpha19
Material3 Adaptive org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-beta01 Material3 Adaptive 1.3.0-beta01
Lifecycle org.jetbrains.androidx.lifecycle:lifecycle-*:2.11.0-beta01 Lifecycle 2.11.0-beta01
Navigation org.jetbrains.androidx.navigation:navigation-*:2.10.0-alpha01 Navigation 2.10.0-alpha03
Navigation3 org.jetbrains.androidx.navigation3:navigation3-*:1.1.1 Navigation3 1.1.1
Navigation Event org.jetbrains.androidx.navigationevent:navigationevent-compose:1.1.0 Navigation Event 1.1.1
Savedstate org.jetbrains.androidx.savedstate:savedstate*:1.4.0 Savedstate 1.4.0
WindowManager Core org.jetbrains.androidx.window:window-core:1.5.1 WindowManager 1.5.1

1.11.0

13 May 13:41
38f6fc6

Choose a tag to compare

Changes since 1.10.3

Breaking Changes

Multiple Platforms

  • To decouple common Compose graphics APIs from direct Skia/Skiko types, non-Android Shader is now a dedicated Compose wrapper type. Since it's not an ABI-compatible change, you might need to update some libraries that use this API to newer, compatible versions. Migration: #2810
    • If you pass raw Skia/Skiko shaders into Compose APIs, wrap with SkShader.asComposeShader().
    • If you need low-level Skia/Skiko access from Compose Shader, use Shader.skiaShader extension.

iOS

  • Dialog and Popup container views are now located on a system transition view above the root view controller, but below modally presented view controllers. This may affect presentation of interop view controllers #2833

Migration Notes

Multiple Platforms

  • The project has migrated to Kotlin language version and API version 2.2. The projects depending on Compose Multiplatform need to use the same version or newer #2614
  • navigation-runtime, navigation-common no longer provide androidx.collection as an api transitive dependency. If your project doesn't compile with unresolved androidx.collection... classes add implementation("androidx.collection:collection:1.5.0"). This change is required to avoid differences with the original Jetpack libraries and allow reusing the same code without additional changes needed #2749
  • Kotlin 2.3 is required for native and web platforms #2755
  • Key.Home has been deprecated, as it has been incorrectly mapped to the keyboard "Home" key. Use Key.MoveHome instead #2801
  • androidx.compose.ui.graphics.NativePaint and androidx.compose.ui.graphics.NativeCanvas typealiases are deprecated, use direct references to native types instead #2802
  • Paint.asFrameworkPaint() was replaced with Paint.skiaPaint extension to avoid exposing a platform type into commonMain sourceset via typealias #2802
  • RenderEffect.asSkiaImageFilter() was replaced with RenderEffect.skiaImageFilter extension to avoid exposing a platform type into commonMain types #2809
  • Deprecate Canvas.nativeCanvas extension in favor of Canvas.skiaCanvas to avoid ambiguity #2809
  • runComposeUiTest, runSkikoComposeUiTest, runDesktopComposeUiTest are deprecated in favor v2 versions #2919

iOS

  • parallelRendering flag now enabled by default #2732
  • Compose Multiplatform doesn't support Apple x86_64 targets anymore due to deprecation in Kotlin #5514

Web

  • Renamed WebElementView to HtmlElementView to better reflect its HTML-specific purpose #2636
  • WebElementView has been deprecated in favor of HtmlElementView #2641
  • Kotlin 2.3.20 is required when using Compose Multiplatform with Kotlin/JS or Kotlin/Wasm #2918

Navigation

  • A deprecated suspend fun Window.bindToNavigation method has been removed #2675

Features

Multiple Platforms

  • Clicking outside of any focusable node using the mouse will now clear focus from the currently focused node, if any. This behavior can be disabled by setting isClearFocusOnMouseDownEnabled = false in ComposePanel, ComposeWindow or ComposeDialog #2533
  • Migrate window insets padding modifiers from composed API to InsetsPaddingModifierNode #2572
  • Add enter end exit animation for Dialog. It can be disabled via DialogProperties.animateTransition or via global feature flag ComposeUiFlags.isDialogAnimationEnabled #2596
  • Update Skia to m144 #2779
  • Support v2 Compose UI Tests APIs on non-android targets which uses StandardTestDispatcher by default instead of UnconfinedTestDispatcher #2919
  • Support a customization of effectContext in Compose UI tests #2919
  • Implement drag-to-scroll in SelectionContainer. When the mouse pointer is dragged outside the element while selecting text, the text element will be scrolled accordingly. Note that this requires wrapping the content in a scrolling container/modifier, e.g. Modifier.verticalScroll #2979

iOS

  • Added a new ComposeUIView API enabling Compose embedding in view hierarchy #2589
  • Add ability to adjust isClearFocusOnMouseDownEnabled in the configure lambda when creating Compose components #2644
  • Support semantics for links in text #2649
  • Popups and Dialogs now use the same interface orientation and status bar behaviour as the root view controller on the window #2686
  • Add support for tvOS Siri Remote button events (Select, Menu, Play/Pause) #2717
  • Adds an opt-in Native iOS Text Input mode for Compose BasicTextField (both TextFieldValue and TextFieldState) enabled via PlatformImeOptions.usingNativeTextInput(enabled) in iOS source set #2602
  • With the native iOS text input flag set to true, BasicTextField uses native UIKit editing and interaction, including: #2602
    • Native caret placement and movement (tap-to-place caret, spacebar caret movement, “ghost caret”)
    • Native magnifier
    • Native selection gestures (double-tap word selection, triple-tap paragraph selection) and iOS-like selection UI (region + handles)
    • Native context menu behavior is supported for both the legacy and the new context menu (isNewContextMenu = true) configurations.
    • Native context menu behavior when interacting with the caret, selection region, or selection handles
    • Native text field context menu actions (e.g. Translate, Look Up, Share) (not available without this mode)
    • Autocorrect / typo replacement support
    • Autofill support for text fields, including filling from saved passwords one field at a time
  • Support automatic sizing for Auto Layout–based views together with supporting explicit remeasurement via rememberUIKitInteropRemeasureRequester() + Modifier.remeasureRequester(...) with UIKitInteropRemeasureRequester.requestRemeasure() for propagating UIKit-side size changes to Compose #2797

Desktop

  • Allow specifying AWT AccessibleRole directly via SemanticsPropertyReceiver.awtRole #2577
  • Menu items in the context menu for text fields and SelectionContainer can now be disabled #2617
  • Cleanup old unpacked binaries from ~/.skiko (this folder is used if the application is launched via ./gradlew run). Use skiko.data.cleanup.days to configure the retention period in days #2645
  • It is now possible to configure the mouse-wheel propagation-to-parent behavior per ComposePanel via ComposePanel.redispatchUnconsumedMouseWheelEvents flag #2659
  • [Linux] Improve window dragging experience when using WindowDraggableArea on Linux with JetBrains Runtime #2674
  • singleWindowApplication content's receiver now subclasses ApplicationScope too, allowing to programmatically exit the app #2703
  • New compile-time warnings for invalid ui/menu composable mixing that previously failed only at runtime #2777

Web

  • Add isClearFocusOnMouseDownEnabled in ComposeViewportConfiguration to configure the focus behaviour on mouse press #2781

Gradle Plugin

Read more

1.11.0-rc01

05 May 12:37
dfacdde

Choose a tag to compare

1.11.0-rc01 Pre-release
Pre-release

Changes since 1.11.0-beta03

Features

Multiple Platforms

  • (prerelease fix) The isClearFocusOnMouseDownEnabled flag is now false by default #3020

Fixes

Multiple Platforms

  • Fix crash when selecting text right-to-left and then typing a character via IME #2983
  • (prerelease fix) Fix memory leak during mutating Path after migrating to skia m144 #2997

iOS

  • (prerelease fix) Fix WindowInsets.systemBars add extra horizontal insets on iOS 26.0 #3019

Desktop

  • [ComposePanel in compose.swing.render.on.graphics mode] Fix Metal offscreen rendering crash when drawing to a Software renderer #3009

Web

  • (prerelease fix) Fix handling Fast Delete in mobile browsers #2987
  • [iOS] Fix virtual keyboard jumps after each tap. iOS 26.4 only #3013
  • [Safari] Fix an issue where buttons required a second click to respond after performing drag-and-drop operations #3014

Components

Gradle plugin

org.jetbrains.compose version 1.11.0-rc01

Libraries

Library group Coordinates Based on Jetpack
Runtime org.jetbrains.compose.runtime:runtime*:1.11.0-rc01 Runtime 1.11.0
UI org.jetbrains.compose.ui:ui*:1.11.0-rc01 UI 1.11.0
Foundation org.jetbrains.compose.foundation:foundation*:1.11.0-rc01 Foundation 1.11.0
Material org.jetbrains.compose.material:material*:1.11.0-rc01 Material 1.11.0
Material3 org.jetbrains.compose.material3:material3*:1.11.0-alpha07 Material3 1.5.0-alpha17
Material3 Adaptive org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-alpha07 Material3 Adaptive 1.3.0-alpha10
Lifecycle org.jetbrains.androidx.lifecycle:lifecycle-*:2.11.0-beta01 Lifecycle 2.11.0-beta01
Navigation org.jetbrains.androidx.navigation:navigation-*:2.9.2 Navigation 2.9.7
Navigation3 org.jetbrains.androidx.navigation3:navigation3-*:1.1.1 Navigation3 1.1.1
Navigation Event org.jetbrains.androidx.navigationevent:navigationevent-compose:1.1.0-rc01 Navigation Event 1.1.0
Savedstate org.jetbrains.androidx.savedstate:savedstate*:1.4.0 Savedstate 1.4.0
WindowManager Core org.jetbrains.androidx.window:window-core:1.5.1 WindowManager 1.5.1

1.11.0-beta03

21 Apr 12:47
99f5ca5

Choose a tag to compare

1.11.0-beta03 Pre-release
Pre-release

Changes since 1.11.0-beta02

Features

Multiple Platforms

  • Implement drag-to-scroll in SelectionContainer. When the mouse pointer is dragged outside the element while selecting text, the text element will be scrolled accordingly. Note that this requires wrapping the content in a scrolling container/modifier, e.g. Modifier.verticalScroll #2979

Fixes

Multiple Platforms

  • Fix mouse-clicks being missed occasionally (typically when using Apple's Magic Mouse) #2975
  • Fix crash when pressing up/down keys in an open context menu #2976

iOS

  • (prerelease fix) Fix UINavigationBar safe area insets not included in WindowInsets.safeDrawing #2965
  • (prerelease fix) Fix an issue where Compose content may become stretched after screen rotation #2968
  • (prerelease fix) Fix SegmentFrequentTick and SegmentTick haptic feedbacks #2969

Desktop

Web

  • (prerelease fix) [iOS] Fix crash when using 'Fast delete': Cannot coerce value to an empty range: maximum -1 is less than minimum 0 #2964
  • (prerelease fix) Fix dragAndDropSource combined with clickable doesn't allow to start drag #2974

Components

Gradle plugin

org.jetbrains.compose version 1.11.0-beta03

Libraries

Library group Coordinates Based on Jetpack
Runtime org.jetbrains.compose.runtime:runtime*:1.11.0-beta03 Runtime 1.11.0-rc01
UI org.jetbrains.compose.ui:ui*:1.11.0-beta03 UI 1.11.0-rc01
Foundation org.jetbrains.compose.foundation:foundation*:1.11.0-beta03 Foundation 1.11.0-rc01
Material org.jetbrains.compose.material:material*:1.11.0-beta03 Material 1.11.0-rc01
Material3 org.jetbrains.compose.material3:material3*:1.11.0-alpha07 Material3 1.5.0-alpha17
Material3 Adaptive org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-alpha07 Material3 Adaptive 1.3.0-alpha10
Lifecycle org.jetbrains.androidx.lifecycle:lifecycle-*:2.11.0-alpha03 Lifecycle 2.11.0-alpha03
Navigation org.jetbrains.androidx.navigation:navigation-*:2.9.2 Navigation 2.9.7
Navigation3 org.jetbrains.androidx.navigation3:navigation3-*:1.1.0 Navigation3 1.1.0
Navigation Event org.jetbrains.androidx.navigationevent:navigationevent-compose:1.1.0-beta01 Navigation Event 1.1.0-rc01
Savedstate org.jetbrains.androidx.savedstate:savedstate*:1.4.0 Savedstate 1.4.0
WindowManager Core org.jetbrains.androidx.window:window-core:1.5.1 WindowManager 1.5.1

1.11.0-beta02

10 Apr 09:53
419f82c

Choose a tag to compare

1.11.0-beta02 Pre-release
Pre-release

Changes since 1.11.0-beta01

Migration Notes

Multiple Platforms

  • runComposeUiTest, runSkikoComposeUiTest, runDesktopComposeUiTest are deprecated in favor v2 versions #2919

Web

  • Kotlin 2.3.20 is required when using Compose Multiplatform with Kotlin/JS or Kotlin/Wasm #2918

Features

Multiple Platforms

  • Support v2 Compose UI Tests APIs on non-android targets which uses StandardTestDispatcher by default instead of UnconfinedTestDispatcher #2919
  • Support a customization of effectContext in Compose UI tests #2919

Fixes

Multiple Platforms

  • (prerelease fix) Fixed a path regression where PathMeasure.getSegment(..., startWithMoveTo = true) could produce incorrect results when reusing destination paths #2902
  • Ctrl+Home/Ctrl+End or Cmd+Home/Cmd+End shortcuts should now work correctly in text fields #2931

iOS

  • Fix an issue with scrolling when scrollable content is displayed in modal view controller #2883
  • (prerelease fix) Fix crash during triple tap on empty textfield with usingNativeTextInput flag enabled #2910
  • (prerelease fix) Fix crash after applying autocorrection change or keyboard suggestion in TextField when usingNativeTextInput flag is enabled #2921
  • Fix crash caused by the missing symbol UIWindowSceneGeometry on iOS 15 #2924
  • (prerelease fix) Fix regression with the outdated and wrongly inserted keyboard suggestions in BasicTextField(TextFieldValue) and BasicTextField(TextFieldState) #2925
  • (prerelease fix) Fix missing handles and caret in TextField on new line at the end of the text when usingNativeTextInput flag is enabled #2908
  • The structure of accessibility elements is now better aligned with Android semantic nodes #2916
  • Fix issues with accessibility elements not focusing at runtime #2916
  • (prerelease fix) Fix incorrect appearance of Autofill context menu item in the BasicTextField(TextFieldValue) and BasicTextField(TextFieldState) #2937
  • Fix ModalBottomSheetDialog content inset calculation #2849

Desktop

  • Fix memory leak in dialogs with non-default compose.layers.type setting #2864
  • [Accessibility] Improve performance of traversal groups with a large amount of children #2900
  • Clear some scheduled tasks on scene closure #2888
  • (prerelease fix) Bump Compose Hot Reload to 1.1.0-beta02 #5569

Web

  • Fix identity hash code not being correctly cached #2913
  • [iOS] Fix 'Fast delete' not working correctly for text containing emojis #2927

Components

Gradle plugin

org.jetbrains.compose version 1.11.0-beta02

Libraries

Library group Coordinates Based on Jetpack
Runtime org.jetbrains.compose.runtime:runtime*:1.11.0-beta02 Runtime 1.11.0-beta02
UI org.jetbrains.compose.ui:ui*:1.11.0-beta02 UI 1.11.0-beta02
Foundation org.jetbrains.compose.foundation:foundation*:1.11.0-beta02 Foundation 1.11.0-beta02
Material org.jetbrains.compose.material:material*:1.11.0-beta02 Material 1.11.0-beta02
Material3 org.jetbrains.compose.material3:material3*:1.11.0-alpha06 Material3 1.5.0-alpha16
Material3 Adaptive org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-alpha06 Material3 Adaptive 1.3.0-alpha09
Lifecycle org.jetbrains.androidx.lifecycle:lifecycle-*:2.11.0-alpha03 Lifecycle 2.11.0-alpha03
Navigation org.jetbrains.androidx.navigation:navigation-*:2.9.2 Navigation 2.9.7
Navigation3 org.jetbrains.androidx.navigation3:navigation3-*:1.1.0-rc01 Navigation3 1.1.0-rc01
Navigation Event org.jetbrains.androidx.navigationevent:navigationevent-compose:1.1.0-alpha01 Navigation Event 1.1.0-alpha01
Savedstate org.jetbrains.androidx.savedstate:savedstate*:1.4.0 Savedstate 1.4.0
WindowManager Core org.jetbrains.androidx.window:window-core:1.5.1 WindowManager 1.5.1

1.11.0-beta01

26 Mar 17:12
de9734a

Choose a tag to compare

1.11.0-beta01 Pre-release
Pre-release

Changes since 1.11.0-alpha04

Breaking Changes

iOS

  • Dialog and Popup container views are now located on a system transition view above the root view controller, but below modally presented view controllers. This may affect presentation of interop view controllers #2833

Fixes

Multiple Platforms

  • Remove check for arbitrary transforms in Matrix conversions due to incorrect detection of regular rotation. Now the behaviour is aligned with Android #2850

iOS

  • Fix an issue where Popup and Dialog may not close when clicked outside of their bounds #2815
  • Fix crash caused by mouse hover #2834
  • Fix an issue where the text cursor appeared in the wrong position when dragging it after selecting text #2833
  • Fix an issue where selection handles were not rendered inside the magnifier #2833
  • Fix an issue where popups and dialogs were displayed above a modally presented view controller #2833
  • Traversal groups now convert into an additional node in the accessibility hierarchy #2848
  • (prerelease fix) Fix issues with interop views addition and removal #2842
  • (prerelease fix) Fix an issue where system context menu items (Look Up, Translate, Search, etc.) are not presented #2837
  • Fix Cmd + C (copy) event handling for the selected text wrapped in SelectionContainer when using a hardware keyboard #2872
  • Fix the scrolling inertia issue when performing short scroll gestures #2851
  • Fix an issue where a fling may occur unexpectedly when lifting a finger #2851
  • (prerelease fix) Fix high memory consumption caused by the Compose container resizing when parallelRendering is enabled #2882

Desktop

  • [Windows] Alt-backspace now correctly performs undo action #2870
  • (prerelease fix) Bump Compose Hot Reload to 1.1.0-beta01 #5559

Web

  • Fix incorrect mouse click detection #2844
  • Fix an issue where wheel events reported incorrect mouse button state in Safari and Firefox #2844
  • The browser now handles additional cut, copy, and paste keyboard shortcuts, such as Shift+Insert #2871
  • Fix an issue where "fast delete" action removed characters one by one instead of deleting whole words in text fields on iOS #2875

Components

Gradle plugin

org.jetbrains.compose version 1.11.0-beta01

Libraries

Library group Coordinates Based on Jetpack
Runtime org.jetbrains.compose.runtime:runtime*:1.11.0-beta01 Runtime 1.11.0-beta01
UI org.jetbrains.compose.ui:ui*:1.11.0-beta01 UI 1.11.0-beta01
Foundation org.jetbrains.compose.foundation:foundation*:1.11.0-beta01 Foundation 1.11.0-beta01
Material org.jetbrains.compose.material:material*:1.11.0-beta01 Material 1.11.0-beta01
Material3 org.jetbrains.compose.material3:material3*:1.11.0-alpha05 Material3 1.5.0-alpha15
Material3 Adaptive org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-alpha06 Material3 Adaptive 1.3.0-alpha09
Lifecycle org.jetbrains.androidx.lifecycle:lifecycle-*:2.11.0-alpha02 Lifecycle 2.11.0-alpha02
Navigation org.jetbrains.androidx.navigation:navigation-*:2.9.2 Navigation 2.9.7
Navigation3 org.jetbrains.androidx.navigation3:navigation3-*:1.1.0-beta01 Navigation3 1.1.0-beta01
Navigation Event org.jetbrains.androidx.navigationevent:navigationevent-compose:1.1.0-alpha01 Navigation Event 1.1.0-alpha01
Savedstate org.jetbrains.androidx.savedstate:savedstate*:1.4.0 Savedstate 1.4.0
WindowManager Core org.jetbrains.androidx.window:window-core:1.5.1 WindowManager 1.5.1

1.10.3

19 Mar 14:01
25bafa5

Choose a tag to compare

Changes since 1.10.2

Fixes

Multiple Platforms

  • Remove check for arbitrary transforms in Matrix conversions due to incorrect detection of regular rotation. Now the behaviour is aligned with Android #2860

Components

Gradle plugin

org.jetbrains.compose version 1.10.3

Libraries

Library group Coordinates Based on Jetpack
Runtime org.jetbrains.compose.runtime:runtime*:1.10.3 Runtime 1.10.5
UI org.jetbrains.compose.ui:ui*:1.10.3 UI 1.10.5
Foundation org.jetbrains.compose.foundation:foundation*:1.10.3 Foundation 1.10.5
Material org.jetbrains.compose.material:material*:1.10.3 Material 1.10.5
Material3 org.jetbrains.compose.material3:material3*:1.10.0-alpha05 Material3 1.5.0-alpha08
Material3 Adaptive org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-alpha02 Material3 Adaptive 1.3.0-alpha03
Lifecycle org.jetbrains.androidx.lifecycle:lifecycle-*:2.10.0 Lifecycle 2.10.0
Navigation org.jetbrains.androidx.navigation:navigation-*:2.9.2 Navigation 2.9.7
Navigation3 org.jetbrains.androidx.navigation3:navigation3-*:1.0.0-alpha06 Navigation3 1.0.0
Navigation Event org.jetbrains.androidx.navigationevent:navigationevent-compose:1.0.1 Navigation Event 1.0.2
Savedstate org.jetbrains.androidx.savedstate:savedstate*:1.4.0 Savedstate 1.4.0
WindowManager Core org.jetbrains.androidx.window:window-core:1.5.1 WindowManager 1.5.1

1.11.0-alpha04

11 Mar 12:53
617eb5f

Choose a tag to compare

1.11.0-alpha04 Pre-release
Pre-release

Changes since 1.11.0-alpha03

Breaking Changes

Multiple Platforms

  • To decouple common Compose graphics APIs from direct Skia/Skiko types, non-Android Shader is now a dedicated Compose wrapper type. Since it's not an ABI-compatible change, you might need to update some libraries that use this API to newer, compatible versions. Migration: #2810
    • If you pass raw Skia/Skiko shaders into Compose APIs, wrap with SkShader.asComposeShader().
    • If you need low-level Skia/Skiko access from Compose Shader, use Shader.skiaShader extension.

Migration Notes

Multiple Platforms

  • Key.Home has been deprecated, as it has been incorrectly mapped to the keyboard "Home" key. Use Key.MoveHome instead #2801
  • androidx.compose.ui.graphics.NativePaint and androidx.compose.ui.graphics.NativeCanvas typealiases are deprecated, use direct references to native types instead #2802
  • Paint.asFrameworkPaint() was replaced with Paint.skiaPaint extension to avoid exposing a platform type into commonMain sourceset via typealias #2802
  • RenderEffect.asSkiaImageFilter() was replaced with RenderEffect.skiaImageFilter extension to avoid exposing a platform type into commonMain types #2809
  • Deprecate Canvas.nativeCanvas extension in favor of Canvas.skiaCanvas to avoid ambiguity #2809

Web

  • Kotlin 2.3.10 or newer is required to use Compose Multiplatform with Kotlin/Wasm target #2790

Features

Multiple Platforms

  • Update skia to m144 #2779

iOS

  • Adds an opt-in Native iOS Text Input mode for Compose BasicTextField (both TextFieldValue and TextFieldState) enabled via PlatformImeOptions.usingNativeTextInput(enabled) in iOS source set #2602
  • With the native iOS text input flag set to true, BasicTextField uses native UIKit editing and interaction, including: #2602
    • Native caret placement and movement (tap-to-place caret, spacebar caret movement, “ghost caret”)
    • Native magnifier
    • Native selection gestures (double-tap word selection, triple-tap paragraph selection) and iOS-like selection UI (region + handles)
    • Native context menu behavior is supported for both the legacy and the new context menu (isNewContextMenu = true) configurations.
    • Native context menu behavior when interacting with the caret, selection region, or selection handles
    • Native text field context menu actions (e.g. Translate, Look Up, Share) (not available without this mode)
    • Autocorrect / typo replacement support
    • Autofill support for text fields, including filling from saved passwords one field at a time
  • Support automatic sizing for Auto Layout–based views together with supporting explicit remeasurement via rememberUIKitInteropRemeasureRequester() + Modifier.remeasureRequester(...) with UIKitInteropRemeasureRequester.requestRemeasure() for propagating UIKit-side size changes to Compose #2797

Desktop

  • New compile-time warnings for invalid ui/menu composable mixing that previously failed only at runtime #2777

Web

  • Add isClearFocusOnMouseDownEnabled in ComposeViewportConfiguration to configure the focus behaviour on mouse press #2781

Gradle Plugin

  • Add a compatibility check for skiko libraries to ensure consistency #5541

Fixes

iOS

  • Fix traffic lights overlapping content on iPad by adopting the new iOS 26 LayoutRegion API #2555
  • The haptic feedback when selecting text now works closer to the way it does with iOS text fields #2786

Desktop

  • Correctly react to numpad arrows, NumPadPageUp, NumPadPageDown, NumPadHome and NumPadEnd keys in text fields #2800
  • (prerelease fix) Fixed a11y crash when focused element is removed #2803
  • Match key modifiers exactly (without ignoring the state of other modifiers) when determining the corresponding text field action/command. This also fixes inputting 'a' and 'z' diacritics (e.g. 'ą' and 'ż') in text fields on Windows #2804
  • Fix the condition for hiding the tooltip in a TooltipArea on a pointer-exit event while the pointer is still inside the area #2798
  • (prerelease fix) Fix black rectangle remaining after removing/hiding SwingPanel #2821
  • Some key shortcuts (e.g. shift-backspace, shift-delete on macOS) that previously didn't work in text fields now perform the correct action #2827

Web

  • (pre-release) Make canvas focused so it receives key events (e.g. ESC) #2796
  • Unified touch and pointer event handling for better consistency and performance on Web #2799
  • Fix Magic mouse behaviour in Safari and Firefox #2811

Components

Gradle plugin

org.jetbrains.compose version 1.11.0-alpha04

Libraries

Library group Coordinates Based on Jetpack
Runtime org.jetbrains.compose.runtime:runtime*:1.11.0-alpha04 Runtime 1.11.0-alpha06
UI org.jetbrains.compose.ui:ui*:1.11.0-alpha04 UI 1.11.0-alpha06
Foundation org.jetbrains.compose.foundation:foundation*:1.11.0-alpha04 Foundation 1.11.0-alpha06
Material org.jetbrains.compose.material:material*:1.11.0-alpha04 Material 1.11.0-alpha06
Material3 org.jetbrains.compose.material3:material3*:1.11.0-alpha04 Material3 1.5.0-alpha15
Material3 Adaptive org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-alpha06 Material3 Adaptive 1.3.0-alpha09
Lifecycle org.jetbrains.androidx.lifecycle:lifecycle-*:2.11.0-alpha01 Lifecycle 2.11.0-alpha01
Navigation org.jetbrains.androidx.navigation:navigation-*:2.9.2 Navigation 2.9.7
Navigation3 org.jetbrains.androidx.navigation3:navigation3-*:1.1.0-alpha04 Navigation3 1.1.0-alpha05
Navigation Event org.jetbrains.androidx.navigationevent:navigationevent-compose:1.1.0-alpha01 Navigation Event 1.1.0-alpha01
Savedstate org.jetbrains.androidx.savedstate:savedstate*:1.4.0 Savedstate 1.4.0
WindowManager Core org.jetbrains.androidx.window:window-core:1.5.1 WindowManager 1.5.1

1.10.2

05 Mar 11:16
25bafa5

Choose a tag to compare

Changes since 1.10.1

No Compose Multiplatform specific changes

Components

Gradle plugin

org.jetbrains.compose version 1.10.2

Libraries

Library group Coordinates Based on Jetpack
Runtime org.jetbrains.compose.runtime:runtime*:1.10.2 Runtime 1.10.4
UI org.jetbrains.compose.ui:ui*:1.10.2 UI 1.10.4
Foundation org.jetbrains.compose.foundation:foundation*:1.10.2 Foundation 1.10.4
Material org.jetbrains.compose.material:material*:1.10.2 Material 1.10.4
Material3 org.jetbrains.compose.material3:material3*:1.10.0-alpha05 Material3 1.5.0-alpha08
Material3 Adaptive org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-alpha02 Material3 Adaptive 1.3.0-alpha03
Lifecycle org.jetbrains.androidx.lifecycle:lifecycle-*:2.10.0-beta01 Lifecycle 2.10.0
Navigation org.jetbrains.androidx.navigation:navigation-*:2.9.2 Navigation 2.9.7
Navigation3 org.jetbrains.androidx.navigation3:navigation3-*:1.0.0-alpha06 Navigation3 1.0.0
Navigation Event org.jetbrains.androidx.navigationevent:navigationevent-compose:1.0.1 Navigation Event 1.0.2
Savedstate org.jetbrains.androidx.savedstate:savedstate*:1.4.0 Savedstate 1.4.0
WindowManager Core org.jetbrains.androidx.window:window-core:1.5.1 WindowManager 1.5.1

1.11.0-alpha03

25 Feb 13:10

Choose a tag to compare

1.11.0-alpha03 Pre-release
Pre-release

Changes since 1.11.0-alpha02

Migration Notes

Multiple Platforms

  • navigation-runtime, navigation-common no longer provide androidx.collection as an api transitive dependency. If your project doesn't compile with unresolved androidx.collection... classes add implementation("androidx.collection:collection:1.5.0"). This change is required to avoid differences with the original Jetpack libraries and allow reusing the same code without additional changes needed #2749
  • Kotlin 2.3 is required for native and web platforms #2755

iOS

  • parallelRendering flag now enabled by default #2732

Features

iOS

  • Add support for tvOS Siri Remote button events (Select, Menu, Play/Pause) #2717

Desktop

  • singleWindowApplication content's receiver now subclasses ApplicationScope too, allowing to programmatically exit the app #2703

Fixes

iOS

  • Fix crash when manually posting UIKeyboardWillHideNotification without userInfo #2713
  • Fix an ability to use scrollsToTop for native UIScrollViews #2705
  • (prerelease fix) Fix an issue where manually overriding the user interface style does not propagate properly to the LocalSystemTheme #2735
  • Fix crash in MetalRedrawer that occurs when Popup or Dialog box opens and closes quickly #2756
  • Fix hit test for Accessibility Elements #2760
  • Fix crashes when parallelRendering is enabled #2732
  • Fix issues with custom context menu items on iOS 15 or earlier #2771

Desktop

  • Fix accessibility focus continuing to highlight a removed element #2695
  • [macOS] Fix Wubi input for (Basic)TextField(TextFieldValue) #2722
  • [macOS, accessibility] Fix VoiceOver sometimes "clicking" the wrong button when a button click is triggered by the user #2720
  • #2680
  • Fix TextField accessibility issue where contentDescription was ignored by screen readers (VoiceOver). TextField now properly uses contentDescription as the accessible name/label, making forms usable with assistive technologies #2680
  • The coroutine context of launchApplication and awaitApplication is now correctly used in windows and dialogs of the application #2742
  • (prerelease fix) Fix SwingPanel not being visible at all #2751
  • Fix an issue with "Pinyin - Simplified" input in BasicTextField(TextFieldState) when the temporary (composed) english text was not removed when the composition is committed #2763
  • Fix incorrect pointer Enter/Move events sometimes being sent immediately following the mouse pointer exiting the compose scene #2750
  • (prerelease fix) Bump Compose Hot Reload to 1.1.0-alpha05 #5530

Web

  • Adjust HTML hierarchy for proper interop container location outside the shadow DOM #2710
  • Fix mouse wheel scrolling on web by accounting for screen density #2724
  • Ignore duplicate mouse events following touch events on web to avoid unintended clicks #2741
  • Fix Apple Magic mouse behavior #2748
  • Fix too early tap detection on web during scrolling #2753
  • Fix sudden scroll stops during fast gestures #2759
  • Support cursor control using space bar sliding gesture on Android Web #2762
  • Fix scrolling sudden stops or speed-ups in web apps #2764
  • Improvements of the Web scroll behavior #2766

Components

Gradle plugin

org.jetbrains.compose version 1.11.0-alpha03

Libraries

Library group Coordinates Based on Jetpack
Runtime org.jetbrains.compose.runtime:runtime*:1.11.0-alpha03 Runtime 1.11.0-alpha05
UI org.jetbrains.compose.ui:ui*:1.11.0-alpha03 UI 1.11.0-alpha05
Foundation org.jetbrains.compose.foundation:foundation*:1.11.0-alpha03 Foundation 1.11.0-alpha05
Material org.jetbrains.compose.material:material*:1.11.0-alpha03 Material 1.11.0-alpha05
Material3 org.jetbrains.compose.material3:material3*:1.11.0-alpha03 Material3 1.5.0-alpha14
Material3 Adaptive org.jetbrains.compose.material3.adaptive:adaptive*:1.3.0-alpha05 Material3 Adaptive 1.3.0-alpha08
Lifecycle org.jetbrains.androidx.lifecycle:lifecycle-*:2.10.0-alpha08 Lifecycle 2.10.0
Navigation org.jetbrains.androidx.navigation:navigation-*:2.9.2 Navigation 2.9.7
Navigation3 org.jetbrains.androidx.navigation3:navigation3-*:1.1.0-alpha03 Navigation3 1.1.0-alpha04
Navigation Event org.jetbrains.androidx.navigationevent:navigationevent-compose:1.0.1 Navigation Event 1.0.2
Savedstate org.jetbrains.androidx.savedstate:savedstate*:1.4.0 Savedstate 1.4.0
WindowManager Core org.jetbrains.androidx.window:window-core:1.5.1 WindowManager 1.5.1