Tab bar (iOS)

Version 2.0.0

Tab bar is a top-level navigation control for iOS apps.

Image illustrating a tab bar on an iPhone. Tab bar items are arranged horizontally, with icons and labels Favorites, Recent, Files, Notifications. The first item, Favorites, is in active state.
DateVersionSpectrumApr 06, 20222.0.0DownloadJun 26, 20201.0.0Download

Anatomy#

The component parts of a tab bar, including item, item label, and icon.

Options#

Key example of tab bar with 3 items, labels Home, Notifications, and Files.

Label#

Tab bar items should always have labels. In rare cases where context is sufficient and an accessibility expert has reviewed the design, labels could be undefined in order to make an icon-only tab bar.

3 examples of tab bars with different label placement options, bottom labels, side labels, compact labels.

Label position#

Labels can be placed either on the bottom or on the side of the icon. Bottom labels are the most common and are recommended because they work better with long copy, localization, and responsive layouts. Side labels are useful when there is plenty of horizontal space. Compact labels are most useful when horizontal and vertical space is limited. Label position is handled automatically by iOS tab bars.

Key example of a tab bar with 3 items with icons. An icon of a house, label Home. An icon of a bell, label Notifications. An icon of a folder, label Files.

Icon#

Tab bar items should always have icons. Icons provide metaphors for quick visual reference and help to reinforce a product's navigation. Icons also help to supplement labels, for better comprehension.

Key example of a tab bar with primary background illustrated through labels gray-50 in light and gray-100  dark mode and secondary background illustrated through labels gray-100 in light and gray-75  dark mode

Key examples of tab bars with primary background and secondary background colors. Bottom navigation with primary background color illustrated with labels gray-50 and gray-100. Secondary background color illustrated with labels gray-100 and gray-75.

Background#

A tab bar can be given a primary or secondary background color. Primary background is a lighter background color for the tab bar in all themes. It should be used when an app’s default background is gray-100, gray-75, or gray-300 on light themes, or gray-75 or gray-50 on dark themes.

Secondary background is a slightly darker background color on all themes. It should be used when an app’s default background is gray-75, gray-50, or gray-300 on light themes, or gray-100 or gray-50 on dark themes.

Key example of tab bars with notification badges including dot and numbered badge styles. Navigation item, label Notifications, dot badge. Navigation item, label Notifications, badge with number 24.

Notification badge#

Tab bar items can be given notification badges for indicating status or important information. Be mindful of how frequently you notify users and what type of content should trigger a notification badge, to avoid causing users to ignore badges altogether.

Key example of tab bar with 1 disabled item with "cloud" icon and label "Share.”

Disabled#

A tab bar item in a disabled state shows that an item exists, but is not available in that circumstance. This state can be used to maintain layout continuity and to communicate that the item may become available later. Don't disable a tab bar item unless absolutely necessary.

Table of options#

From the design point of view, each component has a number of options. These options and their names are platform agnostic, and each implementation should adapt these to fit into their framework.

PropertyValuesDefault Valuelabeltext-label positionbottom / side
Label position is automatically handled by the tab bar component
bottom (mobile, portrait) / side (tablet, landscape)
iconicon-backgroundprimary / secondaryprimaryhas badgeyes / nonois disabledyes / nono

Behaviors#

Automatic label position#

In portrait mode, labels are placed below the icon for each tab bar item by default. In landscape mode and on tablets, the label position shifts to a side position.

When many tab items are displayed in landscape mode or on tablets, labels will automatically be placed below the icons in a compact display. This behavior is all handled automatically by the iOS tab bar component and is the default behavior.

Key example of tab bar with 3 items and bottom labels in portrait mode of iPhone.
Key example of tab bar with 3 items and side labels in landscape mode of iPhone.
Key example of tab bar with 7 items and compact labels in landscape mode of iPhone.

Automatic tab bar item distribution#

The iOS tab bar will automatically adjust item width and distribution based on device width and orientation, by default. In horizontally compact environments (e.g., portrait mode), the tab bar will evenly distribute items across the horizontal space. In non-compact environments (e.g., landscape mode), the tab bar items will be center-aligned and the items will grow in width.

