Skip to content

Releases: compose-miuix-ui/miuix

v0.9.2

05 Jun 11:13
09f6371

Choose a tag to compare

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

改进

组件

  • library: use rememberSaveable for largeTitleHeight and optimize smallTitle animations by @lightsummer233 in #334
  • library: refactor TopAppBar based...
Read more

v0.9.1

14 May 14:56
267dd03

Choose a tag to compare

English | 中文

Highlights

  • Upgraded to Compose Multiplatform 1.11.0 — tracks the latest stable release.
  • miuix-shapes removed — performance cost outweighed visual gain.
  • New: Cascading two-level ListPopup / DropdownMenuOverlayCascadingListPopup, WindowCascadingListPopup, OverlayIconCascadingDropdownMenu, WindowIconCascadingDropdownMenu.
  • New: Highlight support in miuix-blurModifier.drawBackdrop() / Modifier.textureBlur() accept a highlight parameter for overlay highlight effects.
  • miuix-blur API changes — DSL gaussianBlur(...) renamed to blur(...); Modifier.textureBlur blurRadius is now interpreted as dp (auto density conversion); Android minSdk bumped 31 → 32.
  • Dropdown / Spinner unifiedSpinnerPopup merged into OverlayDropdownPopup; per-item callbacks enable multi-select.
  • Compose stability & render-path optimizationsButton, 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

  • SpinnerEntry is now a deprecated typealias for DropdownItem; SpinnerColors is a deprecated typealias for DropdownColors.
  • SpinnerDefaults is deprecated — use DropdownDefaults instead.
  • The previous DropdownPopup / SpinnerPopup are merged into a single OverlayDropdownPopup (with OverlayDropdownDialog covering the dialog mode); the Window-side equivalents live in WindowDropdownPopup / WindowDropdownDialog.
  • WindowDropdownPreference / WindowSpinnerPreference (and their Overlay* counterparts) now manage their options via the unified DropdownEntry / DropdownItem types.
  • New menu wrappers added under miuix-preference: OverlayDropdownMenu, OverlayIconDropdownMenu, WindowDropdownMenu, WindowIconDropdownMenu, plus the cascading *IconCascadingDropdownMenu variants.
  • DropdownItem gains a selected: Boolean field and an optional onClick: (() -> 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 startAction slot to preference components by @HChenX in #312
  • library: feat: add onExpandedChange(Boolean) in Dropdown and Spinner by @Miuzarte in #297
  • library: add holdDownState to Card by @YuKongA in #302
  • feat: let users swipe to dismiss snackbar by @AlexLiuDev233 in #292
  • library: BasicComponent: add role/onClickLabel for accessibility by @YuKongA in 32469d04
  • library: refactor: NavigationBar/Rail items use Modifier.selectable by @YuKongA in bc776daa
  • library: add missing LocalContentColor to MiuixTheme by @YuKongA in d9164065
  • library: miuix-blur: add Highlight support by @YuKongA in 6ec04d55
  • library: miuix-blur: add setInputShader by @YuKongA in 244ce596

Breaking / API Changes

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

Bug Fixes

Read more

v0.9.0

02 Apr 10:48
4477153

Choose a tag to compare

English | 中文

Highlights

  • New miuix-blur module — Blur/backdrop effects for Compose Multiplatform (Android API 31+)
  • New miuix-shapes module — Smooth rounded corner shapes, replacing third-party com.kyant.shapes
  • Module restructuring: miuixmiuix-ui + miuix-preference — All Super* components renamed
  • TopAppBar API rework — Built-in icon slot padding; parameters renamed
  • Web platform consolidationjs and wasmJs merged into web module

⚠️ 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 components

Component 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.OverlayDialog

2. TopAppBar Parameter Renames

// Old
TopAppBar(horizontalPadding = 16.dp, ...)
TopAppBarDefaults.HorizontalPadding

// New
TopAppBar(titlePadding = 16.dp, ...)
TopAppBarDefaults.TitlePadding

New 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 js and wasmJs into web module 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 clickable in AppContent, 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
  • 模块重构:miuixmiuix-ui + miuix-preference — 所有 Super* 组件重命名
  • TopAppBar API 重构 — 内置图标插槽间距,参数重命名
  • Web 平台合并jswasmJs 合并为 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.OverlayDialog

2. TopAppBar 参数重命名

//
TopAppBar(horizontalPadding = 16.dp, ...)
TopAppBarDefaults.HorizontalPadding

//
TopAppBar(titlePadding = 16.dp, ...)
TopAppBarDefaults.TitlePadding

新增 navigationIconPaddingactionIconPadding 参数(默认 16.dp),导航图标和操作图标现在自动包含内置间距。如果之前手动添加了 padding,需要移除以避免双重间距:

// 旧 — 需要手动 padding
TopAppBar(
    navigationIcon = {
        IconButton(modifier = Modifier.padding(start = 16.dp)) { ... }  // ← 删除此行
    }
)

// 新 — padding 已内置
TopAppBar(
    navigationIcon = {
        IconButton(onClick = {}) { ... }  // 无需手动 padding
    }
)

3. Web 模块合并

jswasmJs 平台源码集合并为 web 模块。如果使用了平台特定的 jsMainwasmJsMain 源码集,需要迁移到 webMain

更新内容

新模块

破坏性更改

  • library!: restructure modules into miuix-ui and miuix-preference by @yu...
Read more

v0.8.8

22 Mar 14:50
b6797a5

Choose a tag to compare

What's Changed

  • library: add ScrollBar component and integrate into example app by @YuKongA
  • library: add RadioButton and SuperRadioButton components 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 Defaults objects by @YuKongA
  • library: refactor slider tick snapping by @YuKongA
  • library: enhance animations and add color customization to TopAppBar by @YuKongA
  • library: optimize Switch component animation and performance by @YuKongA
  • library: optimize NavDisplay performance 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

10 Mar 09:42
ec1fbe4

Choose a tag to compare

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 NumberPicker component 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

05 Mar 10:01
61ab4eb

Choose a tag to compare

What's Changed

  • library: add textStyle support to SearchBar InputField by @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

27 Feb 09:51
23dd53f

Choose a tag to compare

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

23 Feb 00:58
c192886

Choose a tag to compare

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

14 Feb 06:10
380b7f6

Choose a tag to compare

Highlights

  • Allows custom color overrides in ThemeController
  • Add NavigationRail component
  • Sync miuix-navigation3-ui to androidx v1.1.0-alpha04

Existing Components/APIs Changes

  • Refactor the usage of the NavigationBar/FloatingNavigationBar component

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 updateColorsFrom text 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

05 Feb 01:09
a35cead

Choose a tag to compare

Highlights

  • Add WindowDialog / WindowBottomSheet / WindowListPopup / WindowDropdown / WindowSpinner components
  • Refactor Monet color support
  • Replicate HyperOS3 Slider Effect
  • Replicate HyperOS3 Switch Effect
  • Replicate HyperOS3 TabRow Effect
  • Replicate HyperOS3 Checkbox Effect
  • Replicate HyperOS3 Dropdown Effect
  • Migrate all Modifier.composed to Modifier.Node
  • Migrate to official NavigationBackHandler
  • Use Modifier.draggable instead of Modifier.detect*DragGestures
  • Improve RTL support

Existing Components/APIs Changes

  • Icons are now stored separately in the miuix-icons
  • Renamed original Listpopup to SuperListPopup
  • Removed getWindowSize, please use the official LocalWindowInfo instead
  • Parameters previously related to Left and Right have been renamed to Start and End

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 Dialog and BottomSheet by @wxxsfxyzm in #186
  • fix: fixed a bug causing WindowDialog being dismissed when onDismissRequest is 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