You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Liquid Glass buttons (iOS 26) — NativeButton / NativeIconButton gain ios = NativeButtonIosOptions(background = Glass | ProminentGlass): a real UIGlassEffect capsule
that refracts the content beneath the button and morphs on press. Glass is the clear adaptive
flavor (content adopts the system label color); ProminentGlass tints the glass with the variant's
container color. Silent fallback to the flat variant below iOS 26; documented no-op on Android; NativeSplitButton accepts the option but renders Automatic this release. Demo: sample app →
Settings → Developer → "Liquid glass buttons".
NativeCollapsible — the platform-safe way to collapse/expand content containing native
controls (use instead of AnimatedVisibility around Native* components). A real AnimatedVisibility on Android; on iOS it animates the container's size while content enters and
leaves in one clean step, and NativeText inside renders through Compose (no interop cut-out
flash during the animation).
"Interop churn test" screen in the sample app (Settings → Developer) — regression harness for
the interop synchronization behaviors below, with the pathological AnimatedVisibility pattern
reproducible behind an off-by-default toggle.
Fixed
iOS: ghost / doubled / stale native controls after interop churn. Compose Multiplatform queues
every UIKit-side interop mutation (insert, position update, removal, onRelease) into a
transaction executed only when the next rendered frame is presented; actions can execute with
severe delay (visibly desynced controls during animated visibility) and, in a narrower window, be
lost outright. Every kit-hosted UIKitView now detaches its native view synchronously at node
disposal (removal delay bounded to zero — no lingering/doubled controls), and settled positions
self-heal against the Compose-side layout truth. The remaining delay on the insert side is a
Compose Multiplatform engine limitation, documented with hard usage rules in docs/interop-notes.md §4 and reported upstream (docs/upstream/cmp-interop-transaction-lag.md).