Skip to content

Commit

Permalink
Internal revamp
Browse files Browse the repository at this point in the history
- Changed components from rgb to generic array using an enum to differentiate
- Changed component interfaces to tuples for clarity
- Improved several conversions
- Added CMYK support
- Added concept of ColorSpace
- Improved vocabulary
  • Loading branch information
Dylan Wreggelsworth authored and dylan committed May 8, 2017
1 parent 2a109d5 commit 094989b
Show file tree
Hide file tree
Showing 22 changed files with 946 additions and 941 deletions.
25 changes: 6 additions & 19 deletions Colors-iOS.playground/Contents.swift
Original file line number Diff line number Diff line change
Expand Up @@ -4,32 +4,19 @@ import Colors

let color1 = Color(red: 1.0, green: 1.0, blue: 1.0)

let color2 = Color(redUInt: 255, greenUInt: 255, blueUInt: 255)
let color2 = Color(redInt: 255, greenInt: 255, blueInt: 255)

let color3 = Color(rgb: 0xffffff)

let color4 = Color(argb: 0xffffffff)
let color3 = Color(hex: 0xffffff)

color1 == color2
color2 == color3
color3 == color4

let dinerGreen = Color(rgb: 0x37ecbd)
let dinerGreen = Color(hex: 0x37ecbd)

dinerGreen.view

dinerGreen.hue
dinerGreen.hslSaturation
dinerGreen.hslLightness

dinerGreen.hue
dinerGreen.hsbSaturation
dinerGreen.hsbBrightness

dinerGreen.red
dinerGreen.green
dinerGreen.blue
dinerGreen.alpha

dinerGreen.hsl

dinerGreen.hsv

dinerGreen.rgb
13 changes: 9 additions & 4 deletions Colors-iOS.playground/timeline.xctimeline
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,27 @@
version = "3.0">
<TimelineItems>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=567&amp;EndingColumnNumber=13&amp;EndingLineNumber=4&amp;StartingColumnNumber=1&amp;StartingLineNumber=4&amp;Timestamp=513689674.113255"
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=357&amp;EndingColumnNumber=13&amp;EndingLineNumber=4&amp;StartingColumnNumber=1&amp;StartingLineNumber=4&amp;Timestamp=515936137.712736"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=567&amp;EndingColumnNumber=12&amp;EndingLineNumber=4&amp;StartingColumnNumber=1&amp;StartingLineNumber=4&amp;Timestamp=513689674.113411"
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=357&amp;EndingColumnNumber=12&amp;EndingLineNumber=4&amp;StartingColumnNumber=1&amp;StartingLineNumber=4&amp;Timestamp=515936137.712912"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=567&amp;EndingColumnNumber=36&amp;EndingLineNumber=4&amp;StartingColumnNumber=1&amp;StartingLineNumber=4&amp;Timestamp=513689674.113531"
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=357&amp;EndingColumnNumber=36&amp;EndingLineNumber=4&amp;StartingColumnNumber=1&amp;StartingLineNumber=4&amp;Timestamp=515936137.713047"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=16&amp;CharacterRangeLoc=351&amp;EndingColumnNumber=18&amp;EndingLineNumber=18&amp;StartingColumnNumber=1&amp;StartingLineNumber=18&amp;Timestamp=513688511.198451"
documentLocation = "#CharacterRangeLen=16&amp;CharacterRangeLoc=293&amp;EndingColumnNumber=18&amp;EndingLineNumber=15&amp;StartingColumnNumber=1&amp;StartingLineNumber=15&amp;Timestamp=515936094.930094"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=15&amp;CharacterRangeLoc=294&amp;EndingColumnNumber=16&amp;EndingLineNumber=15&amp;StartingColumnNumber=1&amp;StartingLineNumber=15&amp;Timestamp=515936143.663035"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
Expand Down
187 changes: 54 additions & 133 deletions Colors-macOS.playground/Contents.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,152 +3,73 @@
import Darwin
import Colors

//let color1 = Color(red: 1.0, green: 1.0, blue: 1.0)
//
//let color2 = Color(redUInt: 255, greenUInt: 255, blueUInt: 255)
//
//let color3 = Color(rgb: 0xffffff)
//
//let color4 = Color(argb: 0xffffffff)
//
//color1 == color2
//color2 == color3
//color3 == color4
//
var dinerGreen = Color(rgb: 0x37ecbd)
//
//dinerGreen.hue
//dinerGreen.hslSaturation
//dinerGreen.hslLightness
//
//dinerGreen.red
//dinerGreen.green
//dinerGreen.blue
//dinerGreen.alpha
//
//dinerGreen.argbValue
//dinerGreen.argbString
//
//dinerGreen.rgbValue
//dinerGreen.rgbString
//
//Color.white.argbString
//Color.white.rgbString
//
//Color.red.luminance
//dinerGreen.luminance
//
//0xffffff == Color.white.rgbValue
//
//Color(rgb: 0xffffff).argbString
//
//dinerGreen.hueShifted(45).view
//dinerGreen.lightened(0.3).view
//dinerGreen.darkened(0.3).view
//dinerGreen.saturated(1.0).view
//dinerGreen.desaturated(1.0).view
//
//dinerGreen.view
////dinerGreen.hsbSaturation = 0
//
//dinerGreen.view
//
//dinerGreen.mixed(with: .red, percent: 0.5).view
//
let color1 = Color(red: 1.0, green: 1.0, blue: 1.0)

