navigation_rail_m3e 0.3.2 copy "navigation_rail_m3e: ^0.3.2" to clipboard
navigation_rail_m3e: ^0.3.2 copied to clipboard

Material 3 Expressive navigation rail (collapsed & expanded) with modal/standard modes, badges, sections, and m3e_design token integration.

navigation_rail_m3e #

Material 3 Expressive Navigation Rail for Flutter — featuring collapsed & expanded variants, modal and standard presentation, sections, badges, menu and FAB slots, and smooth expand/collapse transitions. Built to match the M3 Expressive spec and integrate with the m3e_design token package.

Highlights #

  • Collapsed (96 dp) and Expanded (220–360 dp) rails with animated transition
  • Expanded modal presentation with scrim
  • Optional menu and FAB/Extended FAB slots
  • Item badges (large numeric & small dot)
  • Sections with headers; full-width hit targets
  • Token-driven colors, typography & shapes via m3e_design (with safe fallbacks)

Quick start #

NavigationRailM3E(
  type: NavigationRailM3EType.expanded,
  modality: NavigationRailM3EModality.standard,
  selectedIndex: 0,
  onDestinationSelected: (i) => setState(() => _index = i),
  onTypeChanged: (t) => setState(() => type = t),
  fab: NavigationRailM3EFabSlot(icon: const Icon(Icons.add), label: 'New', onPressed: () {}),
  sections: [
    NavigationRailM3ESection(
      header: const Text('Main'),
      destinations: [
        NavigationRailM3EDestination(
          icon: const Icon(Icons.edit_outlined),
          selectedIcon: const Icon(Icons.edit),
          label: 'Edit',
          largeBadgeCount: 0,
        ),
        NavigationRailM3EDestination(
          icon: const Icon(Icons.star_outline),
          selectedIcon: const Icon(Icons.star),
          label: 'Starred',
          smallBadge: true,
        ),
      ],
    ),
  ],
);

See the /example app for a runnable demo.


Explore this component in the M3E Gallery (GitHub Pages):

https://

To run the Gallery locally:

cd apps/gallery
flutter run -d chrome

Last updated: 2025-10-23


Detailed Guide #

What this package provides #

NavigationRailM3E with collapsed/expanded states, standard/modal presentation, badges, sections, and slots for FAB/menu. Integrates tightly with M3E tokens.

Installation #

  • Monorepo (local path): already configured alongside m3e_design, fab_m3e, icon_button_m3e, button_m3e.
  • Pub (when published):
dependencies:
  navigation_rail_m3e: ^0.1.0
  m3e_design: ^0.1.0
  fab_m3e: ^0.1.0
  icon_button_m3e: ^0.1.1
  button_m3e: ^0.1.0

Minimum SDK: Dart >=3.0.0.

Dependencies #

  • flutter
  • m3e_design, fab_m3e, icon_button_m3e, button_m3e

Quick start #

NavigationRailM3E(
  selectedIndex: 0,
  onDestinationSelected: (i) {},
  expanded: true,
  modal: false,
  leading: const FabM3E(icon: Icon(Icons.add)),
  destinations: const [
    NavigationRailDestinationM3E(icon: Icon(Icons.inbox), label: 'Inbox'),
    NavigationRailDestinationM3E(icon: Icon(Icons.send), label: 'Sent'),
  ],
)

Key parameters #

  • expanded: bool — Expanded vs collapsed rail.
  • modal: bool — Modal overlay vs standard inline rail.
  • destinations: List
  • selectedIndex: int; onDestinationSelected: ValueChanged
  • leading / trailing: Widget? — Header/footer area.
  • fab / menu slots: Widgets for actions and menus.
  • badgeBuilder / badgeCount: Optional per-item badges.

Theming with m3e_design #

Rail colors, indicator style, and typography adapt from M3ETheme.

Accessibility #

  • Keyboard navigation, focus order, and semantics supported.
1
likes
0
points
383
downloads

Publisher

verified publisherbruckcode.de

Weekly Downloads

Material 3 Expressive navigation rail (collapsed & expanded) with modal/standard modes, badges, sections, and m3e_design token integration.

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

button_m3e, fab_m3e, flutter, icon_button_m3e, m3e_design

More

Packages that depend on navigation_rail_m3e