Skip to content

v0.9.2

Choose a tag to compare

@YuKongA YuKongA released this 05 Jun 11:13
09f6371

English | 中文

Highlights

  • Upgraded to Kotlin 2.4.0 and Compose Multiplatform 1.11.1 — tracks the latest stable releases.
  • New miuix-shader module — a cross-platform runtime shader / render-effect abstraction, extracted from miuix-blur and now published standalone.
  • New miuix-squircle module — squircle (smooth rounded corner) shapes with a pre-baked SDF and a global LocalSquircleEnabled toggle; now backs miuix-ui surfaces.
  • New: SliderPreference / RangeSliderPreference — slider-based preference rows in miuix-preference.
  • Text gains ColorProducer overloads — drive a frequently-changing text color from the draw phase without recomposition.
  • miuix-blur refinements — cross-fade downscale transitions, render-effect/Gaussian-key caching, fewer per-frame allocations; Android minSdk bumped 32 → 33.
  • Accessibility — fix TalkBack double-read and announce item position for navigation/tab items.

⚠️ Breaking Changes

1. miuix-blur: minSdk 32 → 33

miuix-blur now requires Android API 33+. Earlier devices fall back to non-blur rendering automatically (the shader paths are guarded by isRuntimeShaderSupported()).

2. Runtime shader / render-effect helpers extracted to miuix-shader

The RuntimeShader / RenderEffect abstraction moved out of miuix-blur into the new miuix-shader module (miuix-blur depends on it transitively, so no extra dependency is required). For source compatibility, RuntimeShader, asComposeShader(), asBrush(), and isRuntimeShaderSupported() remain available from top.yukonga.miuix.kmp.blur as back-compat re-exports; new code should import them from top.yukonga.miuix.kmp.shader instead:

// Old
import top.yukonga.miuix.kmp.blur.RuntimeShader
import top.yukonga.miuix.kmp.blur.isRuntimeShaderSupported

// New
import top.yukonga.miuix.kmp.shader.RuntimeShader
import top.yukonga.miuix.kmp.shader.isRuntimeShaderSupported

isRenderEffectSupported() now lives only in top.yukonga.miuix.kmp.shader.

What's Changed

New Features

  • library: add miuix-shader and miuix-squircle modules by @YuKongA in 85ae469d
  • feat(preference): add SliderPreference and RangeSliderPreference by @HChenX in #336
  • library: add ColorProducer overloads to Text by @YuKongA in 94f1ff97
  • library: pre-bake squircle SDF and add a global toggle by @YuKongA in 68352b1d

Improvements

Components

miuix-blur

  • library: miuix-blur: cache blur effect & lifecycle sensor by @YuKongA in 5e75455e
  • library: miuix-blur: skip RuntimeShader effects when unsupported by @YuKongA in 132586a8
  • library: cross-fade blur downscale transitions by @YuKongA in 50aa39ca
  • library: miuix-blur: cache draw-path render effects and gaussian keys by @YuKongA in f8196d42
  • library: miuix-blur: reduce per-frame allocations and blur record area by @YuKongA in d6e7c1ce
  • library: miuix-blur: clarify render-effect uniform-caching comments by @YuKongA in 073428d2

Bug Fixes

  • library: CascadingListPopup: fix secondary first/last row padding by @YuKongA in cb3956df
  • library: fix TalkBack double-read and announce item position by @YuKongA in 4f69c942
  • library: fix bottom sheet nested scroll dismissal by @wxxsfxyzm in #340

Example & Docs

Build

  • build: rework convention plugins and source set hierarchy by @YuKongA in 070a96fe

Dependencies

  • fix(deps): update jetbrains.compose.multiplatform to v1.11.1 by @renovate in #338
  • fix(deps): update kotlin monorepo to v2.4.0 by @renovate in #339
  • fix(deps): update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.6.0 by @renovate in #337
  • fix(deps): update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.5.1 by @renovate in #328
  • fix(deps): update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.5.0 by @renovate in #326
  • fix(deps): update dependency androidx.navigation3:navigation3-runtime to v1.1.2 by @renovate in #332
  • fix(deps): update dependency io.nlopez.compose.rules:ktlint to v0.5.9 by @renovate in #333
  • fix(deps): update about.libraries to v14.2.1 by @renovate in #335

Full Changelog: v0.9.1...v0.9.2


