Skip to content

Blur materialsΒΆ

The haze-blur-materials artifact provides replayable Blur Styles for common design systems:

dependencies {
  implementation("dev.chrisbanes.haze:haze-blur-materials:<version>")
}

MaterialΒΆ

HazeMaterials provides ultraThin(), thin(), regular(), thick(), and ultraThick():

Modifier.hazeBlur(
  input = HazeInput.Sources(hazeState),
  style = HazeMaterials.thin(),
)

CupertinoΒΆ

CupertinoMaterials follows Apple platform materials:

Modifier.hazeBlur(
  input = HazeInput.Sources(hazeState),
  style = CupertinoMaterials.regular(),
)

FluentΒΆ

FluentMaterials provides acrylic and Mica presets:

Modifier.hazeBlur(
  input = HazeInput.Sources(hazeState),
  style = FluentMaterials.acrylicDefault(),
)

Customizing a presetΒΆ

Material presets are ordinary replayable Styles. Chain additional writes without copying readable fields:

val compact = HazeMaterials.thin().then {
  blurRadius(12.dp)
  noiseFactor(0f)
}

The chained Style remains stateless and can be reused by concurrent modifiers.