Skip Navigation

Color

Judicious use of color can enhance communication, evoke your brand, provide visual continuity, communicate status and feedback, and help people understand information.

A sketch of a paint palette, suggesting the use of color. The image is overlaid with rectangular and circular grid lines and is tinted yellow to subtly reflect the yellow in the original six-color Apple logo.

The system defines colors that look good on various backgrounds and appearance modes, and can automatically adapt to vibrancy and accessibility settings. People are familiar with the system colors, and using them is a convenient way to make your experience feel at home on the device.

You may also want to use custom colors to enhance the visual experience of your app or game and express its unique personality. The following guidelines can help you use color in ways that people appreciate, regardless of whether you use system-defined or custom colors.

Best practices

Use color sparingly in nongame apps. In a nongame app, overuse of color can make communication less clear and can distract people. Prefer using touches of color to call attention to important information or show the relationship between parts of the interface.

Avoid using the same color to mean different things. Use color consistently throughout your interface, especially when you use it to help communicate information like status or interactivity. For example, an app might use blue to indicate that people can tap text to view more. Even when the app communicates interactivity using a visual indicator that doesn’t rely on color — such as a chevron or arrow icon — using a color other than blue for the interactive text is confusing.

Make sure your app’s colors work well in both light and dark contexts. Most platforms offer a dark alternative to the default light appearance called Dark Mode. Dark Mode uses a darker color palette for all screens, views, menus, and controls, and can increase vibrancy — a subtle effect that dynamically blends foreground and background colors — to make foreground content stand out against darker backgrounds (for guidance, see Materials). Dark mode isn’t available in visionOS or watchOS. visionOS uses a material called glass that automatically adapts to the luminance of the surrounding objects and colors. In watchOS, apps typically use a dark background, but can also use full-screen background gradients or graphics to support foreground content in the view. In all platforms, system colors automatically support light and dark contexts as needed; if you use a custom color, you need to supply both variants.

Test your app’s color scheme under a variety of lighting conditions. For example, colors can look different when you run your app outside on a sunny day or in dim light. In visionOS, colors can look different depending on the colors of a wall or object in a person’s physical surroundings and how it reflects light. Adjust app colors to provide an optimal viewing experience in the majority of use cases.

Test your app on different devices. For example, the True Tone display — available on certain iPhone, iPad, and Mac models — 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 primarily support reading, photos, video, and gaming can strengthen or weaken this effect by specifying a white point adaptivity style (for developer guidance, see UIWhitePointAdaptivityStyle). Test tvOS apps on multiple brands of HD and 4K TVs, and with different display settings. You can also test the appearance of your app using different color profiles on a Mac — such as P3 and Standard RGB (sRGB) — by choosing a profile in System Settings > Displays. For guidance, see Color management.

Consider how artwork and translucency affect nearby colors. Variations in artwork sometimes warrant changes to nearby colors to maintain visual continuity and prevent interface elements from becoming overpowering or underwhelming. Maps, for example, displays a light color scheme when in map mode but switches to a dark color scheme when in satellite mode. Colors can also appear different when placed behind or applied to a translucent element like a toolbar.

If your app lets people choose colors, prefer system-provided color controls where available. Using built-in color pickers provides a consistent user experience, in addition to letting people save a set of colors they can access from any app. For developer guidance, see ColorPicker.

Inclusive color

Avoid relying solely on color to differentiate between objects, indicate interactivity, or communicate essential information. When you use color to convey information, be sure to provide the same information in alternative ways so people with color blindness or other visual disabilities can understand it. For example, you can use labels or glyph shapes to identify objects or states.

Avoid using colors that make it hard to perceive content in your app. For example, insufficient contrast can cause icons and text to blend with the background and make content hard to read, and people who are color blind might not be able to distinguish some color combinations. For guidance, see Color and effects.

Consider how the colors you use might be perceived in other countries and cultures. For example, red communicates danger in some cultures, but has positive connotations in other cultures. Make sure the colors in your app send the message you intend.

System colors

Avoid hard-coding system color values in your app. Documented color values are for your reference during the app design process. The actual color values may fluctuate from release to release, based on a variety of environmental variables. Use APIs like Color to apply system colors.

iOS, iPadOS, macOS, and visionOS also define sets of dynamic system colors that match the color schemes of standard UI components and automatically adapt to both light and dark contexts. Each dynamic color is semantically defined by its purpose, rather than its appearance or color values. For example, some colors represent view backgrounds at different levels of hierarchy and other colors represent foreground content, such as labels, links, and separators.

