maui-shell-navigation

Implements Shell-based URI navigation, tabs, and flyout menus in .NET MAUI apps.

1|Updated Jun 1, 2026
One-click install
npx skills add https://github.com/D1ssolve/craft-agents --skill maui-shell-navigation-d1ssolve
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: maui-shell-navigation
Source: https://github.com/D1ssolve/craft-agents/tree/main/skills/maui-shell-navigation
Command: npx skills add https://github.com/D1ssolve/craft-agents --skill maui-shell-navigation-d1ssolve

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Setting up navigation in .NET MAUI apps requires coordinating Shell's four-level visual hierarchy, route registration, parameter passing, and back-button behavior, which is error-prone without clear guidance. ## Core Features & Use Cases - Shell Hierarchy Setup: Configure AppShell.xaml with FlyoutItem, TabBar, Tab, and ShellContent elements using lazy ContentTemplate loading. - URI-Based Navigation: Navigate with GoToAsync using absolute, relative, and back routes, passing data via query strings, IQueryAttributable, or ShellNavigationQueryParameters. - Navigation Guards & Customization: Cancel navigation with async confirmation dialogs via GetDeferral, customize back buttons, and style tab bars and flyouts. - Use Case: You are building a MAUI app with a flyout menu and bottom tabs, and need to push a detail page with an object parameter while guarding against unsaved changes. ## Quick Start Ask the AI to set up AppShell.xaml with a flyout menu and bottom tabs, register a detail page route, and navigate to it with a query parameter using GoToAsync.

Frequently Asked Questions about maui-shell-navigation

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I navigate between pages in .NET MAUI Shell?

Use Shell.Current.GoToAsync with a route string, always awaiting the call. Use absolute routes prefixed with // for hierarchy locations, relative routes for registered detail pages, and .. to go back one level.

How to pass parameters between pages in .NET MAUI Shell navigation?

Pass parameters via query strings like animaldetails?id=5, received through the QueryProperty attribute or IQueryAttributable on the ViewModel. For complex objects, use ShellNavigationQueryParameters to pass objects without string serialization.

When should I not use Shell navigation in .NET MAUI?

Avoid Shell navigation for deep linking from external URLs, which uses app links instead, and for apps built on NavigationPage without Shell, which use a different navigation API. Data binding and dependency injection are handled by separate concerns.

Why does GoToAsync silently fail in .NET MAUI Shell?

Silent failures occur when relative routes are not registered with Routing.RegisterRoute, absolute paths do not match the full visual hierarchy, or the call is not awaited. Duplicate route names also throw ArgumentException at registration.

How do I prevent navigation when there are unsaved changes in MAUI Shell?

Override OnNavigating in AppShell and call args.GetDeferral() for async checks. Show a confirmation dialog, call args.Cancel() if the user declines, then call deferral.Complete() to finish.