Navigation Bars

Download Progress Bar for macOS 10.11 or later and enjoy it on your Mac. ‎Menu bar app that shows you exactly how much% of the life, year, month and day has progressed. Inspired by @yearprogress tweets. 2 days ago ‎ActiveTab makes it easier to spot the active tab in Safari by drawing a line below it. It works best if you use the “Separate” tab layout and turn off “Show color in tab bar.” Note: it no longer works reliably if you have so many tabs in a window that the tab bar becomes scrollable.

A navigation bar appears at the top of an app screen, below the status bar, and enables navigation through a series of hierarchical screens. When a new screen is displayed, a back button, often labeled with the title of the previous screen, appears on the left side of the bar. Sometimes, the right side of a navigation bar contains a control, like an Edit or a Done button, for managing the content within the active view. In a split view, a navigation bar may appear in a single pane of the split view. Navigation bars are translucent, may have a background tint, and can be configured to hide when the keyboard is onscreen, a gesture occurs, or a view resizes.

Consider temporarily hiding the navigation bar to provide a more immersive experience. For example, Photos hides the navigation bar and other interface elements when people view full-screen photos. If you implement this type of behavior, let people restore the navigation bar with a simple gesture, like a tap.

For developer guidance, see UINavigationBar.

Navigation Bar Titles

Consider showing the title of the current view in the navigation bar. In most cases, a title helps people understand what they’re looking at. However, if titling a navigation bar seems redundant, you can leave the title empty. For example, Notes doesn’t title the current note because the first line of content supplies all the context needed.

Use a large title when you want to provide extra emphasis on context. Large titles should never compete with content, but in some apps, the big, bold text of a large title can help orient people as they browse and search. In a tabbed layout, for example, large titles can help clarify the active tab and indicate when people have scrolled to the top. Phone uses this approach, while Music uses large titles to differentiate content areas like albums, artists, playlists, and radio. In iOS 13 and later, a large title navigation bar doesn’t include a background material or shadow by default. Also, a large title transitions to a standard title as people begin scrolling the content. For developer guidance, see prefersLargeTitles.

Standard title

Large title

Macbook App Bar Layout

Consider hiding the border of a large-title navigation bar. In iOS 13 and later, you can hide the bottom border of a navigation bar by removing the bar’s shadow (the border automatically reappears when people scroll the content area). The borderless style works well in large-title navigation bars because it enhances the sense of connection between title and content. The borderless style may not work as well in standard-title navigation bars, though, because the bar’s title and buttons might be harder to distinguish. An exception to this is in a split view on iPad where you might want to maintain consistency between the primary and secondary views by using the borderless style in both.

Navigation Bar Controls

Avoid crowding a navigation bar with too many controls. In general, a navigation bar should contain no more than the view’s current title, a back button, and one control that manages the view’s contents. If you use a segmented control in the navigation bar, the bar shouldn’t include a title or any controls other than the segmented control.

If you create a custom glyph for a navigation bar control, use the following sizes, adjusting as needed for balance.

Target sizesMaximum sizes
24x24 pt (72x72 px @3x)28x28 pt (84x84 px @3x)
24x24 pt (48x48 px @2x)28x28 pt (56x56 px @2x)

Use the standard back button. People know that the standard back button lets them retrace their steps through a hierarchy of information. However, if you implement a custom back button, make sure it still looks like a back button, behaves as people expect, matches the rest of your interface, and is consistently implemented throughout your app. If you replace the system-provided back button chevron with a custom image, supply a custom mask image too. iOS uses this mask to animate the button title during transitions.

Don’t include multisegment breadcrumb paths. The back button always performs a single action — returning to the previous screen. If you think people might get lost without the full path to the current screen, consider flattening your app’s hierarchy.

Give text-titled buttons enough room. If your navigation bar includes multiple text buttons, the text of those buttons may appear to run together, making the buttons indistinguishable. Add separation by inserting a fixed space item between the buttons. For developer guidance, see the UIBarButtonSystemItemFixedSpace constant value in UIBarButtonItem.

Consider using a segmented control in a navigation bar to flatten your app’s information hierarchy. If you use a segmented control in a navigation bar, do so only at the top level of your hierarchy and be sure to choose accurate back-button titles at lower levels. For additional guidance, see Segmented Controls.

Tab Bars

Bar

A tab bar appears at the bottom of a screen, helping people understand the types of information or functionality an app provides. Tabs let people quickly switch between top-level sections in your app while preserving the current navigation state within each section.

