← craftery.dev

SwiftUI Color

Every SwiftUI initializer · Color extension · Asset Catalog JSON

#FF6B6B
Alpha
100%
9 INITIALIZERS — click any value to edit
Color(r:g:b:)
Color(r:g:b:op:)
Color(hue:sat:bri:)
Color(.sRGB)
Color(.displayP3)wide gamut
Color(hex:)extension
#colorLiteralXcode
Color(uiColor:)iOS 14+
Color(nsColor:)macOS 12+
DROP-IN SNIPPETS
Color extensionSwift
extension Color {
    static let brand = Color(red: 1.00, green: 0.42, blue: 0.42)
}
Asset CatalogJSON
Save as Contents.json inside Assets.xcassets/YourColor.colorset/
{
  "colors": [
    {
      "color": {
        "color-space": "srgb",
        "components": {
          "red": "1.000",
          "green": "0.420",
          "blue": "0.420",
          "alpha": "1.000"
        }
      },
      "idiom": "universal"
    }
  ],
  "info": {
    "author": "xcode",
    "version": 1
  }
}
Color(hex:) extensionSwift
Paste once; then Color(hex: ...) becomes available everywhere.
extension Color {
    init(hex: String) {
        let hex = hex.trimmingCharacters(in: CharacterSet(charactersIn: "#"))
        var int: UInt64 = 0
        Scanner(string: hex).scanHexInt64(&int)
        let a, r, g, b: UInt64
        switch hex.count {
        case 6: (a, r, g, b) = (255, int >> 16, int >> 8 & 0xFF, int & 0xFF)
        case 8: (a, r, g, b) = (int >> 24, int >> 16 & 0xFF, int >> 8 & 0xFF, int & 0xFF)
        default: (a, r, g, b) = (255, 0, 0, 0)
        }
        self.init(
            .sRGB,
            red: Double(r) / 255,
            green: Double(g) / 255,
            blue: Double(b) / 255,
            opacity: Double(a) / 255
        )
    }
}

100% client-side · Your data never leaves your browser

by craftery.dev