Tab bar (iOS)

Anatomy#

Options#
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.
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.



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.


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.


Use concise labels#
Use concise labels for tab bar items. A tool like




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.


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.


Additional resources#
Changelog#
- Updated all colors to 6.0.0
- This component has been added to the website
Design checklist#

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

All color themes
Works properly across all four color themes (lightest, light, dark, darkest).
All platform scales
Includes a desktop scale (UWP, macOS, web desktop) and a mobile scale (iOS, Android, web mobile).

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

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).

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).

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

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

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

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

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

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

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

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

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

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.

In Spectrum for Adobe XD plugin
Component is included in the Spectrum for Adobe XD plugin.