Skip to content

NSColor extension for light and dark versions #6

@pcolton

Description

@pcolton

I used the tool to generate this set of light and dark mode equivalents for when running SwiftUI on macOS since when not using Catalyst, these colors aren't [as of macOS 11 beta 5] available.

extension NSColor {
    static var label: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 1.0)
        } else {
            return labelDark
        }
    }
    static var secondaryLabel: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.23529411764705882, green: 0.23529411764705882, blue: 0.2627450980392157, alpha: 0.6)
        } else {
            return secondaryLabelDark
        }
    }
    static var tertiaryLabel: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.23529411764705882, green: 0.23529411764705882, blue: 0.2627450980392157, alpha: 0.3)
        } else {
            return tertiaryLabelDark
        }
    }
    static var quaternaryLabel: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.23529411764705882, green: 0.23529411764705882, blue: 0.2627450980392157, alpha: 0.18)
        } else {
            return quaternaryLabelDark
        }
    }
    static var systemFill: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.47058823529411764, green: 0.47058823529411764, blue: 0.5019607843137255, alpha: 0.2)
        } else {
            return systemFillDark
        }
    }
    static var secondarySystemFill: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.47058823529411764, green: 0.47058823529411764, blue: 0.5019607843137255, alpha: 0.16)
        } else {
            return secondarySystemFillDark
        }
    }
    static var tertiarySystemFill: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.4627450980392157, green: 0.4627450980392157, blue: 0.5019607843137255, alpha: 0.12)
        } else {
            return tertiarySystemFillDark
        }
    }
    static var quaternarySystemFill: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.4549019607843137, green: 0.4549019607843137, blue: 0.5019607843137255, alpha: 0.08)
        } else {
            return quaternarySystemFillDark
        }
    }
    static var placeholderText: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.23529411764705882, green: 0.23529411764705882, blue: 0.2627450980392157, alpha: 0.3)
        } else {
            return placeholderTextDark
        }
    }
    static var systemBackground: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
        } else {
            return systemBackgroundDark
        }
    }
    static var secondarySystemBackground: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.9490196078431372, green: 0.9490196078431372, blue: 0.9686274509803922, alpha: 1.0)
        } else {
            return secondarySystemBackgroundDark
        }
    }
    static var tertiarySystemBackground: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
        } else {
            return tertiarySystemBackgroundDark
        }
    }
    static var systemGroupedBackground: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.9490196078431372, green: 0.9490196078431372, blue: 0.9686274509803922, alpha: 1.0)
        } else {
            return systemGroupedBackgroundDark
        }
    }
    static var secondarySystemGroupedBackground: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
        } else {
            return secondarySystemGroupedBackgroundDark
        }
    }
    static var tertiarySystemGroupedBackground: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.9490196078431372, green: 0.9490196078431372, blue: 0.9686274509803922, alpha: 1.0)
        } else {
            return tertiarySystemGroupedBackgroundDark
        }
    }
    static var separator: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.23529411764705882, green: 0.23529411764705882, blue: 0.2627450980392157, alpha: 0.29)
        } else {
            return separatorDark
        }
    }
    static var opaqueSeparator: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.7764705882352941, green: 0.7764705882352941, blue: 0.7843137254901961, alpha: 1.0)
        } else {
            return opaqueSeparatorDark
        }
    }
    static var link: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.0, green: 0.47843137254901963, blue: 1.0, alpha: 1.0)
        } else {
            return linkDark
        }
    }
    static var darkText: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 1.0)
        } else {
            return darkTextDark
        }
    }
    static var lightText: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 0.6)
        } else {
            return lightTextDark
        }
    }
    static var systemBlue: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.0, green: 0.47843137254901963, blue: 1.0, alpha: 1.0)
        } else {
            return systemBlueDark
        }
    }
    static var systemGreen: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.20392156862745098, green: 0.7803921568627451, blue: 0.34901960784313724, alpha: 1.0)
        } else {
            return systemGreenDark
        }
    }
    static var systemIndigo: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.34509803921568627, green: 0.33725490196078434, blue: 0.8392156862745098, alpha: 1.0)
        } else {
            return systemIndigoDark
        }
    }
    static var systemOrange: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 1.0, green: 0.5843137254901961, blue: 0.0, alpha: 1.0)
        } else {
            return systemOrangeDark
        }
    }
    static var systemPink: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 1.0, green: 0.17647058823529413, blue: 0.3333333333333333, alpha: 1.0)
        } else {
            return systemPinkDark
        }
    }
    static var systemPurple: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.6862745098039216, green: 0.3215686274509804, blue: 0.8705882352941177, alpha: 1.0)
        } else {
            return systemPurpleDark
        }
    }
    static var systemRed: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 1.0, green: 0.23137254901960785, blue: 0.18823529411764706, alpha: 1.0)
        } else {
            return systemRedDark
        }
    }
    static var systemTeal: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.35294117647058826, green: 0.7843137254901961, blue: 0.9803921568627451, alpha: 1.0)
        } else {
            return systemTealDark
        }
    }
    static var systemYellow: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 1.0, green: 0.8, blue: 0.0, alpha: 1.0)
        } else {
            return systemYellowDark
        }
    }
    static var systemGray: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.5568627450980392, green: 0.5568627450980392, blue: 0.5764705882352941, alpha: 1.0)
        } else {
            return systemGrayDark
        }
    }
    static var systemGray2: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.6823529411764706, green: 0.6823529411764706, blue: 0.6980392156862745, alpha: 1.0)
        } else {
            return systemGray2Dark
        }
    }
    static var systemGray3: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.7803921568627451, green: 0.7803921568627451, blue: 0.8, alpha: 1.0)
        } else {
            return systemGray3Dark
        }
    }
    static var systemGray4: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.8196078431372549, green: 0.8196078431372549, blue: 0.8392156862745098, alpha: 1.0)
        } else {
            return systemGray4Dark
        }
    }
    static var systemGray5: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.8980392156862745, green: 0.8980392156862745, blue: 0.9176470588235294, alpha: 1.0)
        } else {
            return systemGray5Dark
        }
    }
    static var systemGray6: NSColor {
        if NSAppearance.current.name == .aqua {
            return NSColor(red: 0.9490196078431372, green: 0.9490196078431372, blue: 0.9686274509803922, alpha: 1.0)
        } else {
            return systemGray6Dark
        }
    }
}

