Skip to content

Support and compatibility (1.0)

LiquidGlass 1.0 is the first release with a compatibility promise. This page says what is promised, for which stacks, and what is deliberately outside it.

Versioning

One version number covers every artifact, on every registry: Maven Central, npm, NuGet and pub.dev. From 1.0.0 it follows Semantic Versioning:

  • Patch (1.0.x): fixes. No API change, and no change to how a default looks beyond fixing a defect.
  • Minor (1.x.0): additions, and refinements of the default material or motion (see Visual changes). Existing code keeps compiling and linking.
  • Major (2.0.0): removals and incompatible changes, each deprecated in at least one earlier minor release first, with the replacement named in the deprecation message.

What is stable

Stack Artifacts Stable surface
Compose Multiplatform dev.shayxo.liquidglass:liquidglass, :liquidglass-material3, :liquidglass-bom; Gradle plugin dev.shayxo.liquidglass Every public declaration, checked: the ABI is committed under each module's api/ and CI fails on an unrecorded change (checkKotlinAbi). The plugin's liquidGlassAdopt task and its extension.
Web npm @shayxo.dev/liquidglass The <liquid-glass> element: its attributes, properties and events, and the module's typed exports (index.d.mts).
React Native npm @shayxo.dev/liquidglass-react-native GlassSurface, GlassLens and their props; createGlassPainter, recordGlass (index.d.ts).
Flutter pub.dev liquiglass GlassSurface, GlassMaterial, LiquidGlass.ensureInitialized.
.NET NuGet LiquidGlass, .WinForms, .Wpf, .Avalonia, .Maui Every public type and member.

Previews, outside the promise until they are verified on their platform: the Qt Quick port (ports/qt, rendered only in software in CI) and the Unity package (ports/unity, never run in Unity). They are distributed from source, not from a registry, and may change in any release.

Never stable: anything marked @LiquidGlassDiagnosticApi (it opts in at error level and exists for measurement rigs and tests), anything internal, and the shader sources' uniform layout (each port regenerates it).

Visual changes

The material and the motion are measured against iOS recordings, and getting closer to iOS is the project's purpose, so the default look may be refined in minor releases. Every such change:

  • is scored against the recordings, and the release notes say what moved and by how much;
  • keeps the previous values available as a named preset (for example GlassTabBarStyle.CalmRecordedSpace()), so an app tuned against them can pin them;
  • never re-fits a measured constant without saying what it was scored against.

New optics arrive behind an opt-in flag, so a default only changes when the release notes say so.

Platforms

Platform Minimum Rendering
Android API 24 API 33+ (Android 13): the full shader (AGSL). API 24-32: a tinted fallback with rim lighting, no refraction.
Desktop JVM JDK 11 Skia (Skiko). Windows and Linux checked; macOS not yet checked.
Web (Compose) browsers with WebAssembly GC Skia (Skiko), the same code as desktop.
Web component evergreen browsers Live refraction in Chromium; frosted glass in Firefox and Safari; the canvas engine everywhere CanvasKit runs.
React Native React Native 0.78, React 19, React Native Skia 2 Android and React Native Web.
Flutter Flutter 3.35, Dart 3.9 Live glass on Impeller (Android); a frosted stand-in elsewhere.
.NET .NET 8 (LiquidGlass, Avalonia); .NET 10 (WinForms, WPF, MAUI) SkiaSharp 4. MAUI on Android and Windows.
Qt (preview) Qt 6 ShaderEffect through Qt's RHI.
Unity (preview) Unity 2022.3 Built-in pipeline and URP.
iOS not a target iOS 26 draws Liquid Glass natively.

Compose Multiplatform 1.12 and Kotlin 2.4 are the versions 1.0 is built and tested with.

Known differences from iOS

The library is close to iOS, not identical. The measured differences are listed with their numbers in the replay record, and what the library does not do is in Limitations. They are open work, not part of the promise.