Usage guidelines#

Use for top-level navigation#

Tab bars are intended to be used as the highest, or top-level, navigation. Don't use a tab bar for segmenting sub-content or sub-sections of your app.

do
Key example of correct usage of tab bar as top level navigation with items Home, Your work, and Settings.

Use consistent background for app framing#

A top navigation bar should use a background color that is consistent with the tab bar. This ensures that your app provides users with a clear visual hierarchy of the layers and structure of your product.

do
Key example illustrating correct usage of consistent backgrounds for app framing. Top navigation shown with tab bar of same background color.

Use concise labels#

Use concise labels for tab bar items. A tool like World Ready can help to ensure that the translations of labels are also reasonably short. Having concise labels ensures that the layout will be usable across a variety of device sizes, orientations, and locales.

do
Key example of correct usage of concise labels in a tab bar. Items labeled Home, Recent documents, Settings.
dont
Key example of incorrect usage of writing labels in a tab bar. Items labeled Home, Most recently viewed documents, Settings. Most recently viewed documents is too long.

Simplify navigation#

Avoid using too many tab bar items for your app. Having more items adds unnecessary complexity and compromises the touch hit area of each item. The recommended number of tab items is between 3 to 5 on iPhone. It’s acceptable to have more than this on iPad apps, but still try to aim for simplicity.

dont
Key example of incorrect tab bar layout. A tab bar that has too many items and is too complex. Tab bar with 7 items, Home, Your work, Synced, Profile, Archive, Help, Settings.

Don't use an icon-only tab bar#

Icon meanings and navigation items vary by product. In order to make sure that your users fully understand your product’s navigation, it’s highly recommended to use labels with icons in a tab bar.

dont
Key example showing incorrect usage of a tab bar. An icon-only tab bar. Three items, icon image of a house, icon image of a piece of paper, and icon image of a cloud. No text labels.

Changelog#

DateNumberNotesApr 06, 20222.0.0
  • Updated all colors to 6.0.0
Jun 26, 20201.0.0
  • This component has been added to the website

Design checklist#

unchecked

All interactive states

Includes all interactive states that are applicable (hover, down, focus, keyboard focus, disabled).

check

All color themes

Works properly across all four color themes (lightest, light, dark, darkest).

N/A

All platform scales

Includes a desktop scale (UWP, macOS, web desktop) and a mobile scale (iOS, Android, web mobile).

unchecked

Accessible use of color

Color is not used as the only visual means of conveying information (WCAG 2.0 1.4.1).

check

Accessible contrast for text

Text has a contrast ratio of at least 4.5:1 for small text and at least 3:1 for large text (WCAG 2.0 1.4.3).

check

Accessible contrast for UI components

Visual information required to identify components and states (except inactive components) has a contrast ratio of at least 3:1 (WCAG 2.1 1.4.11).

check

Content design

UI language and information design considerations have been incorporated into component design.

check

Defined options

Includes relevant options (variant, style, size, orientation, optional iconography, decorations, selection, error state, etc.)

check

Defined behaviors

Includes guidelines for keyboard focus, layout (wrapping, truncation, overflow), animation, interactions, etc.

check

Usage guidelines

Includes a list of dos and don'ts that highlight best practices and common mistakes.

check

Writing guidelines

Includes content standards or usage guidelines for how to write or format in-product content for the component.

unchecked

Internationalization guidelines

Works properly across various locales and includes guidelines for bi-directionality (RTL).

unchecked

Keyboard interactions

Follows WCAG 2.0 standards for keyboard accessibility guidelines and includes a description of the keyboard interactions.

check

Design tokens

All design attributes (color, typography, layout, animation, etc.) are available as design tokens.

check

UI kit

Includes a downloadable XD file that shows multiple options, states, color themes, and platform scales.

unchecked

Generated UI kit

Includes a downloadable XD file, generated by code using design tokens defined in Spectrum DNA, and shows multiple options, states, color themes, and platform scales.

unchecked

In Spectrum for Adobe XD plugin

Component is included in the Spectrum for Adobe XD plugin.