// Dark mode colors
extension NSColor {
    static var labelDark: NSColor {
        NSColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
    }
    static var secondaryLabelDark: NSColor {
        NSColor(red: 0.9215686274509803, green: 0.9215686274509803, blue: 0.9607843137254902, alpha: 0.6)
    }
    static var tertiaryLabelDark: NSColor {
        NSColor(red: 0.9215686274509803, green: 0.9215686274509803, blue: 0.9607843137254902, alpha: 0.3)
    }
    static var quaternaryLabelDark: NSColor {
        NSColor(red: 0.9215686274509803, green: 0.9215686274509803, blue: 0.9607843137254902, alpha: 0.18)
    }
    static var systemFillDark: NSColor {
        NSColor(red: 0.47058823529411764, green: 0.47058823529411764, blue: 0.5019607843137255, alpha: 0.36)
    }
    static var secondarySystemFillDark: NSColor {
        NSColor(red: 0.47058823529411764, green: 0.47058823529411764, blue: 0.5019607843137255, alpha: 0.32)
    }
    static var tertiarySystemFillDark: NSColor {
        NSColor(red: 0.4627450980392157, green: 0.4627450980392157, blue: 0.5019607843137255, alpha: 0.24)
    }
    static var quaternarySystemFillDark: NSColor {
        NSColor(red: 0.4627450980392157, green: 0.4627450980392157, blue: 0.5019607843137255, alpha: 0.18)
    }
    static var placeholderTextDark: NSColor {
        NSColor(red: 0.9215686274509803, green: 0.9215686274509803, blue: 0.9607843137254902, alpha: 0.3)
    }
    static var systemBackgroundDark: NSColor {
        NSColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 1.0)
    }
    static var secondarySystemBackgroundDark: NSColor {
        NSColor(red: 0.10980392156862745, green: 0.10980392156862745, blue: 0.11764705882352941, alpha: 1.0)
    }
    static var tertiarySystemBackgroundDark: NSColor {
        NSColor(red: 0.17254901960784313, green: 0.17254901960784313, blue: 0.1803921568627451, alpha: 1.0)
    }
    static var systemGroupedBackgroundDark: NSColor {
        NSColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 1.0)
    }
    static var secondarySystemGroupedBackgroundDark: NSColor {
        NSColor(red: 0.10980392156862745, green: 0.10980392156862745, blue: 0.11764705882352941, alpha: 1.0)
    }
    static var tertiarySystemGroupedBackgroundDark: NSColor {
        NSColor(red: 0.17254901960784313, green: 0.17254901960784313, blue: 0.1803921568627451, alpha: 1.0)
    }
    static var separatorDark: NSColor {
        NSColor(red: 0.32941176470588235, green: 0.32941176470588235, blue: 0.34509803921568627, alpha: 0.6)
    }
    static var opaqueSeparatorDark: NSColor {
        NSColor(red: 0.2196078431372549, green: 0.2196078431372549, blue: 0.22745098039215686, alpha: 1.0)
    }
    static var linkDark: NSColor {
        NSColor(red: 0.03529411764705882, green: 0.5176470588235295, blue: 1.0, alpha: 1.0)
    }
    static var darkTextDark: NSColor {
        NSColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 1.0)
    }
    static var lightTextDark: NSColor {
        NSColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 0.6)
    }
    static var systemBlueDark: NSColor {
        NSColor(red: 0.0392156862745098, green: 0.5176470588235295, blue: 1.0, alpha: 1.0)
    }
    static var systemGreenDark: NSColor {
        NSColor(red: 0.18823529411764706, green: 0.8196078431372549, blue: 0.34509803921568627, alpha: 1.0)
    }
    static var systemIndigoDark: NSColor {
        NSColor(red: 0.3686274509803922, green: 0.3607843137254902, blue: 0.9019607843137255, alpha: 1.0)
    }
    static var systemOrangeDark: NSColor {
        NSColor(red: 1.0, green: 0.6235294117647059, blue: 0.0392156862745098, alpha: 1.0)
    }
    static var systemPinkDark: NSColor {
        NSColor(red: 1.0, green: 0.21568627450980393, blue: 0.37254901960784315, alpha: 1.0)
    }
    static var systemPurpleDark: NSColor {
        NSColor(red: 0.7490196078431373, green: 0.35294117647058826, blue: 0.9490196078431372, alpha: 1.0)
    }
    static var systemRedDark: NSColor {
        NSColor(red: 1.0, green: 0.27058823529411763, blue: 0.22745098039215686, alpha: 1.0)
    }
    static var systemTealDark: NSColor {
        NSColor(red: 0.39215686274509803, green: 0.8235294117647058, blue: 1.0, alpha: 1.0)
    }
    static var systemYellowDark: NSColor {
        NSColor(red: 1.0, green: 0.8392156862745098, blue: 0.0392156862745098, alpha: 1.0)
    }
    static var systemGrayDark: NSColor {
        NSColor(red: 0.5568627450980392, green: 0.5568627450980392, blue: 0.5764705882352941, alpha: 1.0)
    }
    static var systemGray2Dark: NSColor {
        NSColor(red: 0.38823529411764707, green: 0.38823529411764707, blue: 0.4, alpha: 1.0)
    }
    static var systemGray3Dark: NSColor {
        NSColor(red: 0.2823529411764706, green: 0.2823529411764706, blue: 0.2901960784313726, alpha: 1.0)
    }
    static var systemGray4Dark: NSColor {
        NSColor(red: 0.22745098039215686, green: 0.22745098039215686, blue: 0.23529411764705882, alpha: 1.0)
    }
    static var systemGray5Dark: NSColor {
        NSColor(red: 0.17254901960784313, green: 0.17254901960784313, blue: 0.1803921568627451, alpha: 1.0)
    }
    static var systemGray6Dark: NSColor {
        NSColor(red: 0.10980392156862745, green: 0.10980392156862745, blue: 0.11764705882352941, alpha: 1.0)
   }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions