Swiftpack.co - 1024jp/WFColorCode as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by 1024jp.
1024jp/WFColorCode 2.10.0
NSColor extension adding ability to handle HSL color space and CSS3 style color codes
⭐️ 25
🕓 9 weeks ago
macOS
.package(url: "https://github.com/1024jp/WFColorCode.git", from: "2.10.0")

WFColorCode

Test Status SwiftPM compatible

WFColorCode is a set of NSColor extensions that allows creating NSColor/SwiftUI.Color instance from a CSS color code string, or color code string from an NSColor/SwiftUI.Color instance. It also adds the ability to handle HSL color space.

  • Requirements: macOS 11 or later

Usage

WFColorCode supports the following color code styles.

/// color code type
enum ColorCodeType: Int {
    case hex          // #ffffff
    case hexWithAlpha // #ffffffff
    case shortHex     // #fff
    case cssRGB       // rgb(255,255,255)
    case cssRGBa      // rgba(255,255,255,1)
    case cssHSL       // hsl(0,0%,100%)
    case cssHSLa      // hsla(0,0%,100%,1)
    case cssKeyword   // White
};

Example

Import ColorCode to use.

import ColorCode

// create NSColor instance from HSLa color code
var type: ColorCodeType?
let whiteColor = NSColor(colorCode: "hsla(0,0%,100%,0.5)", type: &type)
let hex: String = whiteColor.colorCode(type: .hex)  // => "#ffffff"

// create NSColor instance from HSLa values
let color = NSColor(deviceHue:0.1, saturation:0.2, lightness:0.3, alpha:1.0)

// create NSColor instance from a CSS3 keyword
let ivoryColor = NSColor(colorCode: "ivory")

// get HSL values from NSColor instance
var hue: CGFloat = 0
var saturation: CGFloat = 0
var lightness: CGFloat = 0
var alpha: CGFloat = 0
color.getHue(hue: &hue, saturation: &saturation, lightness: &lightness, alpha: &alpha)

License

© 2014-2024 1024jp.

The source code is distributed under the terms of the MIT License. See the bundled LICENSE for details.

GitHub

link
Stars: 25
Last commit: 9 weeks ago
Advertisement: IndiePitcher.com - Cold Email Software for Startups

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