Avoid replicating dynamic system colors. Dynamic system colors — some of which can be patterns — may fluctuate from release to release, based on a variety of environmental variables.

Avoid redefining the semantic meanings of dynamic system colors. To ensure a consistent experience and ensure your interface looks great when the appearance of the platform changes, use dynamic system colors as intended.

Color management

A color space represents the colors in a color model like RGB or CMYK. Common color spaces — sometimes called gamuts — are sRGB and Display P3.

Diagram showing the colors included in the sRGB space, compared to the larger number of colors included in the P3 color space.

A color profile describes the colors in a color space using, for example, mathematical formulas or tables of data that map colors to numerical representations. An image embeds its color profile so that a device can interpret the image’s colors correctly and reproduce them on a display.

Apply color profiles to your images. Color profiles help ensure that your app’s colors appear as intended on different displays. The sRGB color space produces accurate colors on most displays.

Use wide color to enhance the visual experience on compatible displays. Wide color displays support a P3 color space, which can produce richer, more saturated colors than sRGB. As a result, photos and videos that use wide color are more lifelike, and visual data and status indicators that use wide color can be more meaningful. When appropriate, use the Display P3 color profile at 16 bits per pixel (per channel) and export images in PNG format. Note that you need to use a wide color display to design wide color images and select P3 colors.

Provide color space–specific image and color variations if necessary. In general, P3 colors and images appear fine on sRGB displays. Occasionally, it may be hard to distinguish two very similar P3 colors when viewing them on an sRGB display. Gradients that use P3 colors can also sometimes appear clipped on sRGB displays. To avoid these issues and to ensure visual fidelity on both wide color and sRGB displays, you can use the asset catalog of your Xcode project to provide different versions of images and colors for each color space.

To learn more, see How to start designing assets in Display P3.

Platform considerations

iOS, iPadOS

iOS defines two sets of dynamic 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 background colors (systemGroupedBackground, secondarySystemGroupedBackground, and tertiarySystemGroupedBackground) when you have a grouped table view; otherwise, use the system set of background colors (systemBackground, secondarySystemBackground, and tertiarySystemBackground).

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 dynamic colors:

Color

Use for…

UIKit API

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

macOS

macOS defines the following dynamic system colors (you can also view them in the Developer palette of the standard Color panel):

Color

Use for…

AppKit API

Alternate selected control text color

The text on a selected surface in a list or table.

alternateSelectedControlTextColor

Alternating content background colors

The backgrounds of alternating rows or columns in a list, table, or collection view.

alternatingContentBackgroundColors

Control accent

The accent color people select in System Settings.

controlAccentColor

Control background color

The background of a large interface element, such as a browser or table.

controlBackgroundColor

Control color

The surface of a control.

controlColor

Control text color

The text of a control that is available.

controlTextColor

Current control tint

The system-defined control tint.

currentControlTint

Unavailable control text color

The text of a control that’s unavailable.

disabledControlTextColor

Find highlight color

The color of a find indicator.

findHighlightColor

Grid color

The gridlines of an interface element, such as a table.

gridColor

Header text color

The text of a header cell in a table.

headerTextColor

Highlight color

The virtual light source onscreen.

highlightColor

Keyboard focus indicator color

The ring that appears around the currently focused control when using the keyboard for interface navigation.

keyboardFocusIndicatorColor

Label color

The text of a label containing primary content.

labelColor

Link color

A link to other content.

linkColor

Placeholder text color

A placeholder string in a control or text view.

placeholderTextColor

Quaternary label color

The text of a label of lesser importance than a tertiary label, such as watermark text.

quaternaryLabelColor

Secondary label color

The text of a label of lesser importance than a primary label, such as a label used to represent a subheading or additional information.

secondaryLabelColor

Selected content background color

The background for selected content in a key window or view.

selectedContentBackgroundColor

Selected control color

The surface of a selected control.

selectedControlColor

Selected control text color

The text of a selected control.

selectedControlTextColor

Selected menu item text color

The text of a selected menu.

selectedMenuItemTextColor

Selected text background color

The background of selected text.

selectedTextBackgroundColor

Selected text color

The color for selected text.

selectedTextColor

Separator color

A separator between different sections of content.

separatorColor

Shadow color

The virtual shadow cast by a raised object onscreen.

shadowColor

Tertiary label color