let color2 = Color(redInt: 255, greenInt: 255, blueInt: 255)

//
//dinerGreen.view
//
//dinerGreen.red
//dinerGreen.green
//dinerGreen.blue
//
//dinerGreen.hue
//dinerGreen.hsbSaturation
//dinerGreen.hsbBrightness
//
//dinerGreen.hue
//dinerGreen.hslSaturation
//dinerGreen.hslLightness
let color3 = Color(hex: 0xffffff)

//dinerGreen.red
//dinerGreen.green
//dinerGreen.blue
//
dinerGreen.hue
dinerGreen.hslSaturation
dinerGreen.hslLightness
color1 == color2
color2 == color3

dinerGreen.hue
dinerGreen.hsbSaturation
dinerGreen.hsbBrightness
var dinerGreen = Color(hex: 0x36ecbd)

let test1 = Color(hue: dinerGreen.hue, saturation: dinerGreen.hslSaturation, lightness: dinerGreen.hslLightness)
let test2 = Color(hue: dinerGreen.hue, saturation: dinerGreen.hsbSaturation, brightness: dinerGreen.hsbBrightness)
dinerGreen.hsl

dinerGreen.hue
test1.hue
test2.hue
dinerGreen.rgb

dinerGreen.hslSaturation
test1.hslSaturation
test2.hslSaturation
dinerGreen.hex
dinerGreen.hexString

dinerGreen.hslLightness
test1.hslLightness
test2.hslLightness
Color.white.hexString

dinerGreen.hsbSaturation
test1.hsbSaturation
test2.hsbSaturation
Color.red.luminance
dinerGreen.luminance

dinerGreen.hsbBrightness
test1.hsbBrightness
test2.hsbBrightness
0xffffff == Color.white.hex

dinerGreen.red
test1.red
test2.red
dinerGreen.hueShifted(180).view
dinerGreen.lightened(0.3).view
dinerGreen.darkened(0.3).view
dinerGreen.saturated(1.0).view
dinerGreen.desaturated(1.0).view

dinerGreen.green * 255
test1.green
test2.green
dinerGreen.view
dinerGreen.hsv.saturation = 0

dinerGreen.blue * 255
test1.blue
test2.blue
dinerGreen.view

test1.view
test2.view
dinerGreen.mixed(with: .red, percent: 0.5).view

let ramp = [Color(hex: 0x000000), // Black
Color(hex: 0xff0000), // Red
Color(hex: 0x00ff00), // Green
Color(hex: 0x0000ff), // Blue
Color(hex: 0x000000), // Black
Color(hex: 0xffffff)] // White

[Color.black, Color.green, Color.red].spread(to: 32).view

ramp.spread(to: 32, using: .hue).view

ramp.spread(to: 32, using: .rgb).view

let sexyRamp = [Color(hex: 0xde6161),
Color(hex: 0x2657eb)]

sexyRamp.spread(to: 16, using: .rgb).view

sexyRamp.spread(to: 16, using: .hue).view

let x11ColorRamp: [Color] = [X11.green, X11.lightBlue, X11.beige, X11.chartreuse, X11.darkOliveGreen, X11.purple]
x11ColorRamp.view

let w3cColorRamp: [Color] = [W3C.green, W3C.lightblue, W3C.beige, W3C.chartreuse, W3C.darkolivegreen, W3C.purple]
w3cColorRamp.view

let namedColorRamp: [Color] = [.black, .white, .brown, .cyan, .green]
namedColorRamp.view

//let ramp = [Color(rgb: 0x000000),
// Color(rgb: 0xff0000),
// Color(rgb: 0x00ff00),
// Color(rgb: 0x0000ff),
// Color(rgb: 0x000000),
// Color(rgb: 0xffffff)]
//
//ramp.spread(to: 32, using: .hue).view
//
//ramp.spread(to: 32, using: .rgb).view
//
//let sexyRamp = [Color(rgb: 0xde6161),
// Color(rgb: 0x2657eb)]
//
//sexyRamp.spread(to: 16, using: .rgb).view
//
//sexyRamp.spread(to: 16, using: .hue).view
//
//let x11ColorRamp: [Color] = [X11.green, X11.lightBlue, X11.beige, X11.chartreuse, X11.darkOliveGreen, X11.purple]
//x11ColorRamp.view
//
//let w3cColorRamp: [Color] = [W3C.green, W3C.lightblue, W3C.beige, W3C.chartreuse, W3C.darkolivegreen, W3C.purple]
//w3cColorRamp.view
//
//let namedColorRamp: [Color] = [.black, .white, .brown, .cyan, .green]
//namedColorRamp.view
//
//import AppKit
//
Expand All @@ -157,11 +78,11 @@ test2.view
// let nsColors = self.map({ return $0.NSColor })
// var list = NSColorList(name: "")
// for (i, color) in self.enumerated() {
// list.insertColor(color.NSColor, key: color.rgbString, at: i)
// list.insertColor(color.NSColor, key: color.hexString, at: i)
// }
// return list
// }
//}
//
////namedColorRamp.nsColorList.
//
//namedColorRamp.nsColorList

Loading

0 comments on commit 094989b

Please sign in to comment.