Releases: compose-miuix-ui/miuix
v0.9.2
Highlights
- Upgraded to Kotlin 2.4.0 and Compose Multiplatform 1.11.1 — tracks the latest stable releases.
- New
miuix-shadermodule — a cross-platform runtime shader / render-effect abstraction, extracted frommiuix-blurand now published standalone. - New
miuix-squirclemodule — squircle (smooth rounded corner) shapes with a pre-baked SDF and a globalLocalSquircleEnabledtoggle; now backsmiuix-uisurfaces. - New:
SliderPreference/RangeSliderPreference— slider-based preference rows inmiuix-preference. TextgainsColorProduceroverloads — drive a frequently-changing text color from the draw phase without recomposition.miuix-blurrefinements — cross-fade downscale transitions, render-effect/Gaussian-key caching, fewer per-frame allocations; AndroidminSdkbumped 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.isRuntimeShaderSupportedisRenderEffectSupported() 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
- library: use rememberSaveable for largeTitleHeight and optimize smallTitle animations by @lightsummer233 in #334
- library: refactor TopAppBar based on androidx-main by @YuKongA in eca8ed2f
- library: consolidate TextField colors and decoration by @YuKongA in a033aee2
- library: ListPopup uses popupClipReveal for vertical reveal by @YuKongA in 054e2a14
- library: disable animateTransition by @YuKongA in f32eece9
- library: improve Icon KDoc from androidx-main by @YuKongA in 540e474b
- library: update baseline profile by @YuKongA in a69894ad
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
- example: use constant lens refraction in iOS nav bar by @YuKongA in f3888d56
- example: Use
IconandLocalContentColorinLiquidGlassNavigationBarby @wxxsfxyzm in #327 - example: Update aboutlibraries.json by @YuKongA in daff7a6b
- example: refactor FPS monitor by @YuKongA in 7daae994
- example: refine pager padding by @YuKongA in 9a6fdc45
- example: shared BottomSheet UI by @YuKongA in 8c4ca7be
- example: defer frame-rate scroll reads in About page by @YuKongA in dd2fb73f
- example: round icon page top padding to whole pixels by @YuKongA in c24091c6
- example: simplify damped drag release settle flow by @YuKongA in 6cef2957
- example: drop redundant snapshot state for disabled sliders by @YuKongA in 4c17a46f
- example: rethrow cancellation in license loader by @YuKongA in ce892e49
- docs: align components/guides with current API by @YuKongA in 14e6f36f
- misc: update CLAUDE.md by @YuKongA in f6b2d802
Build
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/RangeSliderPreference—miuix-preference中基于滑块的偏好项。 Text新增ColorProducer重载 — 在绘制阶段驱动频繁变化的文字颜色,避免重组。miuix-blur优化 — 降采样档位交叉淡化过渡、渲染效果 / 高斯键缓存、减少每帧分配;AndroidminSdk由 32 提升至 33。- 无障碍 — 修复 TalkBack 双读问题,并为导航 / 标签项播报所在位置。
⚠️ 破坏性更改
1. miuix-blur:minSdk 由 32 提升至 33
miuix-blur 现要求 Android API 33+,低于该版本的设备会自动回退至无模糊渲染(着色器路径由 isRuntimeShaderSupported() 守卫)。
2. 运行时着色器 / 渲染效果工具迁移至 miuix-shader
RuntimeShader / RenderEffect 抽象已从 miuix-blur 拆分到新的 miuix-shader 模块(miuix-blur 会传递依赖它,无需额外添加依赖)。为兼容现有代码,RuntimeShader、asComposeShader()、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.isRuntimeShaderSupportedisRenderEffectSupported() 现仅存在于 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
改进
组件
- library: use rememberSaveable for largeTitleHeight and optimize smallTitle animations by @lightsummer233 in #334
- library: refactor TopAppBar based...
v0.9.1
Highlights
- Upgraded to Compose Multiplatform 1.11.0 — tracks the latest stable release.
miuix-shapesremoved — performance cost outweighed visual gain.- New: Cascading two-level ListPopup / DropdownMenu —
OverlayCascadingListPopup,WindowCascadingListPopup,OverlayIconCascadingDropdownMenu,WindowIconCascadingDropdownMenu. - New: Highlight support in
miuix-blur—Modifier.drawBackdrop()/Modifier.textureBlur()accept ahighlightparameter for overlay highlight effects. miuix-blurAPI changes — DSLgaussianBlur(...)renamed toblur(...);Modifier.textureBlurblurRadiusis now interpreted as dp (auto density conversion); AndroidminSdkbumped 31 → 32.- Dropdown / Spinner unified —
SpinnerPopupmerged intoOverlayDropdownPopup; per-item callbacks enable multi-select. - Compose stability & render-path optimizations —
Button,Surface,TextField,BasicComponent,TabRow,Snackbar,ColorPicker, NavigationBar/Rail, Overscroll.
⚠️ Breaking Changes
1. miuix-shapes module removed
Drop the dependency and switch to androidx.compose.foundation.shape:
// Old
implementation("top.yukonga.miuix.kmp:miuix-shapes:<version>")
import top.yukonga.miuix.kmp.shapes.SmoothRoundedCornerShape
val shape = SmoothRoundedCornerShape(16.dp)
// New
import androidx.compose.foundation.shape.RoundedCornerShape
val shape = RoundedCornerShape(16.dp)2. miuix-blur: minSdk 31 → 32
miuix-blur now requires Android API 32+. Earlier devices fall back to non-blur rendering automatically.
3. miuix-blur: blur DSL renamed, textureBlur radius now dp
The BackdropEffectScope.gaussianBlur(...) DSL is renamed to blur(...). Parameters and units stay the same (Float pixels):
// Old
Modifier.drawBackdrop(...) { gaussianBlur(20f * density) }
// New
Modifier.drawBackdrop(...) { blur(20f * density) }Modifier.textureBlur(blurRadius = ...) keeps the Float type but its meaning changed from pixels to dp (internally converted using display density). Numeric values should be reduced accordingly:
// Old (v0.9.0): 60 was in pixels
Modifier.textureBlur(backdrop, shape, blurRadius = 60f)
// New (v0.9.1): 20 is in dp; ≈ 60 px on a 3x-density screen
Modifier.textureBlur(backdrop, shape, blurRadius = 20f)BlurDefaults.BlurRadius and BlurDefaults.MaxBlurRadius are also now dp-based (defaults: 20f, 150f).
4. FloatingNavigationBar simplified to icon-only
The mode: FloatingNavigationBarDisplayMode parameter is removed; the FloatingNavigationBarDisplayMode enum (and its IconAndText / TextOnly / IconOnly cases) is deleted. The component is now always icon-only. If you relied on IconAndText or TextOnly, migrate to NavigationBar or compose a custom layout.
5. Dropdown / Spinner unified
SpinnerEntryis now a deprecatedtypealiasforDropdownItem;SpinnerColorsis a deprecatedtypealiasforDropdownColors.SpinnerDefaultsis deprecated — useDropdownDefaultsinstead.- The previous
DropdownPopup/SpinnerPopupare merged into a singleOverlayDropdownPopup(withOverlayDropdownDialogcovering the dialog mode); the Window-side equivalents live inWindowDropdownPopup/WindowDropdownDialog. WindowDropdownPreference/WindowSpinnerPreference(and theirOverlay*counterparts) now manage their options via the unifiedDropdownEntry/DropdownItemtypes.- New menu wrappers added under
miuix-preference:OverlayDropdownMenu,OverlayIconDropdownMenu,WindowDropdownMenu,WindowIconDropdownMenu, plus the cascading*IconCascadingDropdownMenuvariants. DropdownItemgains aselected: Booleanfield and an optionalonClick: (() -> Unit)?callback so each row can drive its own selection state, enabling multi-select.
What's Changed
New Features
- library: add cascading two-level list popup support by @YuKongA in 2b1c0f64
- library: CascadingListPopup: add predictive back gesture support by @YuKongA in 17c08311
- library: add grouped DropdownPreference by @Miuzarte in #310
- library: add missing
startActionslot to preference components by @HChenX in #312 - library: feat: add
onExpandedChange(Boolean)in Dropdown and Spinner by @Miuzarte in #297 - library: add
holdDownStateto Card by @YuKongA in #302 - feat: let users swipe to dismiss snackbar by @AlexLiuDev233 in #292
- library: BasicComponent: add
role/onClickLabelfor accessibility by @YuKongA in 32469d04 - library: refactor: NavigationBar/Rail items use
Modifier.selectableby @YuKongA in bc776daa - library: add missing
LocalContentColorto MiuixTheme by @YuKongA in d9164065 - library: miuix-blur: add Highlight support by @YuKongA in 6ec04d55
- library: miuix-blur: add
setInputShaderby @YuKongA in 244ce596
Breaking / API Changes
- library: Remove miuix-shapes by @YuKongA in af6710ff
- library: miuix-blur: upgrade minSdk to 32 by @YuKongA in dd925f7d
- library: miuix-blur: simplify gaussianBlur param to blur by @YuKongA in 22e44911
- library: Use dp-based blur radius with automatic density conversion by @YuKongA in 6df2581b
- library: simplify FloatingNavigationBar to icon-only by @YuKongA in cac6c314
- library: refactor: unify dropdown and spinner components by @Miuzarte in #315
Improvements
Component stability & render-path optimizations
- library: tighten Compose stability annotations by @YuKongA in fc7e414f
- library: Button: stabilize modifiers and parameterize primary colors by @YuKongA in fbf7d5c1
- library: Surface: clip indication to shape and inline SurfaceImpl by @YuKongA in ca201efa
- library: refactor: extract SurfaceImpl and add SurfaceDefaults by @YuKongA in 19caca04
- library: TextField: stabilize paddingModifier remember keys by @YuKongA in 30a7b09b
- library: TextField: defer labelAnim read to layout phase by @YuKongA in 7636d5bc
- library: ColorPicker: defer slider indicator value read to layout phase by @YuKongA in 6b86f10a
- library: TabRow: drop redundant rememberUpdatedState by @YuKongA in 4643721c
- library: BasicComponent: optimize Layout measure pass by @YuKongA in a8c6cb17
- library: Snackbar: extract hardcoded defaults to SnackbarDefaults by @YuKongA in 821b26fa
- library: Overscroll: snap layer translation to whole pixels by @YuKongA in edf77587
- library: Dropdown/ListPopup: stabilize render path and refine a11y by @YuKongA in 54d61c88
- library: Dropdown: extra first/last padding only on popup-global rows by @YuKongA in 8a5e4f4b
miuix-blur
- library: refactor blur module and refresh baselines by @YuKongA in ce7a0a5b
- library: miuix-blur: reuse scratch buffers in effect hot path by @YuKongA in 47722893
- library: optimize miuix-blur downsampling cascade for sf=8/16 by @YuKongA in fa704506
- library: refactor miuix-blur downsampling and color controls by @YuKongA in 3469f991
- library: miuix-blur: rework Highlight as drawBackdrop param by @YuKongA in ae56ac17
Other
- library: Refactor miuix-icons by @YuKongA in 20d960bd
- library: CascadingListPopup: drop duplicate enter haptic by @YuKongA in 00603966
- library: navigation3-ui: sync androidx v1.1.0 by @YuKongA in 19c87ff3
Bug Fixes
- library: ListPopup: fix exit truncation, gesture race, stale captures by @YuKongA in 92365217
- library: Dialog: fix stale captures, modifier churn, redundant dim work by @YuKongA in f8140719
- library: BottomSheet: fix IME drift, stale captures, gesture overhead by @YuKongA in 531e0b11
- library: cap lower width by upper to avoid narrow-parent crash by @YuKongA in 8e6b6245
- library: fix HoldDown leak and a11y semantics by @YuKongA in https://github.com/co...
v0.9.0
Highlights
- New
miuix-blurmodule — Blur/backdrop effects for Compose Multiplatform (Android API 31+) - New
miuix-shapesmodule — Smooth rounded corner shapes, replacing third-partycom.kyant.shapes - Module restructuring:
miuix→miuix-ui+miuix-preference— AllSuper*components renamed - TopAppBar API rework — Built-in icon slot padding; parameters renamed
- Web platform consolidation —
jsandwasmJsmerged intowebmodule
⚠️ Breaking Changes
1. Module Restructuring (Migration Required)
Gradle dependency coordinate changes:
// Old (v0.8.x)
implementation("top.yukonga.miuix.kmp:miuix:<version>")
// New (v0.9.0)
implementation("top.yukonga.miuix.kmp:miuix-ui:<version>")
implementation("top.yukonga.miuix.kmp:miuix-preference:<version>") // If using preference componentsComponent rename migration table:
| Old Name (v0.8.x) | New Name (v0.9.0) | Module |
|---|---|---|
SuperSwitch |
SwitchPreference |
miuix-preference |
SuperCheckbox |
CheckboxPreference |
miuix-preference |
SuperRadioButton |
RadioButtonPreference |
miuix-preference |
SuperArrow |
ArrowPreference |
miuix-preference |
SuperDropdown |
OverlayDropdownPreference |
miuix-preference |
SuperSpinner |
OverlaySpinnerPreference |
miuix-preference |
WindowDropdown |
WindowDropdownPreference |
miuix-preference |
WindowSpinner |
WindowSpinnerPreference |
miuix-preference |
SuperDialog |
OverlayDialog |
miuix-ui |
SuperBottomSheet |
OverlayBottomSheet |
miuix-ui |
SuperListPopup |
OverlayListPopup |
miuix-ui |
Import path changes:
// Old
import top.yukonga.miuix.kmp.extra.SuperSwitch
import top.yukonga.miuix.kmp.extra.SuperDialog
// New
import top.yukonga.miuix.kmp.preference.SwitchPreference
import top.yukonga.miuix.kmp.overlay.OverlayDialog2. TopAppBar Parameter Renames
// Old
TopAppBar(horizontalPadding = 16.dp, ...)
TopAppBarDefaults.HorizontalPadding
// New
TopAppBar(titlePadding = 16.dp, ...)
TopAppBarDefaults.TitlePaddingNew navigationIconPadding and actionIconPadding parameters (default 16.dp). Navigation icon and action icon slots now include built-in padding. Remove any manual padding to avoid double padding:
// Old — manual padding required
TopAppBar(
navigationIcon = {
IconButton(modifier = Modifier.padding(start = 16.dp)) { ... } // ← Remove this
}
)
// New — padding is built-in
TopAppBar(
navigationIcon = {
IconButton(onClick = {}) { ... } // No manual padding needed
}
)3. Web Module Consolidation
js and wasmJs platform source sets have been merged into a web module. If you used platform-specific jsMain or wasmJsMain source sets, migrate them to webMain.
What's Changed
New Modules
Breaking Changes
- library!: restructure modules into miuix-ui and miuix-preference by @YuKongA in #282
- library!: add built-in icon padding to TopAppBar and rename parameters by @YuKongA in 27fe381
- library: merge
jsandwasmJsintowebmodule by @YuKongA in badbe22
Improvements
- library: refactor TopAppBar layout by @YuKongA in #286
- library: cache outline for smooth rounding shapes by @YuKongA in 5130053
- library: refactor pull-to-refresh state management by @YuKongA in 3c7e04d
- library: enhance BottomSheet dismissal animation by @YuKongA in 15d4893
- library: improve component semantics and performance by @YuKongA in 9a9b637
- library: add RuntimeShader.asBrush() to fix Skiko shader rendering by @YuKongA in a5f6a53
Bug Fixes
- library: Fix half precision underflow for kGuardedDivideEpsilon by @suqi8 in 4477153
- library: fix TextField border drawing when size is too small by @suqi8 in 858307e
- library: miuix-blur: fix premultiplied alpha handling in custom blend modes by @YuKongA in 21f9ee8
- library: miuix-blur: improve noise dithering by @YuKongA in 364978e
- library: fix blur enabled toggle not updating foreground content by @YuKongA in 23a0464
- library: remove startup profile conversion as it is not packaged into AAR by @YuKongA in 8e40544
- example: replace manual pointer interception with
clickableinAppContent, fixes #284 by @wxxsfxyzm in #285
Example & Docs
- example: refactor BgEffect into modular components by @YunZiA in #283
- docs: update module names and dependency coordinates after restructure by @YuKongA in 881f769
- docs: add icon padding tip for TopAppBar by @YuKongA in ad58a82
Dependencies
- fix(deps): update dependency androidx.navigation3:navigation3-runtime to v1.1.0-rc01 by @renovate in #275
- chore(deps): update dependency org.jetbrains.dokka to v2.2.0 by @renovate in #279
- chore(deps): update dependency androidx.baselineprofile to v1.5.0-alpha05 by @renovate in #274
- chore(deps): update actions/configure-pages action to v6 by @renovate in #280
- chore(deps): update actions/deploy-pages action to v5 by @renovate in #276
- chore(deps): update gradle/actions action to v6 by @renovate in #271
Full Changelog: v0.8.8...v0.9.0
亮点
- 新增
miuix-blur模块 — Compose Multiplatform 模糊/毛玻璃效果库(Android API 31+) - 新增
miuix-shapes模块 — 平滑圆角形状库,替代第三方com.kyant.shapes - 模块重构:
miuix→miuix-ui+miuix-preference— 所有Super*组件重命名 - TopAppBar API 重构 — 内置图标插槽间距,参数重命名
- Web 平台合并 —
js和wasmJs合并为web模块
⚠️ 破坏性更改
1. 模块重构(需要迁移)
Gradle 依赖坐标变更:
// 旧 (v0.8.x)
implementation("top.yukonga.miuix.kmp:miuix:<version>")
// 新 (v0.9.0)
implementation("top.yukonga.miuix.kmp:miuix-ui:<version>")
implementation("top.yukonga.miuix.kmp:miuix-preference:<version>") // 如使用偏好组件组件重命名迁移表:
| 旧名称 (v0.8.x) | 新名称 (v0.9.0) | 所属模块 |
|---|---|---|
SuperSwitch |
SwitchPreference |
miuix-preference |
SuperCheckbox |
CheckboxPreference |
miuix-preference |
SuperRadioButton |
RadioButtonPreference |
miuix-preference |
SuperArrow |
ArrowPreference |
miuix-preference |
SuperDropdown |
OverlayDropdownPreference |
miuix-preference |
SuperSpinner |
OverlaySpinnerPreference |
miuix-preference |
WindowDropdown |
WindowDropdownPreference |
miuix-preference |
WindowSpinner |
WindowSpinnerPreference |
miuix-preference |
SuperDialog |
OverlayDialog |
miuix-ui |
SuperBottomSheet |
OverlayBottomSheet |
miuix-ui |
SuperListPopup |
OverlayListPopup |
miuix-ui |
Import 路径变更:
// 旧
import top.yukonga.miuix.kmp.extra.SuperSwitch
import top.yukonga.miuix.kmp.extra.SuperDialog
// 新
import top.yukonga.miuix.kmp.preference.SwitchPreference
import top.yukonga.miuix.kmp.overlay.OverlayDialog2. TopAppBar 参数重命名
// 旧
TopAppBar(horizontalPadding = 16.dp, ...)
TopAppBarDefaults.HorizontalPadding
// 新
TopAppBar(titlePadding = 16.dp, ...)
TopAppBarDefaults.TitlePadding新增 navigationIconPadding 和 actionIconPadding 参数(默认 16.dp),导航图标和操作图标现在自动包含内置间距。如果之前手动添加了 padding,需要移除以避免双重间距:
// 旧 — 需要手动 padding
TopAppBar(
navigationIcon = {
IconButton(modifier = Modifier.padding(start = 16.dp)) { ... } // ← 删除此行
}
)
// 新 — padding 已内置
TopAppBar(
navigationIcon = {
IconButton(onClick = {}) { ... } // 无需手动 padding
}
)3. Web 模块合并
js 和 wasmJs 平台源码集合并为 web 模块。如果使用了平台特定的 jsMain 或 wasmJsMain 源码集,需要迁移到 webMain。
更新内容
新模块
破坏性更改
- library!: restructure modules into miuix-ui and miuix-preference by @yu...
v0.8.8
What's Changed
- library: add
ScrollBarcomponent and integrate into example app by @YuKongA - library: add
RadioButtonandSuperRadioButtoncomponents by @YuKongA in #270 - library: introduce smooth rounding control by @YuKongA
- library: add baseline profile support by @YuKongA
- library: implement baseline and startup profile conversion for Android by @YuKongA
- library: refactor component defaults into dedicated
Defaultsobjects by @YuKongA - library: refactor slider tick snapping by @YuKongA
- library: enhance animations and add color customization to
TopAppBarby @YuKongA - library: optimize
Switchcomponent animation and performance by @YuKongA - library: optimize
NavDisplayperformance and predictive back handling by @YuKongA - library:
MiuixOverscrollEffect: enhance fling velocity handling and X-axis support by @YuKongA - library: optimize layout performance and refactor components by @YuKongA
- library: optimize UI rendering and state management by @YuKongA
- library: optimize layout performance by using draw and graphics layer blocks by @YuKongA
- library: Improve Monet support for API36 by @YuKongA
- build: rename baseline profile by @YuKongA in #269
- example: Improve unidirectional data flow by @YuKongA in #258
- example: add monochrome launcher icon by @YuKongA
- fix(deps): update kotlin monorepo to v2.3.20 by @renovate in #262
- fix(deps): update jetbrains.compose.multiplatform to v1.10.3 by @renovate in #267
- fix(deps): update jetbrains.lifecycle to v2.10.0 by @renovate in #266
- fix(deps): update dependency androidx.activity:activity-compose to v1.13.0 by @renovate in #260
- fix(deps): update dependency androidx.navigation3:navigation3-runtime to v1.1.0-beta01 by @renovate in #259
- fix(deps): update dependency androidx.collection:collection to v1.6.0 by @renovate in #261
- fix(deps): update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.4.0 by @renovate in #264
- fix(deps): update about.libraries to v14.0.0-b03 by @renovate in #263
- chore(deps): update gradle to v9.4.1 by @renovate in #265
Full Changelog: v0.8.7...v0.8.8
v0.8.7
What's Changed
- library: SearchBar: change font weight to Medium by @HChenX in #248
- fix(deps): update jetbrains.lifecycle to v2.10.0-beta01 by @renovate[bot] in #247
- library: add
NumberPickercomponent by @YuKongA in #249 - fix(deps): update jetbrains.compose.multiplatform to v1.10.2 by @renovate[bot] in #250
- library: refactor overlay components and optimize Scaffold popup management by @YuKongA in #251
- library: fix SearchBar focus bug on Android API 26-27 by @YuKongA in #252
- example: refactor example application by @YuKongA in #254
- example: add search functionality to IconPage by @YuKongA in #255
- library: Import MiuixOverscrollFactory by @YuKongA in #256
- library: add interactionSource and indication to some components by @YuKongA in #257
Full Changelog: v0.8.6...v0.8.7
v0.8.6
What's Changed
- library: add
textStylesupport toSearchBarInputFieldby @HChenX in #237 - library: update error color values in theme definitions by @wxxsfxyzm in #238
- fix(deps): update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.3.0 by @renovate[bot] in #239
- fix(deps): update dependency com.android.tools.build:gradle to v9.1.0 by @renovate[bot] in #240
- library: add support for indeterminate state in Checkbox by @YuKongA in #241
- feat: support customize palette style & color spec by @wxxsfxyzm in #242
- chore(deps): update gradle to v9.4.0 by @renovate[bot] in #243
- library: Sync androidx navigation 3 UI by @YuKongA in #244
- library: optimize color providers and refactor BasicComponent layout by @YuKongA in #245
- library: optimize recomposition and performance for UI components by @YuKongA in #246
Full Changelog: v0.8.5...v0.8.6
v0.8.5
What's Changed
- library: android: downgrade minSdk to 23 by @YuKongA 7e0c957
- library: apply overScrollVertical to ListPopup by @wxxsfxyzm in #233
- fix(deps): update dependency androidx.navigation3:navigation3-runtime to v1.1.0-alpha05 by @renovate[bot] in #234
- chore(deps): update actions/upload-artifact action to v7 by @renovate[bot] in #236
Full Changelog: v0.8.4...v0.8.5
v0.8.4
What's Changed
- library: SearchBar: Use LocalContentColor for InputField text by @YuKongA b0ccec3
- library: android: Fix DynamicColors on Android 12-13 by @YuKongA 3950113
- fix(deps): update dependency io.github.kyant0:shapes to v1.2.0 by @renovate[bot] in #231
- fix: Fix NavDisplay over-recompose by @6xingyv in #232
New Contributors
Full Changelog: v0.8.3...v0.8.4
v0.8.3
Highlights
- Allows custom color overrides in
ThemeController - Add
NavigationRailcomponent - Sync
miuix-navigation3-uito androidx v1.1.0-alpha04
Existing Components/APIs Changes
- Refactor the usage of the
NavigationBar/FloatingNavigationBarcomponent
What's Changed
- fix(deps): update kotlin monorepo to v2.3.10 by @renovate[bot] in #217
- docs: add InstallerX Revived to best practices by @wxxsfxyzm in #218
- fix(deps): update dependency org.jetbrains.androidx.navigationevent:navigationevent-compose to v1.0.1 by @renovate[bot] in #220
- fix(deps): update dependency org.jetbrains.compose.foundation:foundation to v1.10.1 by @renovate[bot] in #221
- fix(deps): update dependency androidx.activity:activity-compose to v1.12.4 by @renovate[bot] in #223
- fix(deps): update dependency androidx.navigation3:navigation3-runtime to v1.1.0-alpha04 by @renovate[bot] in #224
- fix(deps): update dependency io.github.kyant0:shapes to v1.1.2 by @renovate[bot] in #227
- fix(deps): update dependency com.android.tools.build:gradle to v9.0.1 by @renovate[bot] in #228
- library: Remove
updateColorsFromtext color updates by @YuKongA in #229 - library: Allow customization of theme colors in ThemeController by @YuKongA in #230
Full Changelog: v0.8.0...v0.8.3
v0.8.0
Highlights
- Add
WindowDialog/WindowBottomSheet/WindowListPopup/WindowDropdown/WindowSpinnercomponents - Refactor Monet color support
- Replicate HyperOS3
SliderEffect - Replicate HyperOS3
SwitchEffect - Replicate HyperOS3
TabRowEffect - Replicate HyperOS3
CheckboxEffect - Replicate HyperOS3
DropdownEffect - Migrate all
Modifier.composedtoModifier.Node - Migrate to official
NavigationBackHandler - Use
Modifier.draggableinstead ofModifier.detect*DragGestures - Improve RTL support
Existing Components/APIs Changes
- Icons are now stored separately in the
miuix-icons - Renamed original
ListpopuptoSuperListPopup - Removed
getWindowSize, please use the officialLocalWindowInfoinstead - Parameters previously related to
LeftandRighthave been renamed toStartandEnd
What's Changed
- library: Replace Gaze Capsule with Kyant Shapes by @YuKongA in bc8a7a2
- library: Refactor predictive pop transition API and add inverse easing by @YuKongA in #200
- library: Improve line break strategy again by @YuKongA in 5cf1eab
- library: Refactor Dialog corner radius and alignment logic by @YuKongA in 3bd19ae
- library: Add miuix-navigation3-ui by @YuKongA in 27c295e / bce370c / 3d32bc4 / f3f2a7b / 5a34b02
- library: Add miuix-navigation3-adaptive by @YuKongA in bcd76e8
- library: overscroll: Add missing clipToBounds() by @YuKongA in 48e7b3f
- library: Remove experimental annotation from DialogProperties by @YuKongA in 034cde9
- refactor(MiuixPopup): Remove ParabolaScrollEasing and improve state cleanup by @HChenX in #172
- library: Add WindowDialog component by @YuKongA in #171
- library: Add WindowBottomSheet component by @YuKongA in #173
- library: Add WindowListPopup/WindowDropdown/WindowSpinner component by @YuKongA in #174
- refactor(Component): Fix hold down indication by @HChenX in #175
- fix(PullToRefresh): Reset state to idle after rebound by @HChenX in #176
- feat(dialog): Add onDismissFinished callback by @HChenX in #178
- fix(Switch): improve drag detection and gesture handling by @wxxsfxyzm in #179
- chore: Configure Renovate by @renovate[bot] in #180
- library: Refactor ColorPicker to be controlled component by @HChenX in #184
- library: Refactor color spaces to use Float and fix update bugs by @HChenX in #185
- opt: optimizations to
DialogandBottomSheetby @wxxsfxyzm in #186 - fix: fixed a bug causing
WindowDialogbeing dismissed whenonDismissRequestis null by @wxxsfxyzm in #187 - library: Add Snackbar component by @YuKongA in #188
- fix(deps): update dependency org.jetbrains.androidx.navigationevent:navigationevent-compose to v1.0.0 by @renovate[bot] in #189
- fix(deps): update jetbrains.compose.multiplatform to v1.10.0 by @renovate[bot] in #190
- fix(deps): update dependency androidx.navigation3:navigation3-runtime to v1.1.0-alpha02 by @renovate[bot] in #192
- fix: fix
fillMaxHeight()causing components fill infinity height by @wxxsfxyzm in #196 - chore(deps): update gradle to v9.3.0 by @renovate[bot] in #197
- library: Refactor BottomSheet animation effects by @YuKongA in #198
- library: Refactor predictive pop transition API and add inverse easing by @YuKongA in #200
- fix(deps): update kotlin monorepo to v2.3.0 by @renovate[bot] in #181
- fix(deps): update dependency com.materialkolor:material-color-utilities to v4.1.0 by @renovate[bot] in #191
- fix(deps): update about.libraries to v14.0.0-b02 by @renovate[bot] in #201
- fix(deps): update dependency io.nlopez.compose.rules:ktlint to v0.5.5 by @renovate[bot] in #202
- fix(deps): update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.2.0 by @renovate[bot] in #203
- fix(deps): update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.2.1 by @renovate[bot] in #207
- fix(deps): update dependency io.nlopez.compose.rules:ktlint to v0.5.6 by @renovate[bot] in #205
- fix(deps): update jetbrains.lifecycle to v2.10.0-alpha08 by @renovate[bot] in #206
- fix(deps): update dependency androidx.navigation3:navigation3-runtime to v1.1.0-alpha03 by @renovate[bot] in #208
- chore(deps): update gradle to v9.3.1 by @renovate[bot] in #209
- fix(deps): update dependency androidx.activity:activity-compose to v1.12.3 by @renovate[bot] in #210
- 添加词幕到合作名单 by @proify in #212
- misc: Embrace AGENTS.md by @YuKongA in #213
- fix(deps): update dependency com.materialkolor:material-color-utilities to v4.1.1 by @renovate[bot] in #214
New Contributors
Full Changelog: v0.7.2...v0.8.0