M3E Core

Flutter Pub Version License Material 3 Expressive

M3E Intro

A comprehensive Flutter package providing Expressive Material 3 components: Segmented Lists, Dismissible Cards, Expandable Cards, Bottom Sheets, Dropdown Menus, Buttons, Floating Toolbars, Extended M3 Shapes, Seekbars, Progress & Loading Indicators, and Emphasized Typography.


Live Demo

Try the hosted example app here: m3e_core

Browse the example source here:

Example App


πŸ“¦ Individual Packages

This package (m3e_core) bundles multiple M3E components. For detailed documentation and standalone usage, please refer to the individual packages:


πŸ“¦ Installation

Important

Flutter 3.47+ & material_ui Requirement (v1.1.0+): Starting with v1.1.0, m3e_core is migrated to use the standalone material_ui package decoupled in Flutter 3.47.0.

  • Requires Flutter SDK >=3.47.0.
  • Ensure your app imports package:material_ui/material_ui.dart (or run dart fix --apply --code=migrate_design_widgets).
  • If you are on Flutter < 3.47.0, please use m3e_core: ^0.1.6.

Warning

Deprecation Notice β€” M3ECardList is deprecated (v1.1.2+): M3ECardList, M3ECardColumn, SliverM3ECardList, M3ECard, and M3ECardPosition are now deprecated in favor of M3ESegmentedList, M3ESegmentedColumn, SliverM3ESegmentedList, and M3ESegmentedItem. The new segmented list components introduce full reordering support (M3EReorderableSegmentedList), spring item morphing, and selection modes while maintaining complete feature parity. Legacy card list types will be removed in a future major release.

Add m3e_core and material_ui to your pubspec.yaml:

dependencies:
  material_ui: ^1.1.0
  m3e_core: ^1.1.3
import 'package:material_ui/material_ui.dart';
import 'package:m3e_core/m3e_core.dart';

⚠️ Breaking API Changes (v0.1.0)

Version 0.1.0 updates m3e_dismissible, m3e_expandable, m3e_card_list and m3e_dropdown to v0.1.0. These updates include breaking API changes.

Please refer to the documentation on their respective individual package pages (linked below) for detailed migration guides and updated API references.


🧩 Components

Detailed documentation for each component is available in their respective packages linked above.

1. M3E Segmented List (formerly M3E Card List)

Warning

M3ECardList is deprecated in v1.1.2. Use M3ESegmentedList instead.

Interactive segmented lists with expressive corner rounding, horizontal segmented row (M3ESegmentedRow), spring physics reordering (M3EReorderableSegmentedList), keyboard navigation & focus rings, pressed scale micro-interactions, selection modes (single/multi), and sliver variants (SliverM3ESegmentedList). Detailed Documentation β†’

2. M3E Dismissible Cards

Swipe-to-dismiss items with a beautiful spring-driven "neighbour pull" effect. Supports spring reordering (M3EReorderableDismissibleList), keyboard navigation & concentric focus rings, pressed scale micro-interactions, multi-action reveal, threshold haptics, spring stretch, and custom swipe directions. Detailed Documentation β†’

3. M3E Expandable Cards

Smoothly expand and collapse individual cards using motor spring animations. Supports spring reordering (M3EReorderableExpandableList), keyboard navigation & focus rings, pressed scale micro-interactions, auto-collapse, bouncy collapse transitions, and multiple expanded items. Detailed Documentation β†’

4. M3E Dropdown Menu

A powerful, stylized dropdown with support for single/multi-selection, fuzzy search, async loading, keyboard navigation & focus rings, spring pressed scale micro-interactions, and animated chip tags. Detailed Documentation β†’

5. M3E Buttons

A robust button system featuring:

  • Neighbor Squish: Adjacent buttons compress when one is pressed.
  • Shape Morphing: Smooth transitions between different shapes (e.g., pill to square).
  • Floating Action Buttons: M3EFab and M3EFabMenu adhering to M3E token specifications.
  • Overflow Management: Supports scroll, menu, and paging for constrained spaces. Detailed Documentation β†’

6. M3 Shapes Extended

A wide variety of predefined Material 3 expressive shapes (Gem, Slanted, Flower, etc.) for visual elements or clipping. Detailed Documentation β†’

7. M3E Floating Toolbar

A faithful Flutter port of the Material 3 Expressive FloatingToolbar component family with docked toolbar support and spring physics. Detailed Documentation β†’

8. M3E Slider

Material 3 Expressive Slider and RangeSlider with docking animations, customizable spring physics (M3ESliderMotion), and support for track shapes. Detailed Documentation β†’

9. M3E Color Scheme

Dynamic color scheme utilities following Material 3 Expressive color system guidelines. Detailed Documentation β†’

10. M3E Haptics

Expressive haptic feedback engine with spring-synchronized patterns for rich tactile experiences. Detailed Documentation β†’

11. M3E Progress Indicator

Material 3 Expressive circular and linear progress indicators with wavy and animated variants. Detailed Documentation β†’

12. M3E Loading Indicator

Expressive loading indicator with fluid shape morphing animations and pull-to-refresh indicators. Detailed Documentation β†’

13. M3E Seekbar

Material 3 Expressive Seekbar with standard, wavy, and animated variants, custom handle shapes, synchronized corner radii, and spring physics. Detailed Documentation β†’

14. M3E Typography

Material 3 Expressive Emphasized Typography scale elevating font weights, optical sizes, and variable font axes across all 15 M3 roles. Detailed Documentation β†’

15. M3E Bottom Sheet

Material 3 Expressive standard and modal bottom sheets (M3EBottomSheet, showM3EModalBottomSheet) with spring dismiss animations, drag handle support, and full theme customization. Detailed Documentation β†’


🐞 Found a bug? or ✨ Feature Request?

Feel free to open an Issue or Contribute.


❀️ Support & Like

If you loved using M3E Core, please consider dropping a πŸ‘ like on pub.flutter-io.cn and a ⭐ star on GitHub β€” it helps the project grow!


Credits

Radhe Radhe πŸ™

Libraries

m3e_core
Material 3 Expressive (M3E) components and utilities for Flutter.