Introduction
flutter_miuix is a HyperOS-style component library for Flutter, ported from miuix, the Compose Multiplatform implementation. All design, motion, and interaction logic follows the original.
- Repository: https://github.com/ChuxinNeko/flutter_miuix
- pub.dev: https://pub.dev/packages/flutter_miuix
- License: Apache-2.0
Features
- Full component coverage: 45+ widgets with 100% coverage of the original — Button / TextField / Switch / Slider / NavigationBar / NavigationRail / Scaffold / TopAppBar / TabRow / BreadcrumbBar / BottomSheet / Dialog / Snackbar / Tooltip / Dropdown / ListPopup / CascadingMenu / ColorPicker / PullToRefresh and more
- Squircle superellipse corners:
MiuixSquircleBorderreproduces the iconic iOS / HyperOS "rounded-square" corner shape - Folme spring motion:
MiuixSpringEngine+folmeSpring(damping, response)reproduce the physical, spring-driven transitions of the original - Liquid Glass blur:
MiuixTextureBlur(gaussian blur) +MiuixHighlight(shader bloom stroke) for frosted surfaces and glowing edges; enable a frosted app bar with a single line —MiuixTopAppBar(blurred: true) - Monet dynamic colors: built on
material_color_utilities+dynamic_color; generate a full miuix color scheme (27 roles) from the wallpaper or a seed color - OkLab / OkLCH / OkHSV color spaces: a complete port of the perceptually-uniform color math behind the multi-space ColorPicker
- Vector icon system:
MiuixVectorIcon+MiuixBasicIcons/MiuixExtendedIconswith path parsing, tinting, and lookup by name - Unified popup infrastructure:
MiuixPopupHost+MiuixPopupRegistrymanage registration, layering, and transitions for Dialog / BottomSheet / ListPopup / Dropdown
Component categories
| Category | Main components | Docs |
|---|---|---|
| Buttons | MiuixButton · MiuixTextButton · MiuixIconButton · MiuixFloatingActionButton | Buttons & Display |
| Inputs | MiuixTextField · MiuixSwitch · MiuixCheckbox · MiuixRadioButton · MiuixSlider · MiuixVerticalSlider · MiuixRangeSlider · MiuixSearchBar · MiuixNumberPicker | Inputs |
| Menus | MiuixOverlayDropdownMenu · MiuixOverlayIconDropdownMenu · MiuixOverlayIconCascadingDropdownMenu | Overlays & Feedback |
| Display | MiuixText · MiuixCard · MiuixBadge · MiuixBadgedBox · MiuixHorizontalDivider · MiuixVerticalDivider · MiuixSmallTitle · MiuixBasicComponent | Buttons & Display |
| Preferences | MiuixArrowPreference · MiuixSwitchPreference · MiuixCheckboxPreference · MiuixRadioButtonPreference · MiuixSliderPreference · MiuixOverlayDropdownPreference · MiuixOverlaySpinnerPreference | Preferences |
| Pickers | MiuixColorPicker · MiuixHsvColorPicker · MiuixOkHsvColorPicker · MiuixOkLabColorPicker · MiuixOkLchColorPicker · MiuixColorPalette | Preferences |
| Feedback | MiuixSnackbar · MiuixSnackbarHost · MiuixTooltip · MiuixRichTooltip · MiuixOverlayDialog · MiuixLinearProgressIndicator · MiuixCircularProgressIndicator · MiuixInfiniteProgressIndicator | Overlays & Feedback |
| Overlays | MiuixOverlayBottomSheet · MiuixWindowBottomSheet · MiuixFloatingToolbar · MiuixListPopupColumn · MiuixOverlayListPopup | Overlays & Feedback |
| Navigation | MiuixScaffold · MiuixTopAppBar · MiuixSmallTopAppBar · MiuixNavigationBar · MiuixFloatingNavigationBar · MiuixNavigationRail · MiuixTabRow · MiuixTabRowWithContour · MiuixBreadcrumbBar | Navigation & Scaffold |
| Utility | MiuixSearchBar · MiuixVerticalScrollBar · MiuixHorizontalScrollBar · MiuixPullToRefresh · MiuixSurface | Navigation / Overlays |
| Theming | MiuixTheme · MiuixSystemTheme · MiuixThemeController · MiuixColors · MiuixTextStyles · MiuixMotion | Theme, Colors & Motion |
| Blur | MiuixTextureBlur · MiuixHighlight · MiuixLayerBackdrop · MiuixLayerBackdropCapture | Blur & Liquid Glass |
| Foundation | MiuixSquircleBorder · MiuixPressable · MiuixScrollEndHaptic · MiuixContentColor · MiuixSpringEngine · MiuixPopupHost | Foundation |
Platform support
| Platform | Status | Notes |
|---|---|---|
| Android | ✅ Full support | Includes wallpaper dynamic color (dynamic_color) |
| iOS | ✅ Full support | Wallpaper dynamic color falls back to a seed color |
| macOS | ✅ Full support | Same as iOS |
| Windows | ✅ Full support | Wallpaper dynamic color falls back to a seed color |
| Linux | ✅ Full support | Same as Windows |
| Web | ✅ Full support | Dynamic color falls back |
Credits
- compose-miuix-ui/miuix — the original miuix project (Compose Multiplatform); all design, motion, and interaction logic in this library originates there
- materialkolor — the Kotlin-side Material dynamic color library; this library's
miuixColorsFromSeedis equivalent to its core flow
Next steps
- Installation — add the dependency and import
- Quick Start — your first Miuix page in five minutes
- Theming — custom colors and Monet dynamic color