<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/haze-2-1-shatterproof-glass-tflyga1vl" -->

---
title: Haze 2.1: Shatterproof Glass | daily.dev
description: Haze 2.1 ships with Glass marked stable for Jetpack Compose and Compose Multiplatform. The haze-glass and haze-glass-material3 artifacts no longer require the...
canonical: https://daily.dev/posts/haze-2-1-shatterproof-glass-tflyga1vl
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Haze 2.1: Shatterproof Glass | daily.dev
og:description: Haze 2.1 ships with Glass marked stable for Jetpack Compose and Compose Multiplatform. The haze-glass and haze-glass-material3 artifacts no longer require the...
og:url: https://daily.dev/posts/haze-2-1-shatterproof-glass-tflyga1vl
og:image: https://api.daily.dev/og/posts/tFLYga1vL.png
og:image:alt: Haze 2.1: Shatterproof Glass
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Haze 2.1: Shatterproof Glass

**[Chris Banes](https://daily.dev/sources/chrisbanes)** · 4 min read · 0 upvotes · 0 comments

## Summary

Haze 2.1 ships with Glass marked stable for Jetpack Compose and Compose Multiplatform. The haze-glass and haze-glass-material3 artifacts no longer require the ExperimentalHazeApi opt-in. A new hazeGlassContainer modifier lets nearby Glass surfaces merge and separate with animated transitions. Styles can now read animated state directly without recomposing the hazeGlass call site. In Android sample workloads measured on a Pixel 8a, Glass used about 7% less peak GPU memory than 2.0.1, and an experimental input-sharing feature, off by default, reduced feed replays from seven per frame to one in a nested-feed benchmark. If you used experimental Glass in 2.0.x, a few APIs were renamed, so recompile code that uses it.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://chrisbanes.me/posts/haze-2.1.0>

## Questions this post answers

### How do I get multiple Glass surfaces in Jetpack Compose to merge together visually?

Use the hazeGlassContainer modifier on a parent composable with a mergeDistance parameter, then apply hazeGlass to its children as usual. Surfaces within the specified distance of each other join into one shape, with new members growing out of their neighbors and removed ones retracting, all animated automatically by Haze.

_Building adaptive glass UI in Compose? Track library releases like this one on daily.dev._

### Do I still need an opt-in annotation to use Glass effects in Haze 2.1?

No, the haze-glass and haze-glass-material3 artifacts no longer require the ExperimentalHazeApi opt-in as of version 2.1.0, since Glass is now stable. The native Android backdrop backend and the new input-sharing feature remain experimental and still need their own opt-ins.

_Developers tracking Compose library stabilizations can follow updates like this on daily.dev._

### What performance impact does Haze's experimental input sharing feature have on Android?

In a nested-feed benchmark on Android, input sharing reduced feed replays from seven per frame to one, trading additional GPU memory and clipping to the source's bounds plus configured outsets for less repeated rendering work. It is off by default in Haze 2.1 and remains experimental with its own opt-in.

_Evaluating rendering trade-offs in Compose apps? Keep up with benchmarks like this via daily.dev._

## Similar posts on daily.dev

- [Haze 2.0](https://daily.dev/posts/haze-2-0-pksvqps2b) · Chris Banes · 1 upvotes · 0 comments
- [Haze 2.0: A Pluggable Visual Effects Engine](https://daily.dev/posts/haze-2-0-a-pluggable-visual-effects-engine-lqmoxkrmb) · Chris Banes · 0 upvotes · 0 comments
- [Compose has progressive blur. Do you still need Haze?](https://daily.dev/posts/compose-has-progressive-blur-do-you-still-need-haze--qcd6zjiti) · Chris Banes · 2 upvotes · 0 comments

---

Tags: [#android](https://daily.dev/tags/android), [#kotlin](https://daily.dev/tags/kotlin), [#jetpack-compose](https://daily.dev/tags/jetpack-compose), [#compose-multiplatform](https://daily.dev/tags/compose-multiplatform)

[View this post on daily.dev](https://daily.dev/posts/haze-2-1-shatterproof-glass-tflyga1vl)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Haze 2.1: Shatterproof Glass","url":"https://daily.dev/posts/haze-2-1-shatterproof-glass-tflyga1vl","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/haze-2-1-shatterproof-glass-tflyga1vl"},"datePublished":"2026-11-02T12:33:24.549Z","dateModified":"2026-11-02T12:33:52.381Z","description":"Haze 2.1 ships with Glass marked stable for Jetpack Compose and Compose Multiplatform. The haze-glass and haze-glass-material3 artifacts no longer require the...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/d6735c0e577d026985823fd736bb27da?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/d6735c0e577d026985823fd736bb27da?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Chris Banes","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Chris Banes","logo":"https://media.daily.dev/image/upload/s--TEzRqSgz--/f_auto,q_auto/v1783235595/logos/chrisbanes?_a=BAMAMicg0","url":"https://daily.dev/sources/chrisbanes"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/haze-2-1-shatterproof-glass-tflyga1vl","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"android,kotlin,jetpack-compose,compose-multiplatform","timeRequired":"PT4M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Chris Banes","item":"https://daily.dev/sources/chrisbanes"},{"@type":"ListItem","position":3,"name":"Haze 2.1: Shatterproof Glass"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/haze-2-1-shatterproof-glass-tflyga1vl#faq","mainEntity":[{"@type":"Question","name":"How do I get multiple Glass surfaces in Jetpack Compose to merge together visually?","acceptedAnswer":{"@type":"Answer","text":"Use the hazeGlassContainer modifier on a parent composable with a mergeDistance parameter, then apply hazeGlass to its children as usual. Surfaces within the specified distance of each other join into one shape, with new members growing out of their neighbors and removed ones retracting, all animated automatically by Haze. Building adaptive glass UI in Compose? Track library releases like this one on daily.dev."}},{"@type":"Question","name":"Do I still need an opt-in annotation to use Glass effects in Haze 2.1?","acceptedAnswer":{"@type":"Answer","text":"No, the haze-glass and haze-glass-material3 artifacts no longer require the ExperimentalHazeApi opt-in as of version 2.1.0, since Glass is now stable. The native Android backdrop backend and the new input-sharing feature remain experimental and still need their own opt-ins. Developers tracking Compose library stabilizations can follow updates like this on daily.dev."}},{"@type":"Question","name":"What performance impact does Haze's experimental input sharing feature have on Android?","acceptedAnswer":{"@type":"Answer","text":"In a nested-feed benchmark on Android, input sharing reduced feed replays from seven per frame to one, trading additional GPU memory and clipping to the source's bounds plus configured outsets for less repeated rendering work. It is off by default in Haze 2.1 and remains experimental with its own opt-in. Evaluating rendering trade-offs in Compose apps? Keep up with benchmarks like this via daily.dev."}}]}
```

