Tab bar is a top-level navigation control for iOS apps.
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.
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.
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.
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.
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.
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.
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.
Property | Values | Default value |
---|---|---|
label | text | - |
label position | bottom / side Label position is automatically handled by the tab bar component | bottom (mobile, portrait) / side (tablet, landscape) |
icon | icon | - |
background | primary / secondary | primary |
has badge | yes / no | no |
is disabled | yes / no | no |
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.
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.
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.
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.
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.
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.
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.
Date | Number | Notes |
---|---|---|
Apr 06, 2022 | 2.0.0 |
|
Jun 26, 2020 | 1.0.0 |
|
Includes all interactive states that are applicable (hover, down, focus, keyboard focus, disabled).
Works properly across all four color themes (lightest, light, dark, darkest).
Includes a desktop scale (UWP, macOS, web desktop) and a mobile scale (iOS, Android, web mobile).
Color is not used as the only visual means of conveying information (WCAG 2.0 1.4.1).
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).
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).
UI language and information design considerations have been incorporated into component design.
Includes relevant options (variant, style, size, orientation, optional iconography, decorations, selection, error state, etc.)
Includes guidelines for keyboard focus, layout (wrapping, truncation, overflow), animation, interactions, etc.
Includes a list of dos and don'ts that highlight best practices and common mistakes.
Includes content standards or usage guidelines for how to write or format in-product content for the component.
Works properly across various locales and includes guidelines for bi-directionality (RTL).
Follows WCAG 2.0 standards for keyboard accessibility guidelines and includes a description of the keyboard interactions.
All design attributes (color, typography, layout, animation, etc.) are available as design tokens.
Includes a downloadable XD file that shows multiple options, states, color themes, and platform scales.
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.
Component is included in the Spectrum for Adobe XD plugin.