compose-miuix-ui/miuix

A UI library for Compose Multiplatform

1,235

stars

1,202

commits

Kotlin

primary language

Sep 11, 2026

updated

compose-miuix-ui.github.io/miuix/
compose-multiplatform
compose-multiplatform-library
compose-ui
miuix

README

Miuix

A UI library for Compose Multiplatform.

This library is experimental. APIs may change without notice.

Kotlin Compose Multiplatform Maven Central License

Supported Platforms

Android iOS macOS Desktop JsCanvas WasmJs

Demos

JsCanvas WasmJs Other

Modules

ModuleDescription
miuix-uiCore UI component library
miuix-preferencePreference components library, depends on miuix-ui
miuix-iconsExtended icon library, can be used independently
miuix-blurBlur effect library, can be used independently
miuix-squircleSquircle shapes library, can be used independently
miuix-navNavigation library, can be used independently
miuix-shaderLow-level runtime shader / render effect abstraction

Getting Started

kotlin {
    sourceSets {
        commonMain.dependencies {
            implementation("top.yukonga.miuix.kmp:miuix-ui:<version>")
            // Optional: Add miuix-preference for preference components
            implementation("top.yukonga.miuix.kmp:miuix-preference:<version>")
            // Optional: Add miuix-icons for more icons
            implementation("top.yukonga.miuix.kmp:miuix-icons:<version>")
            // Optional: Add miuix-blur for blur effects
            implementation("top.yukonga.miuix.kmp:miuix-blur:<version>")
            // Optional: Add miuix-squircle for squircle (smooth rounded corner) shapes
            implementation("top.yukonga.miuix.kmp:miuix-squircle:<version>")
            // Optional: Add miuix-nav for navigation
            implementation("top.yukonga.miuix.kmp:miuix-nav:<version>")
            // Other dependencies...
        }
        // Other sourceSets...
    }
    // Other configurations...
}

Usage

  • Provide a color scheme via MiuixTheme(colors = ...), e.g., lightColorScheme() or darkColorScheme().
@Composable
fun AppTheme(
    content: @Composable () -> Unit
) {
    val colors = if (isSystemInDarkTheme()) darkColorScheme() else lightColorScheme()
    return MiuixTheme(
        colors = colors,
        content = content
    )
}
  • Use ThemeController to manage modes and enable Monet dynamic colors. Pass keyColor to set a custom seed color.
@Composable
fun AppTheme(
    content: @Composable () -> Unit
) {
    val controller = remember {
        ThemeController(
            ColorSchemeMode.MonetSystem,
            keyColor = Color(0xFF3482FF)
        )
    }
    return MiuixTheme(
        controller = controller,
        content = content
    )
}

Screenshots

Screenshot 001Screenshot 002Screenshot 003
Screenshot 004Screenshot 005Screenshot 006

Contributors

YuKongA

880 commits

renovate[bot]

125 commits

dependabot[bot]

73 commits

wxxsfxyzm

38 commits

compose-miuix-ui/miuix

A UI library for Compose Multiplatform

1,235

stars

1,202

commits

Kotlin

primary language

Sep 11, 2026

updated

compose-miuix-ui.github.io/miuix/
compose-multiplatform
compose-multiplatform-library
compose-ui
miuix

README

Miuix

A UI library for Compose Multiplatform.

This library is experimental. APIs may change without notice.

Kotlin Compose Multiplatform Maven Central License

Supported Platforms

Android iOS macOS Desktop JsCanvas WasmJs

Demos

JsCanvas WasmJs Other

Modules

ModuleDescription
miuix-uiCore UI component library
miuix-preferencePreference components library, depends on miuix-ui
miuix-iconsExtended icon library, can be used independently
miuix-blurBlur effect library, can be used independently
miuix-squircleSquircle shapes library, can be used independently
miuix-navNavigation library, can be used independently
miuix-shaderLow-level runtime shader / render effect abstraction

Getting Started

kotlin {
    sourceSets {
        commonMain.dependencies {
            implementation("top.yukonga.miuix.kmp:miuix-ui:<version>")
            // Optional: Add miuix-preference for preference components
            implementation("top.yukonga.miuix.kmp:miuix-preference:<version>")
            // Optional: Add miuix-icons for more icons
            implementation("top.yukonga.miuix.kmp:miuix-icons:<version>")
            // Optional: Add miuix-blur for blur effects
            implementation("top.yukonga.miuix.kmp:miuix-blur:<version>")
            // Optional: Add miuix-squircle for squircle (smooth rounded corner) shapes
            implementation("top.yukonga.miuix.kmp:miuix-squircle:<version>")
            // Optional: Add miuix-nav for navigation
            implementation("top.yukonga.miuix.kmp:miuix-nav:<version>")
            // Other dependencies...
        }
        // Other sourceSets...
    }
    // Other configurations...
}

Usage

  • Provide a color scheme via MiuixTheme(colors = ...), e.g., lightColorScheme() or darkColorScheme().
@Composable
fun AppTheme(
    content: @Composable () -> Unit
) {
    val colors = if (isSystemInDarkTheme()) darkColorScheme() else lightColorScheme()
    return MiuixTheme(
        colors = colors,
        content = content
    )
}
  • Use ThemeController to manage modes and enable Monet dynamic colors. Pass keyColor to set a custom seed color.
@Composable
fun AppTheme(
    content: @Composable () -> Unit
) {
    val controller = remember {
        ThemeController(
            ColorSchemeMode.MonetSystem,
            keyColor = Color(0xFF3482FF)
        )
    }
    return MiuixTheme(
        controller = controller,
        content = content
    )
}

Screenshots

Screenshot 001Screenshot 002Screenshot 003
Screenshot 004Screenshot 005Screenshot 006

Contributors

YuKongA

880 commits

renovate[bot]

125 commits

dependabot[bot]

73 commits

wxxsfxyzm

38 commits

Languages

Kotlin

99.8%