The text of a label of lesser importance than a secondary label.

tertiaryLabelColor

Text background color

The background color behind text.

textBackgroundColor

Text color

The text in a document.

textColor

Under page background color

The background behind a document’s content.

underPageBackgroundColor

Unemphasized selected content background color

The selected content in a non-key window or view.

unemphasizedSelectedContentBackgroundColor

Unemphasized selected text background color

A background for selected text in a non-key window or view.

unemphasizedSelectedTextBackgroundColor

Unemphasized selected text color

Selected text in a non-key window or view.

unemphasizedSelectedTextColor

Window background color

The background of a window.

windowBackgroundColor

Window frame text color

The text in the window’s title bar area.

windowFrameTextColor

App accent colors

Beginning in macOS 11, you can specify an accent color to customize the appearance of your app’s buttons, selection highlighting, and sidebar icons. The system applies your accent color when the current value in General > Accent color settings is multicolor.

A screenshot of a window that includes a sidebar. Each item in the sidebar displays an icon at its leading edge. Each icon uses the purple accent color.

A screenshot of a window that includes a toolbar. The purple accent color is visible in the currently selected toolbar icon and in the content area's pop-up buttons.

If people set their accent color setting to a value other than multicolor, the system applies their chosen color to the relevant items throughout your app, replacing your accent color. The exception is a sidebar icon that uses a fixed color you specify. Because a fixed-color sidebar icon uses a specific color to provide meaning, the system doesn’t override its color when people change the value of accent color settings. For guidance, see Sidebars.

A screenshot of a window that includes a sidebar.
The iCloud icon remains blue, even when the other glyphs use orange.

tvOS

Consider choosing a limited color palette that coordinates with your app logo. Subtle use of color can help you communicate your brand while deferring to the content.

Avoid using only color to indicate focus. Subtle scaling and responsive animation are the primary ways to denote interactivity when an element is in focus.

visionOS

Use color sparingly, especially on glass. Standard visionOS windows typically use the system-defined glass material, which lets light and objects from people’s physical surroundings and their space show through. Because the colors in these physical and virtual objects are visible through the glass, they can affect the legibility of colorful app content in the window. Prefer using color in places where it can help call attention to important information or show the relationship between parts of the interface.

Prefer using color in bold text and large areas. Color in lightweight text or small areas can make them harder to see and understand.

In a fully immersive experience, help people maintain visual comfort by keeping brightness levels balanced. Although using high contrast can help direct people’s attention to important content, it can also cause visual discomfort if people’s eyes have adjusted to low light or darkness. Consider making content fully bright only when the rest of the visual context is also bright. For example, avoid displaying a bright object on a very dark or black background, especially if the object flashes or moves.

watchOS

Use background color to support existing content or supply additional information. Background color can establish a sense of place and help people recognize key content. For example, in Activity, each infographic view for the Move, Exercise, and Stand Activity rings has a background that matches the color of the ring. Use background color when you have something to communicate, rather than as a solely visual flourish. Avoid using full-screen background color in views that are likely to remain onscreen for long periods of time, such as in a workout or audio-playing app.

Recognize that people might prefer graphic complications to use tinted mode instead of full color. The system can use a single color that’s based on the wearer’s selected color in a graphic complication’s images, gauges, and text. For guidance, see Complications.

Specifications

iOS, iPadOS system colors

Name

SwiftUI API

Default (Light)

Default (Dark)

Accessible (Light)

Accessible (Dark)

Red

red

R-255,G-59,B-48

R-255,G-69,B-58

R-215,G-0,B-21

R-255,G-105,B-97

Orange

orange

R-255,G-149,B-0

R-255,G-159,B-10

R-201,G-52,B-0

R-255,G-179,B-64

Yellow

yellow

R-255,G-204,B-0

R-255,G-214,B-10

R-178,G-80,B-0

R-255,G-212,B-38

Green

green

R-52,G-199,B-89

R-48,G-209,B-88

R-36,G-138,B-61

R-48,G-219,B-91

Mint

mint

R-0,G-199,B-190

R-102,G-212,B-207

R-12,G-129,B-123

R-102,G-212,B-207

Teal

teal

R-48,G-176,B-199

R-64,G-200,B-224

R-0,G-130,B-153

R-93,G-230,B-255

Cyan

cyan

R-50,G-173,B-230

R-100,G-210,B-255

R-0,G-113,B-164

R-112,G-215,B-255

