SystemColors

1.2.0

Use standard system colors from SwiftUI on iOS, macOS or tvOS
diniska/swiftui-system-colors

What's New

Release 1.2.0

2022-04-26T15:15:33Z
  • Documentation updated
  • Added new colors: systemBrown, systemCyan, systemMint
  • Added fixed colors: darkGray, lightGray, magenta

SwiftUI System Colors

Swift 5.3 Xcode 12 iOS 8.0 iPadOS 8.0 MacOS 10.10 Tests

Use standard system colors from SwiftUI on iOS, macOS or tvOS.

Currently, SwiftUI doesn't provide access to standard system colors, so you can find some sort of color conversion (Color(UIColor.label)) in almost any SwiftUI project. This library focusing on bringing all the system colors to SwiftUI so you no longer need to write the conversion manually every time.

Benefits of using SystemColors package dependency in your project compared to custom implementation or copy-pasting:

  • Receive updates soon after a system new color is introduced,
  • Standardised naming for iOS and macOS so that it is always Color.label instead of iOS's UIColor.label and macOS's NSColor.labelColor
  • All the compatibility checks like @available(iOS 13.0, *) or #if canImport(UIKit) are implemented by the package and maintained by the community - less chance to introduce an error in one of the platforms support.

How to use

Step 1

Add a dependency using Swift Package Manager to your project: https://github.com/diniska/swiftui-system-colors

Step 2

Import the dependency

import SystemColors

Step 3

Use system colors from SwiftUI the same way you do with UIColor or NSColor:

Rectangle()
	.background(Color.label)

Contribution

Please, open a pull request or an issue if you find that one or the other color is missing or represented in a wrong way.

Please, only add system colors to this package. We only provide convenient interfaces without making a decision about how some colors should look. For example, if there is no color systemFill provided by macOS - we don't provide it on macOS either, but for iOS, it exists and we provide that color on iOS.

If you have ideas of how to better test the provided bridging code - please add an issue with the description of your idea or add a pull request with the implementation.

Please, keep the similar code style if you propose a change to the package. Current code style has the next benefits:

  • Easy to edit with multiple cursors
  • Easy to add new colors with documentation by copying the documentation from Xcode and using multiple cursors
  • Providing relevant links to the parts of the standard documentation.

Description

  • Swift Tools 5.3.0
View More Packages from this Author

Dependencies

  • None
Last updated: Thu Mar 28 2024 15:28:36 GMT-0900 (Hawaii-Aleutian Daylight Time)