Easy Custom Navigation with Flagstone UI
This post is Matt’s contribution to MAUI UI July 2026 and also marks Flagstone UI’s graduation from experimental to generally available. The headline addition is FsShell — a subclassed, drop-in replacement for Shell that solves a long-standing .NET MAUI constraint: you’ve never been able to take Shell’s routing without also taking Shell’s default UI chrome.
That changes with FsShell. You swap the base class, and Shell’s navigation logic stays intact. What you present on screen is entirely up to you.
What you’ll learn
- Why stock
Shellcouples navigation and presentation — and why that limits what you can build - Swapping
AppShell : ShellforAppShell : FsShellwith no other changes, immediately unlockingItemTemplatesupport for tabs - Using
VisualStateManagerwithFsShell’s customSelected/Unselectedstates to drive tab styling and animations - Building a custom tab bar with an action button (centre camera icon with notification badge), all in standard cross-platform .NET MAUI
- Replacing the tab bar entirely with a media player and expandable vertical nav menu — Shell’s routing remains untouched throughout
- Why Flagstone UI is analogous to Tailwind: a styling surface that gives you more control, not a pre-built component library
The post walks through three sample apps of increasing complexity — a better default tab bar, an action-button pattern, and a media-player-at-the-bottom nav. Full source code is available in the Flagstone UI repo.
dotnet add package FlagstoneUI.Core --version 2.0.4