Blue

blue

R-0,G-122,B-255

R-10,G-132,B-255

R-0,G-64,B-221

R-64,G-156,B-255

Indigo

indigo

R-88,G-86,B-214

R-94,G-92,B-230

R-54,G-52,B-163

R-125,G-122,B-255

Purple

purple

R-175,G-82,B-222

R-191,G-90,B-242

R-137,G-68,B-171

R-218,G-143,B-255

Pink

pink

R-255,G-45,B-85

R-255,G-55,B-95

R-211,G-15,B-69

R-255,G-100,B-130

Brown

brown

R-165,G-132,B-94

R-172,G-142,B-104

R-127,G-101,B-69

R-181,G-148,B-105

iOS, iPadOS system gray colors

Name

UIKit API

Default (Light)

Default (Dark)

Accessible (Light)

Accessible (Dark)

Gray

systemGray

R-142,G-142,B-147

R-142,G-142,B-147

R-108,G-108,B-112

R-174,G-174,B-178

Gray (2)

systemGray2

R-174,G-174,B-178

R-99,G-99,B-102

R-142,G-142,B-147

R-124,G-124,B-128

Gray (3)

systemGray3

R-199,G-199,B-204

R-72,G-72,B-74

R-174,G-174,B-178

R-84,G-84,B-86

Gray (4)

systemGray4

R-209,G-209,B-214

R-58,G-58,B-60

R-188,G-188,B-192

R-68,G-68,B-70

Gray (5)

systemGray5

R-229,G-229,B-234

R-44,G-44,B-46

R-216,G-216,B-220

R-54,G-54,B-56

Gray (6)

systemGray6

R-242,G-242,B-247

R-28,G-28,B-30

R-235,G-235,B-240

R-36,G-36,B-38

In SwiftUI, the equivalent of systemGray is gray.

macOS system colors

Name

SwiftUI API

Default (Light)

Default (Dark)

Accessible (Light)

Accessible (Dark)

Red

red

R-255,G-59,B-48

R-255,G-69,B-58

R-215,G-0,B-21

R-255,G-105,B-97

Orange

orange

R-255,G-149,B-0

R-255,G-159,B-10

R-201,G-52,B-0

R-255,G-179,B-64

Yellow

yellow

R-255,G-204,B-0

R-255,G-214,B-10

R-160,G-90,B-0

R-255,G-212,B-38

Green

green

R-40,G-205,B-65

R-50,G-215,B-75

R-0,G-125,B-27

R-49,G-222,B-75

Mint

mint

R-0,G-199,B-190

R-102,G-212,B-207

R-12,G-129,B-123

R-102,G-212,B-207

Teal

teal

R-89,G-173,B-196

R-106,G-196,B-220

R-0,G-130,B-153

R-93,G-230,B-255

Cyan

cyan

R-85,G-190,B-240

R-90,G-200,B-245

R-0,G-113,B-164

R-112,G-215,B-255

Blue

blue

R-0,G-122,B-255

R-10,G-132,B-255

R-0,G-64,B-221

R-64,G-156,B-255

Indigo

indigo

R-88,G-86,B-214

R-94,G-92,B-230

R-54,G-52,B-163

R-125,G-122,B-255

Purple

purple

R-175,G-82,B-222

R-191,G-90,B-242

R-173,G-68,B-171

R-218,G-143,B-255

Pink

pink

R-255,G-45,B-85

R-255,G-55,B-95

R-211,G-15,B-69

R-255,G-100,B-130

Brown

brown

R-162,G-132,B-94

R-172,G-142,B-104

R-127,G-101,B-69

R-181,G-148,B-105

Gray

gray

R-142,G-142,B-147

R-152,G-152,B-157

R-105,G-105,B-110

R-152,G-152,B-157

tvOS system colors

Name

SwiftUI API

Default (Light)

Default (Dark)

Accessible (Light)

Accessible (Dark)

Red

red

R-255,G-59,B-48

R-255,G-69,B-58

R-224,G-6,B-27

R-255,G-69,B-58

Orange

orange

R-255,G-149,B-0

R-255,G-159,B-10

R-208,G-50,B-0

R-255,G-159,B-10

Yellow

yellow

R-255,G-204,B-0

R-255,G-214,B-10

R-147,G-106,B-54

R-255,G-203,B-43

Green

green

R-52,G-199,B-89

R-50,G-215,B-75

R-0,G-125,B-27

R-48,G-219,B-91