By default, a tab bar is translucent: It uses a background material only when content appears behind it, removing the material when the view scrolls to the bottom. A tab bar hides when a keyboard is onscreen.

The Photos tab bar uses a background material to distinguish itself while letting underlapping content show through.

App

When no content appears behind the tab bar, the background material doesn’t appear.

Depending on device size and orientation, the number of visible tabs can be smaller than the total number of tabs. If horizontal space limits the number of visible tabs, the trailing tab becomes a More tab, revealing the remaining items in a list on a separate screen.

For developer guidance, see UITabBar.

TIP Although tab bars and toolbars both appear at the bottom of a screen, each has a different purpose. A tab bar lets people navigate among different areas of an app, such as the Alarm, Stopwatch, and Timer tabs in the Clock app. A toolbar contains buttons for performing actions related to the screen, such as creating an item, filtering items, or marking up content. Tab bars and toolbars don’t appear together in the same view.

Use a tab bar only to enable navigation, not to help people perform actions. If you need to provide controls that act on elements in the current view, use a toolbar instead.

Use the minimum number of tabs required to clarify your information hierarchy and help people navigate your app. Too many tabs reduce the tappable area of each tab and might increase the complexity of your interface. Too few tabs can lead to categories or modes that are too broad to be useful, requiring people to select a tab to find out what it contains. Although a More tab displays additional tabs, it requires an extra tap to reveal them and can be a poor use of space. In general, use three to five tabs on iPhone; use a few more on iPad if necessary.

In an iPadOS app, consider using a sidebar instead of a tab bar. Because a sidebar can display a large number of items, it can make navigating an iPad app more efficient. You can also let people customize a sidebar’s items and let them hide it to make more room for content. For guidance, see Sidebars.

Avoid hiding the tab bar when people navigate to different areas in your app. The tab bar is a global navigation control for your app, so make sure it’s always visible. The exception is a tab bar within a modal view. Because a modal view gives people a separate experience that they dismiss when they’re finished, hiding the view’s tab bar doesn’t affect app navigation.

Avoid removing or disabling a tab when its content is unavailable. If tabs are enabled in some cases but not in others, your app’s interface might appear unstable and unpredictable. When necessary, explain why a tab’s content is unavailable. For example, even when there is no music on an iOS device, the Listen Now tab in the Music app remains available and offers suggestions for downloading music.

Ensure that tabs affect the view that’s attached to the tab bar, not views elsewhere onscreen. For example, selecting a tab on the left side of a split view shouldn’t cause the right side of the split view to change. Similarly, selecting a tab in a popover shouldn’t change a view behind the popover.

Use a badge to communicate unobtrusively. You can display a badge — a red oval containing white text and either a number or an exclamation point — on a tab to indicate that new information associated with that view or mode is available. For developer guidance, see UITabBarItem.

Consider using SF symbols to provide scalable, visually consistent tab bar items. When you use SF symbols, tab bar items automatically adapt to different contexts. For example, the tab bar can be regular or compact, depending on the current device and orientation. Also, tab bar glyphs can appear above tab titles in portrait orientation, whereas in landscape, the glyphs and titles can appear side by side. Prefer filled symbols or glyphs for consistency with the platform. If your app uses a sidebar instead of a tab bar when it runs on iPad, switch the filled symbols or glyphs to the outlined variant in the sidebar. For guidance, see SF Symbols.

If you need to create custom tab bar glyphs, create each glyph in two sizes so that the tab bar looks good in both regular and compact environments. Use the following metrics when creating tab bar glyphs in different shapes. For guidance, see Glyphs.

Target width and height (circular glyphs)

Free Macbook App

Regular tab bars Compact tab bars
25x25 pt (75x75 px @3x)18x18 pt (54x54 px @3x)
25x25 pt (50x50px @2x)18x18 pt (36x36 px @2x)

Target width and height (square glyphs)

Regular tab bars Compact tab bars
23x23 pt (69x69 px @3x)17x17 pt (51x51 px @3x)
23x23 pt (46x46 px @2x)17x17 pt (34x34 px @2x)

Target width (wide glyphs)

Regular tab bars Compact tab bars
31pt (93px @3x)23pt (69px @3x)
31pt (62px @2x)23pt (46px @2x)

Target height (tall glyphs)

Regular tab bars Compact tab bars
28pt (84px @3x)20pt (60px @3x)
28pt (56px @2x)20pt (40px @2x)