An open API service indexing awesome lists of open source software.

https://github.com/1024jp/wfcolorcode

NSColor extension adding ability to handle HSL color space and CSS3 style color codes
https://github.com/1024jp/wfcolorcode

cocoa nscolor swift

Last synced: about 1 year ago
JSON representation

NSColor extension adding ability to handle HSL color space and CSS3 style color codes

Awesome Lists containing this project

README

          

ColorCode
=============================

__ColorCode__ 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 14 or later

Usage
-----------------------------

WFColorCode supports the following color code styles.

```swift
/// 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.

```swift
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](LICENSE) for details.