亮点

  • 升级至 Kotlin 2.4.0 与 Compose Multiplatform 1.11.1 — 跟进至最新稳定版。
  • 新增 miuix-shader 模块 — 跨平台运行时着色器 / 渲染效果抽象,从 miuix-blur 中拆分并独立发布。
  • 新增 miuix-squircle 模块 — 平滑圆角(squircle)形状库,内置预烘焙 SDF 与全局 LocalSquircleEnabled 开关;miuix-ui 的圆角表面现已基于它实现。
  • 新增:SliderPreference / RangeSliderPreferencemiuix-preference 中基于滑块的偏好项。
  • Text 新增 ColorProducer 重载 — 在绘制阶段驱动频繁变化的文字颜色,避免重组。
  • miuix-blur 优化 — 降采样档位交叉淡化过渡、渲染效果 / 高斯键缓存、减少每帧分配;Android minSdk 由 32 提升至 33。
  • 无障碍 — 修复 TalkBack 双读问题,并为导航 / 标签项播报所在位置。

⚠️ 破坏性更改

1. miuix-blurminSdk 由 32 提升至 33

miuix-blur 现要求 Android API 33+,低于该版本的设备会自动回退至无模糊渲染(着色器路径由 isRuntimeShaderSupported() 守卫)。

2. 运行时着色器 / 渲染效果工具迁移至 miuix-shader

RuntimeShader / RenderEffect 抽象已从 miuix-blur 拆分到新的 miuix-shader 模块(miuix-blur 会传递依赖它,无需额外添加依赖)。为兼容现有代码,RuntimeShaderasComposeShader()asBrush()isRuntimeShaderSupported() 仍可从 top.yukonga.miuix.kmp.blur 以兼容别名导入;新代码请改从 top.yukonga.miuix.kmp.shader 导入:

//
import top.yukonga.miuix.kmp.blur.RuntimeShader
import top.yukonga.miuix.kmp.blur.isRuntimeShaderSupported

//
import top.yukonga.miuix.kmp.shader.RuntimeShader
import top.yukonga.miuix.kmp.shader.isRuntimeShaderSupported

isRenderEffectSupported() 现仅存在于 top.yukonga.miuix.kmp.shader

更新内容

新功能

  • library: add miuix-shader and miuix-squircle modules by @YuKongA in 85ae469d
  • feat(preference): add SliderPreference and RangeSliderPreference by @HChenX in #336
  • library: add ColorProducer overloads to Text by @YuKongA in 94f1ff97
  • library: pre-bake squircle SDF and add a global toggle by @YuKongA in 68352b1d

改进

组件

miuix-blur

  • library: miuix-blur: cache blur effect & lifecycle sensor by @YuKongA in 5e75455e
  • library: miuix-blur: skip RuntimeShader effects when unsupported by @YuKongA in 132586a8
  • library: cross-fade blur downscale transitions by @YuKongA in 50aa39ca
  • library: miuix-blur: cache draw-path render effects and gaussian keys by @YuKongA in f8196d42
  • library: miuix-blur: reduce per-frame allocations and blur record area by @YuKongA in d6e7c1ce
  • library: miuix-blur: clarify render-effect uniform-caching comments by @YuKongA in 073428d2

Bug 修复

  • library: CascadingListPopup: fix secondary first/last row padding by @YuKongA in cb3956df
  • library: fix TalkBack double-read and announce item position by @YuKongA in 4f69c942
  • library: fix bottom sheet nested scroll dismissal by @wxxsfxyzm in #340

示例与文档

构建

  • build: rework convention plugins and source set hierarchy by @YuKongA in 070a96fe

依赖更新

  • fix(deps): update jetbrains.compose.multiplatform to v1.11.1 by @renovate in #338
  • fix(deps): update kotlin monorepo to v2.4.0 by @renovate in #339
  • fix(deps): update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.6.0 by @renovate in #337
  • fix(deps): update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.5.1 by @renovate in #328
  • fix(deps): update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.5.0 by @renovate in #326
  • fix(deps): update dependency androidx.navigation3:navigation3-runtime to v1.1.2 by @renovate in #332
  • fix(deps): update dependency io.nlopez.compose.rules:ktlint to v0.5.9 by @renovate in #333
  • fix(deps): update about.libraries to v14.2.1 by @renovate in #335

完整更新日志: v0.9.1...v0.9.2