Skip to content

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

License

Notifications You must be signed in to change notification settings

diniska/swiftui-system-colors

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages