Page chrome and toolbars
Configure navigation titles, bars, search, badges, and page-owned actions.
Navigation chrome belongs to the visible ContentView. Configure it in the page constructor so UIKit can apply it as the page enters the stack.
Prompt adds a smaller line above the title. TitleColor and LargeTitleColor override the two title states. BackButtonTitle and BackButtonStyle control how this page is represented by the next page's back button; BackButtonStyle.None leaves the next pushed page without one (and without the pop swipe), for pages that bring their own way back.
NavigationTitleStyle is null by default, so the page inherits Theme.NavigationTitleStyle (itself Inline unless changed). Set TitleStyle.Inline or TitleStyle.Large when one page needs to override it.
Set HidesNavigationBar for immersive content and HidesTabBar for a pushed destination that needs the full bottom edge. ScrollsUnderBars determines whether scrolling content extends beneath translucent bars. SafeAreaEdges still controls the page's content inset.
The inherited Background property paints the entire page, including beneath safe areas and translucent bars. It accepts any brush, so pages can use semantic colors, custom colors, gradients, or materials. Safe-area settings affect the page's Content, not its background.
Navigation accessories
NavigationAccessory hosts a fixed, full-width view directly below the navigation title. Scrolling content continues beneath it, while UIKit adds the accessory's measured height to the scroll view's top inset. The accessory shares one continuous navigation material on iOS 18 and participates in the native scroll-edge treatment on iOS 26.
Use it for compact, display-only navigation context such as weekday labels or a filter summary. Keep interactive actions in ToolbarItems so UIKit retains its normal bar-button behavior.
On iOS 26 and later, TopScrollEdgeStyle controls how scrolling content meets the page's top chrome, with or without a navigation accessory. A page inherits Theme.TopScrollEdgeStyle until it sets its own value; the inherited default is Automatic, which asks UIKit to choose. Soft blends content beneath the edge, and Hard uses UIKit's cutoff with a dividing line. For all three styles, a navigation accessory participates in UIKit's native navigation material. Earlier iOS versions continue using SkeleKit's continuous material automatically.
On iOS 27, a page can opt into native navigation-bar minimization. SkeleKit keeps the default at Never so existing pages retain their chrome until they explicitly choose a behavior:
Automatic, OnScrollDown, and OnScrollUp are also available. Safe-area adjustment can follow the system, reflow as the bar changes, or preserve the expanded inset. AtScrollEdge is honored by UIKit with OnScrollDown; otherwise restoration follows scroll-direction changes.
OnScrollUp is primarily useful for bottom-aligned content. On iOS 27.0, UIKit can oscillate near the scroll edge when this behavior reflows the safe area; use NavigationBarMinimizeSafeArea.Disabled when that affects a page. The navigation title itself is managed by UIKit, so SkeleKit leaves the selected native behavior intact.
Navigation-bar minimization is disabled while a page has a NavigationAccessory. UIKit only includes its own integrated top tab bar in native minimization and provides neither a custom navigation accessory slot nor minimization progress for synchronizing an unmanaged view. Set NavigationAccessory to null to restore the page's selected minimization behavior.
Navigation and bottom toolbars
Use ToolbarButton for an action, ToolbarMenu for a button that opens a menu of MenuAction entries, and ToolbarGroup to render actions in one visual group. A group's actions are laid out contiguously; on iOS 26 and later, adjacent top-level entries are separated so each group keeps its own Liquid Glass background. Groups cannot be nested. Primary buttons receive the platform's emphasized treatment, which also opts them out of the shared group background.
By default, non-prominent toolbar actions use the system label color on iOS 26 and later, while prominent actions use the app tint. Earlier versions use the app tint for both. Set ToolbarAction.Tint for one item or ContentView.BarTint for the whole page to override the automatic tint.
Bindable toolbar properties are Text, Icon, Tint, IsPrimary, IsVisible, and IsEnabled; they accept literals or Bind(...) expressions. ToolbarMenu.Actions accepts a literal list, an ObservableCollection, or a Bind(...) list source. Side, VisibilityPriority, Command, and CommandParameter remain plain configuration or behavior values. Context bindings resolve against the page's BindingContext.
A button's IsEnabled state and its command's CanExecute are combined: the button is tappable only when both allow it. Updating an IsEnabled binding rebuilds the toolbar item with the new state; CanExecuteChanged updates the native enabled state live.
On iOS 27, VisibilityPriority controls which actions remain visible as the bar narrows. Use High for essential actions, Low for actions that may yield space first, and Standard to follow the system default. UIKit decides whether constrained items are hidden or represented elsewhere; it does not merge them into an app-defined menu. Earlier versions ignore the setting.
Bottom items use the navigation controller's classic toolbar. A visible tab bar occupies the same bottom edge, so the toolbar stays hidden while that tab bar is present. Set HidesTabBar on a pushed page when its bottom toolbar should replace the tab bar.
Search
Setting SearchPlaceholder enables the native navigation search controller:
SearchChanged fires as text changes, while SearchCommand runs on submission with the current text as its parameter. SearchScopeChanged reports a new scope index and SearchCanceled runs when the search UI closes.
HidesSearchBarWhenScrolling controls collapsing, SearchObscuresBackground controls the dimmed overlay, and HidesSearchScopesWhenEmpty delays scope buttons until the user enters text.
SearchText and SearchScopeIndex use the same two-way binding rules described in MVVM and binding.