Color is a great way to impart vitality, provide visual continuity, communicate status information, give feedback in response to user actions, and help people visualize data. Look to the system’s color scheme for guidance when picking app tint colors that look great individually and in combination, on both light and dark backgrounds.
Use color judiciously for communication. The power of color to call attention to important information is heightened when used sparingly. For example, a red triangle that warns people of a critical problem becomes less effective when red is used elsewhere in an app for noncritical reasons.
Use complementary colors throughout your app. The colors in your app should work well together, not conflict or distract. If pastels are essential to your app’s style, for example, use a coordinating set of pastels.
In general, choose a limited color palette that coordinates with your app logo. Subtle use of color is a great way to communicate your brand.
Consider choosing a tint color to indicate interactivity throughout your app. In Notes, interactive elements are yellow. In Calendar, interactive elements are red. If you define a tint color that denotes interactivity, make sure other colors don’t compete with it.
Provide two versions of your tint color to make sure it looks good in both light and dark modes. When you use a system color for your tint color, you get automatic support for high contrast.
Avoid using the same color for interactive and noninteractive elements. If interactive and noninteractive elements have the same color, it’s hard for people to know where to tap.
Consider how artwork and translucency affect nearby colors. Variations in artwork sometimes warrant changes to nearby colors in order to maintain visual continuity and prevent interface elements from becoming overpowering or underwhelming. Maps, for example, displays a light color scheme when using map mode but switches to a dark color scheme when satellite mode is activated. Colors can also appear different when placed behind a translucent element, or when applied to a translucent element, such as a toolbar.
Test your app’s color scheme under a variety of lighting conditions. Lighting varies significantly both indoors and outdoors, based on room ambiance, time of day, the weather, and more. Colors you see on your computer won’t always look the same when your app is used in the real world. Always preview your app under multiple lighting conditions, including outdoors on a sunny day, to see how colors appear. If necessary, adjust colors to provide the best possible viewing experience in the majority of use cases.
Consider how the True Tone display affects color. The True Tone display uses ambient light sensors to automatically adjust the white point of the display to adapt to the lighting conditions of the current environment. Apps that focus primarily on reading, photos, video, and gaming can strengthen or weaken this effect by specifying a white point adaptivity style. For developer guidance, see UIWhitePointAdaptivityStyle.
Consider how your use of color might be perceived in other countries and cultures. In some cultures, for example, red communicates danger. In others, red has positive connotations. Make sure the colors in your app send the appropriate message.
Avoid using colors that make it hard for people to perceive content in your app. For example, colorblind people might not be able to distinguish some color combinations, and insufficient contrast can cause icons and text to blend with the background and make content hard to read. For guidance, see Color and Contrast.
iOS offers a range of system colors that automatically adapt to vibrancy and changes in accessibility settings like Increase Contrast and Reduce Transparency. The system colors look great individually and in combination, on both light and dark backgrounds, and in both light and dark modes.
Don't hard-code system color values in your app. The color values provided below are intended for reference during your app design process. The actual color values may fluctuate from release to release, based on a variety of environmental variables. Always use the API to apply system colors; for developer guidance, see UIColor.
Light Dark Name APIR 0 G 122 B 255R 10 G 132 B 255 Blue systemBlueR 142 G 142 B 147R 152 G 152 B 157 Gray systemGrayR 52 G 199 B 89R 48 G 209 B 88 Green systemGreenR 88 G 86 B 214R 94 G 92 B 230 Indigo systemIndigoR 255 G 149 B 0R 255 G 159 B 10 Orange systemOrangeR 255 G 45 B 85R 255 G 55 B 95 Pink systemPinkR 175 G 82 B 222R 191 G 90 B 242 Purple systemPurpleR 255 G 59 B 48R 255 G 69 B 58 Red systemRedR 90 G 200 B 250R 100 G 210 B 255 Teal systemTealR 255 G 204 B 0R 255 G 214 B 10 Yellow systemYellow
Light Dark Name APIR 0 G 64 B 221R 64 G 156 B 255 Blue systemBlueR 105 G 105 B 110R 152 G 152 B 157 Gray systemGrayR 36 G 138 B 61R 48 G 219 B 91 Green systemGreenR 54 G 52 B 163R 125 G 122 B 255 Indigo systemIndigoR 201 G 52 B 0R 255 G 179 B 64 Orange systemOrangeR 211 G 15 B 69R 255 G 100 B 130 Pink systemPinkR 137 G 68 B 171R 218 G 143 B 255 Purple systemPurpleR 215 G 0 B 21R 255 G 105 B 97 Red systemRedR 0 G 113 B 164R 112 G 215 B 255 Teal systemTealR 160 G 90 B 0R 255 G 212 B 38 Yellow systemYellow
iOS 13 also introduces a range of six opaque gray colors you can use in rare cases where translucency doesn't work well. For example, intersecting or overlapping elements—such as lines or bars in a grid—look better with opacity. In general, use the semantically defined system colors for UI elements.
Light Dark Name APIR 142 G 142 B 147R 142 G 142 B 147 Gray systemGrayR 174 G 174 B 178R 99 G 99 B 102 Gray (2) systemGray2R 199 G 199 B 204R 72 G 72 B 74 Gray (3) systemGray3R 209 G 209 B 214R 58 G 58 B 60 Gray (4) systemGray4R 229 G 229 B 234R 44 G 44 B 46 Gray (5) systemGray5R 242 G 242 B 247R 28 G 28 B 30 Gray (6) systemGray6
Light Dark Name APIR 108 G 108 B 112R 174 G 174 B 178 Gray systemGrayR 142 G 142 B 147R 124 G 124 B 128 Gray (2) systemGray2R 174 G 174 B 178R 84 G 84 B 86 Gray (3) systemGray3R 188 G 188 B 192R 68 G 68 B 70 Gray (4) systemGray4R 216 G 216 B 220R 54 G 54 B 56 Gray (5) systemGray5R 235 G 235 B 240R 36 G 36 B 38 Gray (6) systemGray6
Dynamic System Colors
In addition to tint colors, iOS also provides semantically defined system colors for use in background areas and for foreground content, such as labels, separators, and fill. These colors automatically adapt to both light and dark UI modes.
iOS defines two sets of background colors—system and grouped—each of which contains primary, secondary, and tertiary variants that help you convey a hierarchy of information. In general, use the grouped set of background colors when you have a grouped table view; otherwise, use the system set of background colors. For developer guidance, see UI Element Colors.
With both sets of background colors, you generally use the variants to indicate hierarchy in the following ways:
- Primary for the overall view
- Secondary for grouping content or elements within the overall view
- Tertiary for grouping content or elements within secondary elements
For foreground content, iOS defines the following colors:
|Label||A text label that contains primary content.||label|
|Secondary label||A text label that contains secondary content.||secondaryLabel|
|Tertiary label||A text label that contains tertiary content.||tertiaryLabel|
|Quaternary label||A text label that contains quaternary content.||quaternaryLabel|
|Placeholder text||Placeholder text in controls or text views.||placeholderText|
|Separator||A separator that allows some underlying content to be visible.||separator|
|Opaque separator||A separator that doesn't allow any underlying content to be visible.||opaqueSeparator|
|Link||Text that functions as a link.||link|
Don’t redefine the semantic meanings of dynamic system colors. To give people a consistent experience and ensure that your interface looks great in all contexts, use dynamic system colors as intended.
Don't try to replicate dynamic system colors. Dynamic system colors may fluctuate from release to release, based on a variety of environmental variables. Instead of trying to create custom colors that match the system colors, use the dynamic system colors.
Provide color space-specific image and color variations when the experience calls for it. In general, P3 colors and images tend to appear as expected on sRGB devices. Occasionally, however, it may be hard to differentiate between two very similar P3 colors when they're viewed in sRGB. Gradients that use colors in the P3 spectrum can also sometimes appear clipped on sRGB devices. To avoid these issues, you can provide distinct images and colors in the asset catalog of your Xcode project to ensure visual fidelity on both wide color and sRGB devices.
Preview your app’s colors on actual sRGB and wide color displays. Make adjustments as needed to ensure an equally great visual experience on both types of displays.
TIP On a Mac with a wide color display, you can use the system color picker to select and preview P3 colors, and compare them with sRGB colors.