Mint

mint

R-0,G-199,B-190

R-99,G-230,B-226

R-12,G-129,B-123

R-99,G-230,B-226

Teal

teal

R-48,G-176,B-199

R-64,G-200,B-224

R-0,G-130,B-153

R-93,G-230,B-255

Cyan

cyan

R-50,G-173,B-230

R-100,G-210,B-255

R-0,G-113,B-164

R-112,G-215,B-255

Blue

blue

R-0,G-122,B-255

R-10,G-132,B-255

R-0,G-64,B-221

R-10,G-132,B-255

Indigo

indigo

R-88,G-86,B-214

R-94,G-92,B-230

R-70,G-68,B-171

R-104,G-98,B-229

Purple

purple

R-175,G-82,B-222

R-191,G-90,B-242

R-175,G-82,B-222

R-234,G-145,B-254

Pink

pink

R-255,G-80,B-102

R-255,G-55,B-95

R-218,G-15,B-71

R-255,G-59,B-95

Brown

brown

R-162,G-132,B-94

R-172,G-142,B-104

R-127,G-101,B-69

R-181,G-148,B-105

Gray

gray

R-142,G-142,B-147

R-142,G-142,B-147

R-108,G-108,B-112

R-174,G-174,B-178

visionOS system colors

Name

SwiftUI API

Default

Red

red

R-255,G-69,B-58

Orange

orange

R-255,G-159,B-10

Yellow

yellow

R-255,G-214,B-10

Green

green

R-50,G-215,B-75

Mint

mint

R-102,G-212,B-207

Teal

teal

R-106,G-196,B-220

Cyan

cyan

R-90,G-200,B-245

Blue

blue

R-10,G-132,B-255

Indigo

indigo

R-94,G-92,B-230

Purple

purple

R-191,G-90,B-242

Pink

pink

R-255,G-55,B-95

Brown

brown

R-172,G-142,B-104

Gray

gray

R-152,G-152,B-157

watchOS system colors

Name

SwiftUI API

Default (Light)

Default (Dark)

Accessible (Light)

Accessible (Dark)

Red

red

R-246,G-52,B-40

R-255,G-59,B-48

R-215,G-0,B-21

R-255,G-105,B-97

Orange

orange

R-255,G-140,B-0

R-255,G-149,B-0

R-177,G-90,B-0

R-255,G-179,B-64

Yellow

yellow

R-255,G-204,B-0

R-255,G-214,B-10

R-143,G-116,B-0

R-255,G-242,B-97

Green

green

R-2,G-212,B-106

R-4,G-222,B-113

R-0,G-134,B-74

R-12,G-255,B-134

Mint

mint

R-0,G-199,B-190

R-0,G-245,B-234

R-12,G-129,B-123

R-108,G-255,B-249

Teal

teal

R-48,G-176,B-199

R-64,G-200,B-224

R-0,G-130,B-153

R-93,G-230,B-255

Cyan

cyan

R-50,G-173,B-230

R-90,G-200,B-250

R-0,G-113,B-164

R-112,G-215,B-255

Blue

blue

R-0,G-122,B-255

R-32,G-148,B-250

R-0,G-64,B-221

R-90,G-168,B-255

Indigo

indigo

R-88,G-86,B-214

R-120,G-122,B-255

R-54,G-52,B-163

R-155,G-153,B-255

Purple

purple

R-175,G-82,B-222

R-191,G-90,B-242

R-137,G-68,B-171

R-218,G-143,B-255

Pink

pink

R-234,G-14,B-74

R-250,G-17,B-79

R-211,G-15,B-69

R-255,G-100,B-130

Brown

brown

R-162,G-132,B-94

R-172,G-142,B-104

R-127,G-101,B-69

R-219,G-178,B-124

Resources

Dark Mode

Accessibility

Developer documentation

Color — SwiftUI

UI element colors — UIKit

Color — AppKit

Videos

Change log

Date

Changes

February 2, 2024

Distinguished UIKit and SwiftUI gray colors in iOS and iPadOS, and added guidance for balancing brightness levels in visionOS apps.

September 12, 2023

Enhanced guidance for using background color in watchOS views, and added color swatches for tvOS.

June 21, 2023

Updated to include guidance for visionOS.

June 5, 2023

Updated guidance for using background color in watchOS.

December 19, 2022

Corrected RGB values for system mint color (Dark Mode) in iOS and iPadOS.

Current page is Color