Color is a great way to provide status information, give feedback in response to user actions, and help people visualize data.

Use color judiciously for communication. In general, color should be used sparingly, like when you need to call attention to important information. For example, a red triangle that warns people of a critical problem becomes less effective when you use red elsewhere in an app for noncritical reasons.

Consider how your use of color might be perceived in other countries and cultures. In some cultures, for example, red communicates danger, whereas in others it has positive connotations. Make sure the colors in your app send the message you intend.

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.

Consider how nearby artwork and translucency affect colors. Color can lose its impact when composited over a non-neutral or translucent background, or when used adjacent to a very bright, colorful image.

Test your app’s color scheme under a variety of lighting conditions. Lighting varies significantly based on room ambiance, time of day, and more. Colors you see on your computer at design time won’t always look the same when using your app in an environment with bright ambient light conditions. Always preview your app under multiple lighting conditions, including outdoors with a laptop on a sunny day, to see how colors appear. Adjust colors to provide the best possible viewing experience in the majority of use cases.

Use the standard color panel for user color changes. If your app lets people change colors, use the standard color panel (shown below) to obtain the user’s color selection rather than designing a custom color-picker. The standard color panel provides a number of color selection modes, can be expanded with custom color selection modes, and allows the user to save swatches of frequently used colors. For developer guidance, see NSColorPanel. On a Mac equipped with a Touch Bar, you can also let people change colors using the standard color picker.

Screenshots of the Colors window open to the Color Wheel view, with a bright green selected.

Color Management

Apply color profiles to your images. Color profiles help ensure that your app’s colors appear as expected on different displays. The Standard RGB (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 are 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 a wide color display is needed to design wide color images and select P3 colors.

Provide color space-specific image and color variations when the experience calls for it. In general, P3 colors and images tend to appear normally on sRGB displays. Occasionally, however, it may be hard to differentiate between two very similar P3 colors when viewed on an sRGB display. Gradients that use colors in the P3 spectrum can also sometimes appear clipped on sRGB displays. 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 displays.

Diagram showing that the colors in the sRGB color space are a subset of the colors available in the P3 color space.

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 standard color panel to select and preview P3 colors and compare them with sRGB colors.

System Colors

macOS offers a range of standard system colors that automatically adapt to vibrancy (see Translucency and Vibrancy) and changes in accessibility settings like Increase contrast and Reduce transparency. Use these colors when choosing app tint colors that look great individually and in combination, on both light and dark backgrounds.

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 will fluctuate from release to release, based on a variety of environmental variables. Always use the API to apply system colors.

For developer guidance, see NSColor (AppKit) and Color (SwiftUI).

Dynamic System Colors

macOS defines a range of system colors that dynamically match the color scheme of standard interface controls like buttons and labels. These dynamic system colors are listed in the Developer palette of the standard color panel.

The system color panel with a light appearance.

Standard color panel (light)

The system color panel with a dark appearance.

Standard color panel (dark)

Don’t redefine the semantic meanings of dynamic system colors. To ensure a consistent experience and ensure your interface looks great when the appearance of macOS changes in the future, use dynamic system colors as intended.

Don’t try to replicate dynamic system colors. Dynamic system colors — some of which may be patterns — fluctuate from release to release, based on a variety of environmental variables. Instead of trying to create custom colors that match the dynamic system colors, use the dynamic system colors.

Color Used 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 selected by the user in system preferences. controlAccent
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 isn’t disabled. controlTextColor
Current control tint The system-defined control tint. currentControlTint
Disabled control text color The text of a control that’s disabled. 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
Scrubber textured background color The background of a scrubber in the Touch Bar. For related information, see the Touch Bar > Visual Design > Color. scrubberTexturedBackgroundColor
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 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 such as a label used to represent disabled text. tertiaryLabelColor
Text background color Text background. 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 titlebar area. windowFrameTextColor