MaterialColors is a swift package for quickly implementing colors from Material Design in your applications. It supports UIKit, AppKit, and SwiftUI, as well as platform light and dark user interface styles
MaterialColors
uses the The Swift Package Manager for distrubition. For now, this is the only supported method of installation, but others will be added soon.
Add MaterialColors
to your Package.swift
file like so:
dependencies: [
.package(url: "https://github.com/vsanthanam/MaterialColors-Swift.git", .upToNextMajor(from: "0.0.0"))
]
import MaterialColors
import UIKit
let view = UIView()
view.backgroundColor = .material(.red400)
import MaterialColors
import UIKit
let dynamicView = UIView()
view.backgroundColor = .material(light: .grey50, dark: .grey400)
import AppKit
import MaterialColors
let view = NSView()
view.backgroundColor = .material(.green50)
import CoreGraphics
import MaterialColors
import UIKit
let view = UIView()
view.layer.background = .material(.purple300)
import AppKit
import CoreGraphics
import MaterialColors
let view = NSView()
view.layer.background = .material(.orange200)
import MaterialColors
import SwiftUI
struct MyView: View {
var body: some View {
Rectangle()
.foregroundColor(.material(.deepPurple400))
}
}
You can also create material colors from strings and string literals. This can be useful if you are parsing some value from an http response:
import MaterialColors
import UIKit
let uicolor: UIColor = .material("red400")
let string = "red400"
let color = MaterialColor(string)
let nscolor: NSColor = .material(color)
You can also determine whether a given color is one of the standard material design colors, and if so, which one it is:
import MaterialColors
import UIKit
import XCTest
let materialColor: UIColor = .material(.red400)
let nonMaterialColor = UIColor.blue
XCTAssertNil(nonMaterialColor.asMaterialColor)
XCTAssertEqual(materialColor.asMaterialColor, .red400)