macOS Secondary System Fill

NSColor.secondarySystemFill
Desktop Control Surface
Adaptive System Token•macOS 10.10+ / 10.14+, AppKit

Complete technical specification and developer reference for Secondary System Fill in Apple's macOS design system. In light appearance, it resolves to HEX rgba(0, 0, 0, 0.08); in dark appearance, it dynamically adapts to HEX rgba(255, 255, 255, 0.08). Features wide-gamut Display P3 values, UIKit bridge (UIColor.secondarySystemFill), AppKit bridge (NSColor.secondarySystemFill), WCAG contrast audit, and Xcode drop-in initializers.

Light Modergba(0, 0, 0, 0.08)
Dark Modergba(255, 255, 255, 0.08)
Secondary System Fill Color Preview

A secondary fill color for controls and interface elements.

ColorNSColor.secondarySystemFill
Copy:
Dynamic Asset
Desktop Control Surface
macOS 10.10+ / 10.14+, AppKit
Initializers & Color Spaces
Color(r:g:b:)Color(red: 0.000, green: 0.000, blue: 0.000)
Color(r:g:b:op:)Color(red: 0.000, green: 0.000, blue: 0.000, opacity: 0.08)
Color(hue:sat:bri:)HSBColor(hue: 0.000, saturation: 0.000, brightness: 0.000, opacity: 0.08)
Color(.displayP3)Wide GamutColor(.displayP3, red: 0.000, green: 0.000, blue: 0.000, opacity: 0.08)
Color(.sRGB)Color(.sRGB, red: 0.000, green: 0.000, blue: 0.000, opacity: 0.08)
Color(hex:)ExtensionColor(hex: "rgba(0, 0, 0, 0.08)")
#colorLiteralXcode#colorLiteral(red: 0.000, green: 0.000, blue: 0.000, alpha: 0.08)
Color(uiColor:)iOSColor(uiColor: UIColor(red: 0.000, green: 0.000, blue: 0.000, alpha: 0.08))
Active HEX: rgba(0, 0, 0, 0.08)P3 R: 0.000 G: 0.000 B: 0.000

Technical Color Specifications

Exact resolved HEX codes, sRGB 8-bit components, HSL, and normalized Swift floating-point decimals for Light and Dark modes.

Color Metric / SpaceLight AppearanceDark AppearanceSwift Code Literal
HEX Codergba(0, 0, 0, 0.08)rgba(255, 255, 255, 0.08)Color(hex: "rgba(0, 0, 0, 0.08)")
sRGB (0–255)rgba(0, 0, 0, 0.08)rgba(255, 255, 255, 0.08)(r: 0.000, g: 0.000, b: 0.000)
Display P3 (Wide Gamut)P3 (0.000, 0.000, 0.000)P3 (1.000, 1.000, 1.000)Color(.displayP3, ...)
HSL / HSBhsla(0, 0%, 0%, 0.08)hsla(0, 0%, 100%, 0.08)Color(hue:sat:bri:)
Platform BridgeUIKit: UIColor.secondarySystemFillAppKit: NSColor.secondarySystemFillColor(uiColor:) / Color(nsColor:)

Light Appearance

Light Theme
HEX Code
rgba(0, 0, 0, 0.08)
RGB (0–255)
rgba(0, 0, 0, 0.08)
HSL
hsla(0, 0%, 0%, 0.08)
Normalized Swift Literal:
(r: 0.000, g: 0.000, b: 0.000)

Dark Appearance

Dark Theme
HEX Code
rgba(255, 255, 255, 0.08)
RGB (0–255)
rgba(255, 255, 255, 0.08)
HSL
hsla(0, 0%, 100%, 0.08)
Normalized Swift Literal:
(r: 1.000, g: 1.000, b: 1.000)

Drop-In Developer Snippets

Ready-to-paste code blocks for Xcode asset catalogs and Swift files.

Xcode Location: Save as Contents.json inside Assets.xcassets/Secondary System Fill.colorset/
Includes Light + Dark Modes
Contents.json
{
  "colors": [
    {
      "color": {
        "color-space": "srgb",
        "components": {
          "red": "0.000",
          "green": "0.000",
          "blue": "0.000",
          "alpha": "0.080"
        }
      },
      "idiom": "universal"
    },
    {
      "appearances": [
        {
          "appearance": "luminosity",
          "value": "dark"
        }
      ],
      "color": {
        "color-space": "srgb",
        "components": {
          "red": "1.000",
          "green": "1.000",
          "blue": "1.000",
          "alpha": "0.080"
        }
      },
      "idiom": "universal"
    }
  ],
  "info": {
    "author": "xcode",
    "version": 1
  }
}

Live UI Component Sandbox

Preview Color.secondary system fill inside standard Apple interface components.

Interactive Controls
Active TagBadge 99+
Toggle Tint
Container & Typography Styling

●SwiftUI Notification

Just now

Demonstrates how Apple designers pair system background tints with dynamic Secondary System Fill accents.

Dynamic Headline in Secondary System Fill

.foregroundStyle(NSColor.secondarySystemFill)

Platform Implementation Snippets

Ready-to-use Swift code for SwiftUI, UIKit, and AppKit applications.

AppKit (macOS Swift)
// AppKit (macOS)
let button = NSButton()
button.contentTintColor = NSColor.secondarySystemFill

// Custom Layer Tint
let layer = CALayer()
layer.backgroundColor = NSColor.secondarySystemFill.cgColor

// Bridging AppKit into SwiftUI
let swiftUIColor = Color(nsColor: .secondarySystemFill)

WCAG 2.1 Accessibility Contrast Audit

Contrast calculations of Secondary System Fill against pure white and iOS OLED dark surfaces.

Light Mode (rgba(0, 0, 0, 0.08))on White (#FFF)
Contrast Ratio:1.19:1
Normal Text (4.5:1 AA): Fail
Dark Mode (rgba(255, 255, 255, 0.08))on Dark (#1C1C1E)
Contrast Ratio:1.26:1
Normal Text (4.5:1 AA): Fail

Recommended HIG Use Cases

  • Buttons, popups, and segmented controls
  • Active selection rings and focus states
  • Slider tracks and progress indicators

Anti-Patterns to Avoid

  • Long-form document text
  • Static non-interactive headers

Frequently Asked Questions

How do I use NSColor.secondarySystemFill in macOS AppKit apps?

In AppKit, assign NSColor.secondarySystemFill to NSView, NSTextField, or NSButton styling. In SwiftUI on macOS, bridge it using Color(nsColor: .secondarySystemFill).

What is the HEX code for macOS Secondary System Fill in light and dark mode?

In light appearance, Secondary System Fill resolves to rgba(0, 0, 0, 0.08). In dark appearance, it automatically adapts to rgba(255, 255, 255, 0.08).

How do I bridge NSColor.secondarySystemFill into SwiftUI?

In SwiftUI views on macOS, instantiate Color(nsColor: .secondarySystemFill) to access the native AppKit dynamic color token.

Does Secondary System Fill adapt to Dark Mode and vibrancy in macOS?

Yes, NSColor.secondarySystemFill is an appearance-aware NSColor that updates automatically when switching between light and dark modes or across vibrant desktop materials.

Why use AppKit system colors instead of hardcoded hex values?

NSColor system tokens adapt automatically to user accent color preferences, Dark Mode, and accessibility contrast settings.