Everything inherited from NavigationPage — PushAsync, PopAsync, PopToRootAsync, Peek,
CurrentPage, RootPage, Pushed, Popped, PoppedToRoot, BarBackground,
BarBackgroundColor, BarTextColor and all of its attached properties — keeps its own meaning and is
not repeated here.
Property
Type
Default
Notes
IsNavBarVisible
bool
true
Hides the bar over every page. For one page use ShinyNav.IsNavBarVisible.
Property
Type
Default
Notes
TitleAlignment
NavBarTitleAlignment
Auto
Auto centres on iOS/Mac Catalyst, leads elsewhere.
TitleFontSize
double
unset
Follows the theme’s title-large size.
TitleFontFamily
string?
null
Follows the theme’s family.
TitleFontAttributes
FontAttributes
Bold
Property
Type
Default
Notes
LargeTitleDisplay
LargeTitleDisplay
None
Inherit resolves to None here.
LargeTitleHeight
double
52
Height of the row at rest.
LargeTitleCollapseDistance
double
48
Scroll distance over which it folds. ≤ 0 folds the moment the page moves.
LargeTitleFontSize
double
unset
Follows the theme’s headline-medium size.
Property
Type
Default
BarHeight
double
56
BarPadding
Thickness
4,0
HasShadow
bool
true
HasSeparator
bool
false
ItemSpacing
double
2
IconSize
double
22
MaxVisibleItems
int
3 (per side; ≤ 0 = no limit)
OverflowIcon
string?
null (the three-dot glyph)
MenuTemplate
DataTemplate?
null
AnimationDuration
uint
180
BarIconColor
Color?
null
BarIconColor, not IconColor
NavigationPage.IconColor is MAUI’s own attached property and is the per-page override. This one
is only the default for it, and is named apart so the two cannot be confused — or shadow each other.
Property
Type
Default
Notes
EnableSwipeBackGesture
bool
true
iOS only. UIKit disables the edge-swipe pop while the bar is hidden; this puts it back.
Member
Notes
static ShinyNavBar? GetNavBar(Page page)
The bar drawn over a page, or null.
ShinyNavBar? CurrentNavBar
The bar over the page that is showing.
event EventHandler<NavBarItemEventArgs> NavBarItemInvoked
An item on any of this page’s bars was tapped.
Property
Type
Default
Notes
LeftItems
NavBarItemCollection
live, empty
Drawn after the back button.
RightItems
NavBarItemCollection
live, empty
Drawn after the page’s own ToolbarItems.
Subtitle
string?
null
A second line under the title.
LargeTitle
string?
null
Falls back to Page.Title.
LargeTitleDisplay
LargeTitleDisplay
Inherit
Inherit = follow the navigation page.
ScrollSource
View?
null
Unset: the first ScrollView/ItemsView found.
IsNavBarVisible
bool
true
The runtime switch — see the caution below.
BarBackgroundColor
Color?
null
Overrides the navigation page’s.
BarTextColor
Color?
null
Overrides the navigation page’s.
TitleAlignment
NavBarTitleAlignment
Auto
Auto = follow the navigation page.
BackButtonIcon
string?
null
A motion icon name instead of the chevron.
BackButtonCommand
ICommand?
null
Runs instead of popping. Nothing is popped for you.
BackButtonCommandParameter
object?
null
SetHasNavigationBar is the starting value, not the switch
It is honoured when the page is first installed, but the drawn bar exists because that property was
forced to false to hide the native one — so a page writing false to it again raises nothing and
cannot be observed. Use ShinyNav.IsNavBarVisible at runtime.
Inherits Text, IconImageSource, Command, CommandParameter, IsEnabled, IsDestructive,
Clicked, Order, Priority and AutomationId, all unchanged.
Property
Type
Default
Notes
Icon
string?
null
A built-in motion icon name.
IconSource
MotionIconDefinition?
null
Explicit motion artwork. Beats Icon.
IconPathData
string?
null
A raw SVG path in a 24×24 box.
Motion
MotionPreset
Default
Which motion the icon plays.
IconColor
Color?
null
Tints motion artwork only; a bitmap is drawn as supplied.
Badge
string?
null
"" is a dot , null is nothing.
BadgeColor
Color?
null
Follows the theme’s error colour.
Display
NavBarItemDisplay
Auto
Auto/Icon/Text/IconAndText.
IsVisible
bool
true
Hides without removing.
IsSeparator
bool
false
A divider — in the overflow menu only.
Tag
object?
null
Usable standalone at the top of any layout. It owns no navigation.
Property
Type
Default
LeftItems / RightItems
IList<ToolbarItem>
empty
Title / Subtitle / LargeTitle
string?
null
TitleView
View?
null
TitleIcon
ImageSource?
null
TitleAlignment
NavBarTitleAlignment
Auto
LargeTitleDisplay
LargeTitleDisplay
None
CollapseProgress
double
0 — 0 open, 1 folded; bindable
BarBackground
Brush?
null — beats BarBackgroundColor
BarBackgroundColor / BarTextColor / IconColor
Color?
null
BarHeight / BarPadding / HasShadow / HasSeparator
56 / 4,0 / true / false
ItemSpacing / IconSize / MaxVisibleItems
2 / 22 / 3
OverflowIcon / MenuTemplate / AnimationDuration
null / null / 180
IsBackButtonVisible / BackButtonText / BackButtonIcon
false / null / null
BackButtonCommand / BackButtonCommandParameter
null
Member
Notes
bool IsMenuOpen
True while an overflow menu is on screen.
void OpenMenu(NavBarSide side)
Does nothing when that side has no overflow.
void CloseMenu()
void AttachScrollSource(View? source)
What the collapsing large title follows. null stops.
event EventHandler<NavBarItemEventArgs> ItemInvoked
After the item’s own command and Clicked.
event EventHandler<NavBarBackEventArgs> BackButtonPressed
Set e.Cancel = true to stop the pop.
NavBarTitleAlignment — Auto, Start, Center
LargeTitleDisplay — Inherit, None, Always, Collapsing
NavBarItemDisplay — Auto, Icon, Text, IconAndText
NavBarSide — Left, Right
Claude Code GitHub Copilot
Step 1 — Add the marketplace:
claude plugin marketplace add shinyorg/skillsStep 2 — Install the plugin:
claude plugin install shiny@shinyOne plugin installs all 35 Shiny skills. Your agent loads only the skill relevant to what you're building, so there's no cost to having them all available.
Step 1 — Add the marketplace:
copilot plugin marketplace add https://github.com/shinyorg/skillsStep 2 — Install the plugin:
copilot plugin install shiny@shinyOne plugin installs all 35 Shiny skills. Your agent loads only the skill relevant to what you're building, so there's no cost to having them all available.
View Skills Repository