Swiftpack.co -  noahsark769/ColorCompatibility as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
Use iOS 13+ system colors while defaulting to light colors on iOS <=12
.package(url: "https://github.com/noahsark769/ColorCompatibility.git", from: "1.1.0")


In iOS 13, Apple introduced a bunch of new system colors (label, systemBackground, etc). These colors dynamically adapt to the preferred user interface style, but these colors aren't available on iOS < 13. ColorCompatibility is an autogenerated library which allows you to specify the system colors as static vars of the ColorCompatibility namespace, instead of UIColor. Using this will make colors "just work" on both iOS 13+ and iOS <= 12. On iOS <= 12, the colors default to Apple's light mode colors.

Please note: there are some system colors (like systemGray, systemBlue etc) which have been available before iOS 13. This library does not currently provide fallbacks for these colors - you can use UIColor to access them. Feel free to submit an issue if you have a use case for including these colors in this library's enum!


import ColorCompatibility

myView.backgroundColor = ColorCompatibility.label

You can read more about this project here.

Version License Platform


To run the example project, clone the repo, and run pod install from the Example directory first.




ColorCompatibility is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'ColorCompatibility'

Swift Package Manager

ColorCompatability is available as a Swift package. To install, add https://github.com/noahsark769/ColorCompatibility.git as a package dependency in Xcode for a version >= 1.0.1, or as a dependency of another package:

let package = Package(
    dependencies: [
        .package(url: "https://github.com/noahsark769/ColorCompatibility.git", ...)

If you'd prefer not to use Cocoapods or SPM, I recommend copy and pasting the ColorCompatibility.swift code directly into your project. It's only one file 👍


When dropping in UIColor in place of ColorCompatibility when your app drops support for iOS 12, it's not strictly guaranteed that all colors behave the same way: for example, in iOS 13, system colors adapt to display differently when they're in an "elevated" context, like the background color of a view controller presented modally. For more information on elevated colors, see the Human Interface Guidelines on Dark Mode.


Noah Gilmore, https://noahgilmore.com/blog


ColorCompatibility is available under the MIT license. See the LICENSE file for more info.


If you see an issue, please report it via the GitHub issues tab. Pull requests are gladly accepted. You can get in touch with me on Twitter at https://twitter.com/noahsark769. Please don't submit PRs which update the library to include colors which have been available before iOS 13 (systemGray, systemBlue etc) without first discussing your use case in an issue.

If I don't respond to your issue or PR, feel free to tag me @noahsark769 or mention me on Twitter!


Stars: 93
Last commit: 2 weeks ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API