├── .gitignore ├── .slather.yml ├── .swift-version ├── .travis.yml ├── CONTRIBUTING.md ├── Example └── FargeDemo │ ├── FargeDemo.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ └── FargeDemo.xcscheme │ ├── FargeDemo.xcworkspace │ └── contents.xcworkspacedata │ ├── FargeDemo │ ├── Base.lproj │ │ └── LaunchScreen.storyboard │ ├── Info.plist │ ├── Resources │ │ └── Assets.xcassets │ │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ └── Sources │ │ ├── AppDelegate.swift │ │ └── ViewController.swift │ ├── Podfile │ └── Podfile.lock ├── Farge.podspec ├── Farge.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ └── contents.xcworkspacedata └── xcshareddata │ └── xcschemes │ ├── Farge-Mac.xcscheme │ └── Farge-iOS.xcscheme ├── Farge ├── Info-Mac.plist └── Info-iOS.plist ├── FargeTests ├── Info-Mac.plist ├── Info-iOS.plist └── Tests.swift ├── LICENSE.md ├── Playground-Mac.playground ├── Contents.swift ├── contents.xcplayground └── timeline.xctimeline ├── Playground-iOS.playground ├── Contents.swift ├── contents.xcplayground └── timeline.xctimeline ├── README.md ├── Screenshots └── Banner.png ├── Sources ├── Converter.swift ├── Farge.swift ├── HSL.swift ├── List.swift ├── Parser.swift └── RGB.swift └── bin ├── bootstrap └── bootstrap-if-needed /.gitignore: -------------------------------------------------------------------------------- 1 | # OS X 2 | .DS_Store 3 | .AppleDouble 4 | .LSOverride 5 | Icon 6 | ._* 7 | .Spotlight-V100 8 | .Trashes 9 | 10 | # Xcode 11 | # 12 | build/ 13 | *.pbxuser 14 | !default.pbxuser 15 | *.mode1v3 16 | !default.mode1v3 17 | *.mode2v3 18 | !default.mode2v3 19 | *.perspectivev3 20 | !default.perspectivev3 21 | xcuserdata 22 | *.xccheckout 23 | *.moved-aside 24 | DerivedData 25 | *.hmap 26 | *.ipa 27 | *.xcuserstate 28 | 29 | # CocoaPods 30 | Pods 31 | 32 | # Carthage 33 | Carthage 34 | 35 | # SPM 36 | .build/ 37 | -------------------------------------------------------------------------------- /.slather.yml: -------------------------------------------------------------------------------- 1 | ci_service: travis_ci 2 | coverage_service: coveralls 3 | xcodeproj: Farge.xcodeproj 4 | source_directory: Sources 5 | -------------------------------------------------------------------------------- /.swift-version: -------------------------------------------------------------------------------- 1 | 3.0 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | osx_image: xcode8 2 | language: objective-c 3 | 4 | notifications: 5 | email: false 6 | 7 | cache: 8 | directories: 9 | - Carthage 10 | 11 | before_install: 12 | - brew update 13 | - if brew outdated | grep -qx xctool; then brew upgrade xctool; fi 14 | - if brew outdated | grep -qx carthage; then brew upgrade carthage; fi 15 | - travis_wait 35; bin/bootstrap-if-needed 16 | 17 | script: 18 | - xcodebuild clean build -project Farge.xcodeproj -scheme Farge-iOS -sdk iphonesimulator 19 | - xcodebuild test -project Farge.xcodeproj -scheme Farge-iOS -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6,OS=10.0' 20 | - xcodebuild clean build -project Farge.xcodeproj -scheme Farge-Mac -sdk macosx 21 | - xcodebuild test -project Farge.xcodeproj -scheme Farge-Mac -sdk macosx 22 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | GitHub Issues is for reporting bugs, discussing features and general feedback in **Farge**. Be sure to check our [documentation](http://cocoadocs.org/docsets/Farge), [FAQ](https://github.com/onmyway133/Farge/wiki/FAQ) and [past issues](https://github.com/onmyway133/Farge/issues?state=closed) before opening any new issues. 2 | 3 | If you are posting about a crash in your application, a stack trace is helpful, but additional context, in the form of code and explanation, is necessary to be of any use. 4 | -------------------------------------------------------------------------------- /Example/FargeDemo/FargeDemo.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | D5C7F74E1C3BC9CE008CDDBA /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D5C7F74C1C3BC9CE008CDDBA /* LaunchScreen.storyboard */; }; 11 | D5C7F75B1C3BCA1E008CDDBA /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D5C7F7571C3BCA1E008CDDBA /* Assets.xcassets */; }; 12 | D5C7F75C1C3BCA1E008CDDBA /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5C7F7591C3BCA1E008CDDBA /* AppDelegate.swift */; }; 13 | D5C7F75D1C3BCA1E008CDDBA /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5C7F75A1C3BCA1E008CDDBA /* ViewController.swift */; }; 14 | D96933A3760B69C5A82E173B /* Pods_FargeDemo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD5A3FD9BEAB78C02B0A1E04 /* Pods_FargeDemo.framework */; }; 15 | /* End PBXBuildFile section */ 16 | 17 | /* Begin PBXFileReference section */ 18 | 0ACA74F7D44EC3030C15EBBB /* Pods-FargeDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FargeDemo.debug.xcconfig"; path = "Pods/Target Support Files/Pods-FargeDemo/Pods-FargeDemo.debug.xcconfig"; sourceTree = ""; }; 19 | 301F3D031A43D671FD1F7421 /* Pods-FargeDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FargeDemo.release.xcconfig"; path = "Pods/Target Support Files/Pods-FargeDemo/Pods-FargeDemo.release.xcconfig"; sourceTree = ""; }; 20 | AD5A3FD9BEAB78C02B0A1E04 /* Pods_FargeDemo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_FargeDemo.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 21 | D5C7F7401C3BC9CE008CDDBA /* FargeDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FargeDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 22 | D5C7F74D1C3BC9CE008CDDBA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 23 | D5C7F74F1C3BC9CE008CDDBA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 24 | D5C7F7571C3BCA1E008CDDBA /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 25 | D5C7F7591C3BCA1E008CDDBA /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 26 | D5C7F75A1C3BCA1E008CDDBA /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 27 | /* End PBXFileReference section */ 28 | 29 | /* Begin PBXFrameworksBuildPhase section */ 30 | D5C7F73D1C3BC9CE008CDDBA /* Frameworks */ = { 31 | isa = PBXFrameworksBuildPhase; 32 | buildActionMask = 2147483647; 33 | files = ( 34 | D96933A3760B69C5A82E173B /* Pods_FargeDemo.framework in Frameworks */, 35 | ); 36 | runOnlyForDeploymentPostprocessing = 0; 37 | }; 38 | /* End PBXFrameworksBuildPhase section */ 39 | 40 | /* Begin PBXGroup section */ 41 | 09BA4721EB0F710025777E11 /* Pods */ = { 42 | isa = PBXGroup; 43 | children = ( 44 | 0ACA74F7D44EC3030C15EBBB /* Pods-FargeDemo.debug.xcconfig */, 45 | 301F3D031A43D671FD1F7421 /* Pods-FargeDemo.release.xcconfig */, 46 | ); 47 | name = Pods; 48 | sourceTree = ""; 49 | }; 50 | 4E96FEB81158AF4FCD06D8D4 /* Frameworks */ = { 51 | isa = PBXGroup; 52 | children = ( 53 | AD5A3FD9BEAB78C02B0A1E04 /* Pods_FargeDemo.framework */, 54 | ); 55 | name = Frameworks; 56 | sourceTree = ""; 57 | }; 58 | D5C7F7371C3BC9CE008CDDBA = { 59 | isa = PBXGroup; 60 | children = ( 61 | D5C7F7421C3BC9CE008CDDBA /* FargeDemo */, 62 | D5C7F7411C3BC9CE008CDDBA /* Products */, 63 | 09BA4721EB0F710025777E11 /* Pods */, 64 | 4E96FEB81158AF4FCD06D8D4 /* Frameworks */, 65 | ); 66 | sourceTree = ""; 67 | }; 68 | D5C7F7411C3BC9CE008CDDBA /* Products */ = { 69 | isa = PBXGroup; 70 | children = ( 71 | D5C7F7401C3BC9CE008CDDBA /* FargeDemo.app */, 72 | ); 73 | name = Products; 74 | sourceTree = ""; 75 | }; 76 | D5C7F7421C3BC9CE008CDDBA /* FargeDemo */ = { 77 | isa = PBXGroup; 78 | children = ( 79 | D5C7F7561C3BCA1E008CDDBA /* Resources */, 80 | D5C7F7581C3BCA1E008CDDBA /* Sources */, 81 | D5C7F7551C3BC9EA008CDDBA /* Supporting Files */, 82 | ); 83 | path = FargeDemo; 84 | sourceTree = ""; 85 | }; 86 | D5C7F7551C3BC9EA008CDDBA /* Supporting Files */ = { 87 | isa = PBXGroup; 88 | children = ( 89 | D5C7F74C1C3BC9CE008CDDBA /* LaunchScreen.storyboard */, 90 | D5C7F74F1C3BC9CE008CDDBA /* Info.plist */, 91 | ); 92 | name = "Supporting Files"; 93 | sourceTree = ""; 94 | }; 95 | D5C7F7561C3BCA1E008CDDBA /* Resources */ = { 96 | isa = PBXGroup; 97 | children = ( 98 | D5C7F7571C3BCA1E008CDDBA /* Assets.xcassets */, 99 | ); 100 | path = Resources; 101 | sourceTree = ""; 102 | }; 103 | D5C7F7581C3BCA1E008CDDBA /* Sources */ = { 104 | isa = PBXGroup; 105 | children = ( 106 | D5C7F7591C3BCA1E008CDDBA /* AppDelegate.swift */, 107 | D5C7F75A1C3BCA1E008CDDBA /* ViewController.swift */, 108 | ); 109 | path = Sources; 110 | sourceTree = ""; 111 | }; 112 | /* End PBXGroup section */ 113 | 114 | /* Begin PBXNativeTarget section */ 115 | D5C7F73F1C3BC9CE008CDDBA /* FargeDemo */ = { 116 | isa = PBXNativeTarget; 117 | buildConfigurationList = D5C7F7521C3BC9CE008CDDBA /* Build configuration list for PBXNativeTarget "FargeDemo" */; 118 | buildPhases = ( 119 | BDA2625A6295F5C7B1CB2E89 /* [CP] Check Pods Manifest.lock */, 120 | D5C7F73C1C3BC9CE008CDDBA /* Sources */, 121 | D5C7F73D1C3BC9CE008CDDBA /* Frameworks */, 122 | D5C7F73E1C3BC9CE008CDDBA /* Resources */, 123 | 8A5BE1BDB9A175FB382252FC /* [CP] Embed Pods Frameworks */, 124 | D1DD23CFD4058F7E35AC53A4 /* [CP] Copy Pods Resources */, 125 | ); 126 | buildRules = ( 127 | ); 128 | dependencies = ( 129 | ); 130 | name = FargeDemo; 131 | productName = FargeDemo; 132 | productReference = D5C7F7401C3BC9CE008CDDBA /* FargeDemo.app */; 133 | productType = "com.apple.product-type.application"; 134 | }; 135 | /* End PBXNativeTarget section */ 136 | 137 | /* Begin PBXProject section */ 138 | D5C7F7381C3BC9CE008CDDBA /* Project object */ = { 139 | isa = PBXProject; 140 | attributes = { 141 | LastSwiftUpdateCheck = 0720; 142 | LastUpgradeCheck = 0720; 143 | ORGANIZATIONNAME = "Hyper Interaktiv AS"; 144 | TargetAttributes = { 145 | D5C7F73F1C3BC9CE008CDDBA = { 146 | CreatedOnToolsVersion = 7.2; 147 | LastSwiftMigration = 0800; 148 | }; 149 | }; 150 | }; 151 | buildConfigurationList = D5C7F73B1C3BC9CE008CDDBA /* Build configuration list for PBXProject "FargeDemo" */; 152 | compatibilityVersion = "Xcode 3.2"; 153 | developmentRegion = English; 154 | hasScannedForEncodings = 0; 155 | knownRegions = ( 156 | en, 157 | Base, 158 | ); 159 | mainGroup = D5C7F7371C3BC9CE008CDDBA; 160 | productRefGroup = D5C7F7411C3BC9CE008CDDBA /* Products */; 161 | projectDirPath = ""; 162 | projectRoot = ""; 163 | targets = ( 164 | D5C7F73F1C3BC9CE008CDDBA /* FargeDemo */, 165 | ); 166 | }; 167 | /* End PBXProject section */ 168 | 169 | /* Begin PBXResourcesBuildPhase section */ 170 | D5C7F73E1C3BC9CE008CDDBA /* Resources */ = { 171 | isa = PBXResourcesBuildPhase; 172 | buildActionMask = 2147483647; 173 | files = ( 174 | D5C7F75B1C3BCA1E008CDDBA /* Assets.xcassets in Resources */, 175 | D5C7F74E1C3BC9CE008CDDBA /* LaunchScreen.storyboard in Resources */, 176 | ); 177 | runOnlyForDeploymentPostprocessing = 0; 178 | }; 179 | /* End PBXResourcesBuildPhase section */ 180 | 181 | /* Begin PBXShellScriptBuildPhase section */ 182 | 8A5BE1BDB9A175FB382252FC /* [CP] Embed Pods Frameworks */ = { 183 | isa = PBXShellScriptBuildPhase; 184 | buildActionMask = 2147483647; 185 | files = ( 186 | ); 187 | inputPaths = ( 188 | ); 189 | name = "[CP] Embed Pods Frameworks"; 190 | outputPaths = ( 191 | ); 192 | runOnlyForDeploymentPostprocessing = 0; 193 | shellPath = /bin/sh; 194 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FargeDemo/Pods-FargeDemo-frameworks.sh\"\n"; 195 | showEnvVarsInLog = 0; 196 | }; 197 | BDA2625A6295F5C7B1CB2E89 /* [CP] Check Pods Manifest.lock */ = { 198 | isa = PBXShellScriptBuildPhase; 199 | buildActionMask = 2147483647; 200 | files = ( 201 | ); 202 | inputPaths = ( 203 | ); 204 | name = "[CP] Check Pods Manifest.lock"; 205 | outputPaths = ( 206 | ); 207 | runOnlyForDeploymentPostprocessing = 0; 208 | shellPath = /bin/sh; 209 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; 210 | showEnvVarsInLog = 0; 211 | }; 212 | D1DD23CFD4058F7E35AC53A4 /* [CP] Copy Pods Resources */ = { 213 | isa = PBXShellScriptBuildPhase; 214 | buildActionMask = 2147483647; 215 | files = ( 216 | ); 217 | inputPaths = ( 218 | ); 219 | name = "[CP] Copy Pods Resources"; 220 | outputPaths = ( 221 | ); 222 | runOnlyForDeploymentPostprocessing = 0; 223 | shellPath = /bin/sh; 224 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FargeDemo/Pods-FargeDemo-resources.sh\"\n"; 225 | showEnvVarsInLog = 0; 226 | }; 227 | /* End PBXShellScriptBuildPhase section */ 228 | 229 | /* Begin PBXSourcesBuildPhase section */ 230 | D5C7F73C1C3BC9CE008CDDBA /* Sources */ = { 231 | isa = PBXSourcesBuildPhase; 232 | buildActionMask = 2147483647; 233 | files = ( 234 | D5C7F75D1C3BCA1E008CDDBA /* ViewController.swift in Sources */, 235 | D5C7F75C1C3BCA1E008CDDBA /* AppDelegate.swift in Sources */, 236 | ); 237 | runOnlyForDeploymentPostprocessing = 0; 238 | }; 239 | /* End PBXSourcesBuildPhase section */ 240 | 241 | /* Begin PBXVariantGroup section */ 242 | D5C7F74C1C3BC9CE008CDDBA /* LaunchScreen.storyboard */ = { 243 | isa = PBXVariantGroup; 244 | children = ( 245 | D5C7F74D1C3BC9CE008CDDBA /* Base */, 246 | ); 247 | name = LaunchScreen.storyboard; 248 | sourceTree = ""; 249 | }; 250 | /* End PBXVariantGroup section */ 251 | 252 | /* Begin XCBuildConfiguration section */ 253 | D5C7F7501C3BC9CE008CDDBA /* Debug */ = { 254 | isa = XCBuildConfiguration; 255 | buildSettings = { 256 | ALWAYS_SEARCH_USER_PATHS = NO; 257 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 258 | CLANG_CXX_LIBRARY = "libc++"; 259 | CLANG_ENABLE_MODULES = YES; 260 | CLANG_ENABLE_OBJC_ARC = YES; 261 | CLANG_WARN_BOOL_CONVERSION = YES; 262 | CLANG_WARN_CONSTANT_CONVERSION = YES; 263 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 264 | CLANG_WARN_EMPTY_BODY = YES; 265 | CLANG_WARN_ENUM_CONVERSION = YES; 266 | CLANG_WARN_INT_CONVERSION = YES; 267 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 268 | CLANG_WARN_UNREACHABLE_CODE = YES; 269 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 270 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 271 | COPY_PHASE_STRIP = NO; 272 | DEBUG_INFORMATION_FORMAT = dwarf; 273 | ENABLE_STRICT_OBJC_MSGSEND = YES; 274 | ENABLE_TESTABILITY = YES; 275 | GCC_C_LANGUAGE_STANDARD = gnu99; 276 | GCC_DYNAMIC_NO_PIC = NO; 277 | GCC_NO_COMMON_BLOCKS = YES; 278 | GCC_OPTIMIZATION_LEVEL = 0; 279 | GCC_PREPROCESSOR_DEFINITIONS = ( 280 | "DEBUG=1", 281 | "$(inherited)", 282 | ); 283 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 284 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 285 | GCC_WARN_UNDECLARED_SELECTOR = YES; 286 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 287 | GCC_WARN_UNUSED_FUNCTION = YES; 288 | GCC_WARN_UNUSED_VARIABLE = YES; 289 | IPHONEOS_DEPLOYMENT_TARGET = 9.2; 290 | MTL_ENABLE_DEBUG_INFO = YES; 291 | ONLY_ACTIVE_ARCH = YES; 292 | SDKROOT = iphoneos; 293 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 294 | }; 295 | name = Debug; 296 | }; 297 | D5C7F7511C3BC9CE008CDDBA /* Release */ = { 298 | isa = XCBuildConfiguration; 299 | buildSettings = { 300 | ALWAYS_SEARCH_USER_PATHS = NO; 301 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 302 | CLANG_CXX_LIBRARY = "libc++"; 303 | CLANG_ENABLE_MODULES = YES; 304 | CLANG_ENABLE_OBJC_ARC = YES; 305 | CLANG_WARN_BOOL_CONVERSION = YES; 306 | CLANG_WARN_CONSTANT_CONVERSION = YES; 307 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 308 | CLANG_WARN_EMPTY_BODY = YES; 309 | CLANG_WARN_ENUM_CONVERSION = YES; 310 | CLANG_WARN_INT_CONVERSION = YES; 311 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 312 | CLANG_WARN_UNREACHABLE_CODE = YES; 313 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 314 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 315 | COPY_PHASE_STRIP = NO; 316 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 317 | ENABLE_NS_ASSERTIONS = NO; 318 | ENABLE_STRICT_OBJC_MSGSEND = YES; 319 | GCC_C_LANGUAGE_STANDARD = gnu99; 320 | GCC_NO_COMMON_BLOCKS = YES; 321 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 322 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 323 | GCC_WARN_UNDECLARED_SELECTOR = YES; 324 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 325 | GCC_WARN_UNUSED_FUNCTION = YES; 326 | GCC_WARN_UNUSED_VARIABLE = YES; 327 | IPHONEOS_DEPLOYMENT_TARGET = 9.2; 328 | MTL_ENABLE_DEBUG_INFO = NO; 329 | SDKROOT = iphoneos; 330 | VALIDATE_PRODUCT = YES; 331 | }; 332 | name = Release; 333 | }; 334 | D5C7F7531C3BC9CE008CDDBA /* Debug */ = { 335 | isa = XCBuildConfiguration; 336 | baseConfigurationReference = 0ACA74F7D44EC3030C15EBBB /* Pods-FargeDemo.debug.xcconfig */; 337 | buildSettings = { 338 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 339 | INFOPLIST_FILE = FargeDemo/Info.plist; 340 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 341 | PRODUCT_BUNDLE_IDENTIFIER = com.fantageek.Farge.FargeDemo; 342 | PRODUCT_NAME = "$(TARGET_NAME)"; 343 | SWIFT_VERSION = 3.0; 344 | }; 345 | name = Debug; 346 | }; 347 | D5C7F7541C3BC9CE008CDDBA /* Release */ = { 348 | isa = XCBuildConfiguration; 349 | baseConfigurationReference = 301F3D031A43D671FD1F7421 /* Pods-FargeDemo.release.xcconfig */; 350 | buildSettings = { 351 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 352 | INFOPLIST_FILE = FargeDemo/Info.plist; 353 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 354 | PRODUCT_BUNDLE_IDENTIFIER = com.fantageek.Farge.FargeDemo; 355 | PRODUCT_NAME = "$(TARGET_NAME)"; 356 | SWIFT_VERSION = 3.0; 357 | }; 358 | name = Release; 359 | }; 360 | /* End XCBuildConfiguration section */ 361 | 362 | /* Begin XCConfigurationList section */ 363 | D5C7F73B1C3BC9CE008CDDBA /* Build configuration list for PBXProject "FargeDemo" */ = { 364 | isa = XCConfigurationList; 365 | buildConfigurations = ( 366 | D5C7F7501C3BC9CE008CDDBA /* Debug */, 367 | D5C7F7511C3BC9CE008CDDBA /* Release */, 368 | ); 369 | defaultConfigurationIsVisible = 0; 370 | defaultConfigurationName = Release; 371 | }; 372 | D5C7F7521C3BC9CE008CDDBA /* Build configuration list for PBXNativeTarget "FargeDemo" */ = { 373 | isa = XCConfigurationList; 374 | buildConfigurations = ( 375 | D5C7F7531C3BC9CE008CDDBA /* Debug */, 376 | D5C7F7541C3BC9CE008CDDBA /* Release */, 377 | ); 378 | defaultConfigurationIsVisible = 0; 379 | defaultConfigurationName = Release; 380 | }; 381 | /* End XCConfigurationList section */ 382 | }; 383 | rootObject = D5C7F7381C3BC9CE008CDDBA /* Project object */; 384 | } 385 | -------------------------------------------------------------------------------- /Example/FargeDemo/FargeDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/FargeDemo/FargeDemo.xcodeproj/xcshareddata/xcschemes/FargeDemo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 69 | 70 | 71 | 72 | 73 | 74 | 80 | 82 | 88 | 89 | 90 | 91 | 93 | 94 | 97 | 98 | 99 | -------------------------------------------------------------------------------- /Example/FargeDemo/FargeDemo.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/FargeDemo/FargeDemo/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Example/FargeDemo/FargeDemo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /Example/FargeDemo/FargeDemo/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Example/FargeDemo/FargeDemo/Sources/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Farge 3 | 4 | @UIApplicationMain 5 | class AppDelegate: UIResponder, UIApplicationDelegate { 6 | 7 | var window: UIWindow? 8 | 9 | lazy var navigationController: UINavigationController = { [unowned self] in 10 | let controller = UINavigationController(rootViewController: self.viewController) 11 | return controller 12 | }() 13 | 14 | lazy var viewController: ViewController = { 15 | let controller = ViewController() 16 | return controller 17 | }() 18 | 19 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 20 | window = UIWindow(frame: UIScreen.main.bounds) 21 | window?.rootViewController = navigationController 22 | window?.makeKeyAndVisible() 23 | 24 | return true 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Example/FargeDemo/FargeDemo/Sources/ViewController.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Farge 3 | 4 | class ViewController: UIViewController { 5 | 6 | override func viewDidLoad() { 7 | super.viewDidLoad() 8 | view.backgroundColor = UIColor.white 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /Example/FargeDemo/Podfile: -------------------------------------------------------------------------------- 1 | use_frameworks! 2 | 3 | platform :ios, '8.0' 4 | 5 | target 'FargeDemo' do 6 | pod 'Farge', path: '../../' 7 | end 8 | 9 | -------------------------------------------------------------------------------- /Example/FargeDemo/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Farge (0.1.0) 3 | 4 | DEPENDENCIES: 5 | - Farge (from `../../`) 6 | 7 | EXTERNAL SOURCES: 8 | Farge: 9 | :path: "../../" 10 | 11 | SPEC CHECKSUMS: 12 | Farge: db7cad37530ac5b0a238a20b2d8d623562802029 13 | 14 | PODFILE CHECKSUM: c8a4b5069be64fdbc9bc01b7e23ebb336c46a215 15 | 16 | COCOAPODS: 1.2.1 17 | -------------------------------------------------------------------------------- /Farge.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "Farge" 3 | s.summary = "Color in Swift" 4 | s.version = "0.1.0" 5 | s.homepage = "https://github.com/onmyway133/Farge" 6 | s.license = 'MIT' 7 | s.author = { "Khoa Pham" => "onmyway133@gmail.com" } 8 | s.source = { 9 | :git => "https://github.com/onmyway133/Farge.git", 10 | :tag => s.version.to_s 11 | } 12 | s.social_media_url = 'https://twitter.com/onmyway133' 13 | 14 | s.ios.deployment_target = '8.0' 15 | s.osx.deployment_target = '10.9' 16 | s.tvos.deployment_target = '9.2' 17 | 18 | s.requires_arc = true 19 | s.source_files = 'Sources/**/*' 20 | s.pod_target_xcconfig = { 'SWIFT_VERSION' => '3.0' } 21 | end 22 | -------------------------------------------------------------------------------- /Farge.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | D21A4B6B1EB149C700D20223 /* Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D21A4B6A1EB149C700D20223 /* Tests.swift */; }; 11 | D21A4B6C1EB149C700D20223 /* Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D21A4B6A1EB149C700D20223 /* Tests.swift */; }; 12 | D21A4B6E1EB14D3D00D20223 /* Converter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D21A4B6D1EB14D3D00D20223 /* Converter.swift */; }; 13 | D21A4B6F1EB14D3D00D20223 /* Converter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D21A4B6D1EB14D3D00D20223 /* Converter.swift */; }; 14 | D21A4B711EB1C13800D20223 /* RGB.swift in Sources */ = {isa = PBXBuildFile; fileRef = D21A4B701EB1C13800D20223 /* RGB.swift */; }; 15 | D21A4B721EB1C13800D20223 /* RGB.swift in Sources */ = {isa = PBXBuildFile; fileRef = D21A4B701EB1C13800D20223 /* RGB.swift */; }; 16 | D21A4B741EB1C13D00D20223 /* HSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = D21A4B731EB1C13D00D20223 /* HSL.swift */; }; 17 | D21A4B751EB1C13D00D20223 /* HSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = D21A4B731EB1C13D00D20223 /* HSL.swift */; }; 18 | D2967E631EB13FF70002E4B9 /* List.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2967E621EB13FF70002E4B9 /* List.swift */; }; 19 | D2967E641EB13FF70002E4B9 /* List.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2967E621EB13FF70002E4B9 /* List.swift */; }; 20 | D2967E661EB140050002E4B9 /* Parser.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2967E651EB140050002E4B9 /* Parser.swift */; }; 21 | D2967E671EB140050002E4B9 /* Parser.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2967E651EB140050002E4B9 /* Parser.swift */; }; 22 | D2967E691EB1414D0002E4B9 /* Farge.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2967E681EB1414D0002E4B9 /* Farge.swift */; }; 23 | D2967E6A1EB1414D0002E4B9 /* Farge.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2967E681EB1414D0002E4B9 /* Farge.swift */; }; 24 | D5B2E8AA1C3A780C00C0327D /* Farge.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5B2E89F1C3A780C00C0327D /* Farge.framework */; }; 25 | D5C6294A1C3A7FAA007F7B7C /* Farge.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5C629401C3A7FAA007F7B7C /* Farge.framework */; }; 26 | /* End PBXBuildFile section */ 27 | 28 | /* Begin PBXContainerItemProxy section */ 29 | D5B2E8AB1C3A780C00C0327D /* PBXContainerItemProxy */ = { 30 | isa = PBXContainerItemProxy; 31 | containerPortal = D5B2E8961C3A780C00C0327D /* Project object */; 32 | proxyType = 1; 33 | remoteGlobalIDString = D5B2E89E1C3A780C00C0327D; 34 | remoteInfo = Farge; 35 | }; 36 | D5C6294B1C3A7FAA007F7B7C /* PBXContainerItemProxy */ = { 37 | isa = PBXContainerItemProxy; 38 | containerPortal = D5B2E8961C3A780C00C0327D /* Project object */; 39 | proxyType = 1; 40 | remoteGlobalIDString = D5C6293F1C3A7FAA007F7B7C; 41 | remoteInfo = "Farge-Mac"; 42 | }; 43 | /* End PBXContainerItemProxy section */ 44 | 45 | /* Begin PBXFileReference section */ 46 | D21A4B6A1EB149C700D20223 /* Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Tests.swift; sourceTree = ""; }; 47 | D21A4B6D1EB14D3D00D20223 /* Converter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Converter.swift; sourceTree = ""; }; 48 | D21A4B701EB1C13800D20223 /* RGB.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RGB.swift; sourceTree = ""; }; 49 | D21A4B731EB1C13D00D20223 /* HSL.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HSL.swift; sourceTree = ""; }; 50 | D2967E621EB13FF70002E4B9 /* List.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = List.swift; sourceTree = ""; }; 51 | D2967E651EB140050002E4B9 /* Parser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Parser.swift; sourceTree = ""; }; 52 | D2967E681EB1414D0002E4B9 /* Farge.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Farge.swift; sourceTree = ""; }; 53 | D500FD111C3AABED00782D78 /* Playground-iOS.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = "Playground-iOS.playground"; sourceTree = ""; }; 54 | D500FD121C3AAC8E00782D78 /* Playground-Mac.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = "Playground-Mac.playground"; sourceTree = ""; }; 55 | D5B2E89F1C3A780C00C0327D /* Farge.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Farge.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 56 | D5B2E8A91C3A780C00C0327D /* Farge-iOS-Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Farge-iOS-Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 57 | D5C629401C3A7FAA007F7B7C /* Farge.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Farge.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 58 | D5C629491C3A7FAA007F7B7C /* Farge-Mac-Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Farge-Mac-Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 59 | D5C6298B1C3A8BBD007F7B7C /* Info-iOS.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-iOS.plist"; sourceTree = ""; }; 60 | D5C6298C1C3A8BBD007F7B7C /* Info-Mac.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-Mac.plist"; sourceTree = ""; }; 61 | D5C629901C3A8BDA007F7B7C /* Info-iOS.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-iOS.plist"; sourceTree = ""; }; 62 | D5C629911C3A8BDA007F7B7C /* Info-Mac.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-Mac.plist"; sourceTree = ""; }; 63 | /* End PBXFileReference section */ 64 | 65 | /* Begin PBXFrameworksBuildPhase section */ 66 | D5B2E89B1C3A780C00C0327D /* Frameworks */ = { 67 | isa = PBXFrameworksBuildPhase; 68 | buildActionMask = 2147483647; 69 | files = ( 70 | ); 71 | runOnlyForDeploymentPostprocessing = 0; 72 | }; 73 | D5B2E8A61C3A780C00C0327D /* Frameworks */ = { 74 | isa = PBXFrameworksBuildPhase; 75 | buildActionMask = 2147483647; 76 | files = ( 77 | D5B2E8AA1C3A780C00C0327D /* Farge.framework in Frameworks */, 78 | ); 79 | runOnlyForDeploymentPostprocessing = 0; 80 | }; 81 | D5C6293C1C3A7FAA007F7B7C /* Frameworks */ = { 82 | isa = PBXFrameworksBuildPhase; 83 | buildActionMask = 2147483647; 84 | files = ( 85 | ); 86 | runOnlyForDeploymentPostprocessing = 0; 87 | }; 88 | D5C629461C3A7FAA007F7B7C /* Frameworks */ = { 89 | isa = PBXFrameworksBuildPhase; 90 | buildActionMask = 2147483647; 91 | files = ( 92 | D5C6294A1C3A7FAA007F7B7C /* Farge.framework in Frameworks */, 93 | ); 94 | runOnlyForDeploymentPostprocessing = 0; 95 | }; 96 | /* End PBXFrameworksBuildPhase section */ 97 | 98 | /* Begin PBXGroup section */ 99 | D5B2E8951C3A780C00C0327D = { 100 | isa = PBXGroup; 101 | children = ( 102 | D500FD111C3AABED00782D78 /* Playground-iOS.playground */, 103 | D500FD121C3AAC8E00782D78 /* Playground-Mac.playground */, 104 | D5C629691C3A809D007F7B7C /* Sources */, 105 | D5C6295C1C3A800E007F7B7C /* Farge */, 106 | D5C6298F1C3A8BDA007F7B7C /* FargeTests */, 107 | D5B2E8A01C3A780C00C0327D /* Products */, 108 | ); 109 | sourceTree = ""; 110 | }; 111 | D5B2E8A01C3A780C00C0327D /* Products */ = { 112 | isa = PBXGroup; 113 | children = ( 114 | D5B2E89F1C3A780C00C0327D /* Farge.framework */, 115 | D5B2E8A91C3A780C00C0327D /* Farge-iOS-Tests.xctest */, 116 | D5C629401C3A7FAA007F7B7C /* Farge.framework */, 117 | D5C629491C3A7FAA007F7B7C /* Farge-Mac-Tests.xctest */, 118 | ); 119 | name = Products; 120 | sourceTree = ""; 121 | }; 122 | D5C6295C1C3A800E007F7B7C /* Farge */ = { 123 | isa = PBXGroup; 124 | children = ( 125 | D5C6298B1C3A8BBD007F7B7C /* Info-iOS.plist */, 126 | D5C6298C1C3A8BBD007F7B7C /* Info-Mac.plist */, 127 | ); 128 | path = Farge; 129 | sourceTree = ""; 130 | }; 131 | D5C629691C3A809D007F7B7C /* Sources */ = { 132 | isa = PBXGroup; 133 | children = ( 134 | D2967E621EB13FF70002E4B9 /* List.swift */, 135 | D2967E651EB140050002E4B9 /* Parser.swift */, 136 | D2967E681EB1414D0002E4B9 /* Farge.swift */, 137 | D21A4B6D1EB14D3D00D20223 /* Converter.swift */, 138 | D21A4B701EB1C13800D20223 /* RGB.swift */, 139 | D21A4B731EB1C13D00D20223 /* HSL.swift */, 140 | ); 141 | path = Sources; 142 | sourceTree = ""; 143 | }; 144 | D5C6298F1C3A8BDA007F7B7C /* FargeTests */ = { 145 | isa = PBXGroup; 146 | children = ( 147 | D5C629901C3A8BDA007F7B7C /* Info-iOS.plist */, 148 | D5C629911C3A8BDA007F7B7C /* Info-Mac.plist */, 149 | D21A4B6A1EB149C700D20223 /* Tests.swift */, 150 | ); 151 | path = FargeTests; 152 | sourceTree = ""; 153 | }; 154 | /* End PBXGroup section */ 155 | 156 | /* Begin PBXHeadersBuildPhase section */ 157 | D5B2E89C1C3A780C00C0327D /* Headers */ = { 158 | isa = PBXHeadersBuildPhase; 159 | buildActionMask = 2147483647; 160 | files = ( 161 | ); 162 | runOnlyForDeploymentPostprocessing = 0; 163 | }; 164 | D5C6293D1C3A7FAA007F7B7C /* Headers */ = { 165 | isa = PBXHeadersBuildPhase; 166 | buildActionMask = 2147483647; 167 | files = ( 168 | ); 169 | runOnlyForDeploymentPostprocessing = 0; 170 | }; 171 | /* End PBXHeadersBuildPhase section */ 172 | 173 | /* Begin PBXNativeTarget section */ 174 | D5B2E89E1C3A780C00C0327D /* Farge-iOS */ = { 175 | isa = PBXNativeTarget; 176 | buildConfigurationList = D5B2E8B31C3A780C00C0327D /* Build configuration list for PBXNativeTarget "Farge-iOS" */; 177 | buildPhases = ( 178 | D5B2E89A1C3A780C00C0327D /* Sources */, 179 | D5B2E89B1C3A780C00C0327D /* Frameworks */, 180 | D5B2E89C1C3A780C00C0327D /* Headers */, 181 | D5B2E89D1C3A780C00C0327D /* Resources */, 182 | ); 183 | buildRules = ( 184 | ); 185 | dependencies = ( 186 | ); 187 | name = "Farge-iOS"; 188 | productName = Farge; 189 | productReference = D5B2E89F1C3A780C00C0327D /* Farge.framework */; 190 | productType = "com.apple.product-type.framework"; 191 | }; 192 | D5B2E8A81C3A780C00C0327D /* Farge-iOS-Tests */ = { 193 | isa = PBXNativeTarget; 194 | buildConfigurationList = D5B2E8B61C3A780C00C0327D /* Build configuration list for PBXNativeTarget "Farge-iOS-Tests" */; 195 | buildPhases = ( 196 | D5B2E8A51C3A780C00C0327D /* Sources */, 197 | D5B2E8A61C3A780C00C0327D /* Frameworks */, 198 | D5B2E8A71C3A780C00C0327D /* Resources */, 199 | ); 200 | buildRules = ( 201 | ); 202 | dependencies = ( 203 | D5B2E8AC1C3A780C00C0327D /* PBXTargetDependency */, 204 | ); 205 | name = "Farge-iOS-Tests"; 206 | productName = FargeTests; 207 | productReference = D5B2E8A91C3A780C00C0327D /* Farge-iOS-Tests.xctest */; 208 | productType = "com.apple.product-type.bundle.unit-test"; 209 | }; 210 | D5C6293F1C3A7FAA007F7B7C /* Farge-Mac */ = { 211 | isa = PBXNativeTarget; 212 | buildConfigurationList = D5C629511C3A7FAA007F7B7C /* Build configuration list for PBXNativeTarget "Farge-Mac" */; 213 | buildPhases = ( 214 | D5C6293B1C3A7FAA007F7B7C /* Sources */, 215 | D5C6293C1C3A7FAA007F7B7C /* Frameworks */, 216 | D5C6293D1C3A7FAA007F7B7C /* Headers */, 217 | D5C6293E1C3A7FAA007F7B7C /* Resources */, 218 | ); 219 | buildRules = ( 220 | ); 221 | dependencies = ( 222 | ); 223 | name = "Farge-Mac"; 224 | productName = "Farge-Mac"; 225 | productReference = D5C629401C3A7FAA007F7B7C /* Farge.framework */; 226 | productType = "com.apple.product-type.framework"; 227 | }; 228 | D5C629481C3A7FAA007F7B7C /* Farge-Mac-Tests */ = { 229 | isa = PBXNativeTarget; 230 | buildConfigurationList = D5C629541C3A7FAA007F7B7C /* Build configuration list for PBXNativeTarget "Farge-Mac-Tests" */; 231 | buildPhases = ( 232 | D5C629451C3A7FAA007F7B7C /* Sources */, 233 | D5C629461C3A7FAA007F7B7C /* Frameworks */, 234 | D5C629471C3A7FAA007F7B7C /* Resources */, 235 | ); 236 | buildRules = ( 237 | ); 238 | dependencies = ( 239 | D5C6294C1C3A7FAA007F7B7C /* PBXTargetDependency */, 240 | ); 241 | name = "Farge-Mac-Tests"; 242 | productName = "Farge-MacTests"; 243 | productReference = D5C629491C3A7FAA007F7B7C /* Farge-Mac-Tests.xctest */; 244 | productType = "com.apple.product-type.bundle.unit-test"; 245 | }; 246 | /* End PBXNativeTarget section */ 247 | 248 | /* Begin PBXProject section */ 249 | D5B2E8961C3A780C00C0327D /* Project object */ = { 250 | isa = PBXProject; 251 | attributes = { 252 | LastSwiftUpdateCheck = 0720; 253 | LastUpgradeCheck = 0720; 254 | ORGANIZATIONNAME = "Khoa Pham"; 255 | TargetAttributes = { 256 | D5B2E89E1C3A780C00C0327D = { 257 | CreatedOnToolsVersion = 7.2; 258 | LastSwiftMigration = 0830; 259 | }; 260 | D5B2E8A81C3A780C00C0327D = { 261 | CreatedOnToolsVersion = 7.2; 262 | LastSwiftMigration = 0830; 263 | }; 264 | D5C6293F1C3A7FAA007F7B7C = { 265 | CreatedOnToolsVersion = 7.2; 266 | LastSwiftMigration = 0830; 267 | }; 268 | D5C629481C3A7FAA007F7B7C = { 269 | CreatedOnToolsVersion = 7.2; 270 | LastSwiftMigration = 0830; 271 | }; 272 | }; 273 | }; 274 | buildConfigurationList = D5B2E8991C3A780C00C0327D /* Build configuration list for PBXProject "Farge" */; 275 | compatibilityVersion = "Xcode 3.2"; 276 | developmentRegion = English; 277 | hasScannedForEncodings = 0; 278 | knownRegions = ( 279 | en, 280 | ); 281 | mainGroup = D5B2E8951C3A780C00C0327D; 282 | productRefGroup = D5B2E8A01C3A780C00C0327D /* Products */; 283 | projectDirPath = ""; 284 | projectRoot = ""; 285 | targets = ( 286 | D5B2E89E1C3A780C00C0327D /* Farge-iOS */, 287 | D5C6293F1C3A7FAA007F7B7C /* Farge-Mac */, 288 | D5B2E8A81C3A780C00C0327D /* Farge-iOS-Tests */, 289 | D5C629481C3A7FAA007F7B7C /* Farge-Mac-Tests */, 290 | ); 291 | }; 292 | /* End PBXProject section */ 293 | 294 | /* Begin PBXResourcesBuildPhase section */ 295 | D5B2E89D1C3A780C00C0327D /* Resources */ = { 296 | isa = PBXResourcesBuildPhase; 297 | buildActionMask = 2147483647; 298 | files = ( 299 | ); 300 | runOnlyForDeploymentPostprocessing = 0; 301 | }; 302 | D5B2E8A71C3A780C00C0327D /* Resources */ = { 303 | isa = PBXResourcesBuildPhase; 304 | buildActionMask = 2147483647; 305 | files = ( 306 | ); 307 | runOnlyForDeploymentPostprocessing = 0; 308 | }; 309 | D5C6293E1C3A7FAA007F7B7C /* Resources */ = { 310 | isa = PBXResourcesBuildPhase; 311 | buildActionMask = 2147483647; 312 | files = ( 313 | ); 314 | runOnlyForDeploymentPostprocessing = 0; 315 | }; 316 | D5C629471C3A7FAA007F7B7C /* Resources */ = { 317 | isa = PBXResourcesBuildPhase; 318 | buildActionMask = 2147483647; 319 | files = ( 320 | ); 321 | runOnlyForDeploymentPostprocessing = 0; 322 | }; 323 | /* End PBXResourcesBuildPhase section */ 324 | 325 | /* Begin PBXSourcesBuildPhase section */ 326 | D5B2E89A1C3A780C00C0327D /* Sources */ = { 327 | isa = PBXSourcesBuildPhase; 328 | buildActionMask = 2147483647; 329 | files = ( 330 | D21A4B711EB1C13800D20223 /* RGB.swift in Sources */, 331 | D2967E661EB140050002E4B9 /* Parser.swift in Sources */, 332 | D2967E691EB1414D0002E4B9 /* Farge.swift in Sources */, 333 | D21A4B741EB1C13D00D20223 /* HSL.swift in Sources */, 334 | D21A4B6E1EB14D3D00D20223 /* Converter.swift in Sources */, 335 | D2967E631EB13FF70002E4B9 /* List.swift in Sources */, 336 | ); 337 | runOnlyForDeploymentPostprocessing = 0; 338 | }; 339 | D5B2E8A51C3A780C00C0327D /* Sources */ = { 340 | isa = PBXSourcesBuildPhase; 341 | buildActionMask = 2147483647; 342 | files = ( 343 | D21A4B6B1EB149C700D20223 /* Tests.swift in Sources */, 344 | ); 345 | runOnlyForDeploymentPostprocessing = 0; 346 | }; 347 | D5C6293B1C3A7FAA007F7B7C /* Sources */ = { 348 | isa = PBXSourcesBuildPhase; 349 | buildActionMask = 2147483647; 350 | files = ( 351 | D21A4B721EB1C13800D20223 /* RGB.swift in Sources */, 352 | D2967E671EB140050002E4B9 /* Parser.swift in Sources */, 353 | D2967E6A1EB1414D0002E4B9 /* Farge.swift in Sources */, 354 | D21A4B751EB1C13D00D20223 /* HSL.swift in Sources */, 355 | D21A4B6F1EB14D3D00D20223 /* Converter.swift in Sources */, 356 | D2967E641EB13FF70002E4B9 /* List.swift in Sources */, 357 | ); 358 | runOnlyForDeploymentPostprocessing = 0; 359 | }; 360 | D5C629451C3A7FAA007F7B7C /* Sources */ = { 361 | isa = PBXSourcesBuildPhase; 362 | buildActionMask = 2147483647; 363 | files = ( 364 | D21A4B6C1EB149C700D20223 /* Tests.swift in Sources */, 365 | ); 366 | runOnlyForDeploymentPostprocessing = 0; 367 | }; 368 | /* End PBXSourcesBuildPhase section */ 369 | 370 | /* Begin PBXTargetDependency section */ 371 | D5B2E8AC1C3A780C00C0327D /* PBXTargetDependency */ = { 372 | isa = PBXTargetDependency; 373 | target = D5B2E89E1C3A780C00C0327D /* Farge-iOS */; 374 | targetProxy = D5B2E8AB1C3A780C00C0327D /* PBXContainerItemProxy */; 375 | }; 376 | D5C6294C1C3A7FAA007F7B7C /* PBXTargetDependency */ = { 377 | isa = PBXTargetDependency; 378 | target = D5C6293F1C3A7FAA007F7B7C /* Farge-Mac */; 379 | targetProxy = D5C6294B1C3A7FAA007F7B7C /* PBXContainerItemProxy */; 380 | }; 381 | /* End PBXTargetDependency section */ 382 | 383 | /* Begin XCBuildConfiguration section */ 384 | D5B2E8B11C3A780C00C0327D /* Debug */ = { 385 | isa = XCBuildConfiguration; 386 | buildSettings = { 387 | ALWAYS_SEARCH_USER_PATHS = NO; 388 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 389 | CLANG_CXX_LIBRARY = "libc++"; 390 | CLANG_ENABLE_MODULES = YES; 391 | CLANG_ENABLE_OBJC_ARC = YES; 392 | CLANG_WARN_BOOL_CONVERSION = YES; 393 | CLANG_WARN_CONSTANT_CONVERSION = YES; 394 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 395 | CLANG_WARN_EMPTY_BODY = YES; 396 | CLANG_WARN_ENUM_CONVERSION = YES; 397 | CLANG_WARN_INT_CONVERSION = YES; 398 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 399 | CLANG_WARN_UNREACHABLE_CODE = YES; 400 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 401 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 402 | COPY_PHASE_STRIP = NO; 403 | CURRENT_PROJECT_VERSION = 1; 404 | DEBUG_INFORMATION_FORMAT = dwarf; 405 | ENABLE_STRICT_OBJC_MSGSEND = YES; 406 | ENABLE_TESTABILITY = YES; 407 | GCC_C_LANGUAGE_STANDARD = gnu99; 408 | GCC_DYNAMIC_NO_PIC = NO; 409 | GCC_NO_COMMON_BLOCKS = YES; 410 | GCC_OPTIMIZATION_LEVEL = 0; 411 | GCC_PREPROCESSOR_DEFINITIONS = ( 412 | "DEBUG=1", 413 | "$(inherited)", 414 | ); 415 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 416 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 417 | GCC_WARN_UNDECLARED_SELECTOR = YES; 418 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 419 | GCC_WARN_UNUSED_FUNCTION = YES; 420 | GCC_WARN_UNUSED_VARIABLE = YES; 421 | IPHONEOS_DEPLOYMENT_TARGET = 9.2; 422 | MTL_ENABLE_DEBUG_INFO = YES; 423 | ONLY_ACTIVE_ARCH = YES; 424 | SDKROOT = iphoneos; 425 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 426 | SWIFT_VERSION = 3.0; 427 | TARGETED_DEVICE_FAMILY = "1,2"; 428 | VERSIONING_SYSTEM = "apple-generic"; 429 | VERSION_INFO_PREFIX = ""; 430 | }; 431 | name = Debug; 432 | }; 433 | D5B2E8B21C3A780C00C0327D /* Release */ = { 434 | isa = XCBuildConfiguration; 435 | buildSettings = { 436 | ALWAYS_SEARCH_USER_PATHS = NO; 437 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 438 | CLANG_CXX_LIBRARY = "libc++"; 439 | CLANG_ENABLE_MODULES = YES; 440 | CLANG_ENABLE_OBJC_ARC = YES; 441 | CLANG_WARN_BOOL_CONVERSION = YES; 442 | CLANG_WARN_CONSTANT_CONVERSION = YES; 443 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 444 | CLANG_WARN_EMPTY_BODY = YES; 445 | CLANG_WARN_ENUM_CONVERSION = YES; 446 | CLANG_WARN_INT_CONVERSION = YES; 447 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 448 | CLANG_WARN_UNREACHABLE_CODE = YES; 449 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 450 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 451 | COPY_PHASE_STRIP = NO; 452 | CURRENT_PROJECT_VERSION = 1; 453 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 454 | ENABLE_NS_ASSERTIONS = NO; 455 | ENABLE_STRICT_OBJC_MSGSEND = YES; 456 | GCC_C_LANGUAGE_STANDARD = gnu99; 457 | GCC_NO_COMMON_BLOCKS = YES; 458 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 459 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 460 | GCC_WARN_UNDECLARED_SELECTOR = YES; 461 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 462 | GCC_WARN_UNUSED_FUNCTION = YES; 463 | GCC_WARN_UNUSED_VARIABLE = YES; 464 | IPHONEOS_DEPLOYMENT_TARGET = 9.2; 465 | MTL_ENABLE_DEBUG_INFO = NO; 466 | SDKROOT = iphoneos; 467 | SWIFT_VERSION = 3.0; 468 | TARGETED_DEVICE_FAMILY = "1,2"; 469 | VALIDATE_PRODUCT = YES; 470 | VERSIONING_SYSTEM = "apple-generic"; 471 | VERSION_INFO_PREFIX = ""; 472 | }; 473 | name = Release; 474 | }; 475 | D5B2E8B41C3A780C00C0327D /* Debug */ = { 476 | isa = XCBuildConfiguration; 477 | buildSettings = { 478 | CLANG_ENABLE_MODULES = YES; 479 | DEFINES_MODULE = YES; 480 | DYLIB_COMPATIBILITY_VERSION = 1; 481 | DYLIB_CURRENT_VERSION = 1; 482 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 483 | INFOPLIST_FILE = "$(SRCROOT)/Farge/Info-iOS.plist"; 484 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 485 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 486 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 487 | PRODUCT_BUNDLE_IDENTIFIER = "com.fantageek.Farge.Farge-iOS"; 488 | PRODUCT_NAME = Farge; 489 | SKIP_INSTALL = YES; 490 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 491 | SWIFT_VERSION = 3.0; 492 | }; 493 | name = Debug; 494 | }; 495 | D5B2E8B51C3A780C00C0327D /* Release */ = { 496 | isa = XCBuildConfiguration; 497 | buildSettings = { 498 | CLANG_ENABLE_MODULES = YES; 499 | DEFINES_MODULE = YES; 500 | DYLIB_COMPATIBILITY_VERSION = 1; 501 | DYLIB_CURRENT_VERSION = 1; 502 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 503 | INFOPLIST_FILE = "$(SRCROOT)/Farge/Info-iOS.plist"; 504 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 505 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 506 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 507 | PRODUCT_BUNDLE_IDENTIFIER = "com.fantageek.Farge.Farge-iOS"; 508 | PRODUCT_NAME = Farge; 509 | SKIP_INSTALL = YES; 510 | SWIFT_VERSION = 3.0; 511 | }; 512 | name = Release; 513 | }; 514 | D5B2E8B71C3A780C00C0327D /* Debug */ = { 515 | isa = XCBuildConfiguration; 516 | buildSettings = { 517 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 518 | CLANG_ENABLE_MODULES = YES; 519 | FRAMEWORK_SEARCH_PATHS = ( 520 | "$(inherited)", 521 | "$(PROJECT_DIR)/Carthage/Build/iOS", 522 | ); 523 | INFOPLIST_FILE = "$(SRCROOT)/FargeTests/Info-iOS.plist"; 524 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 525 | PRODUCT_BUNDLE_IDENTIFIER = no.hyper.FargeTests; 526 | PRODUCT_NAME = "$(TARGET_NAME)"; 527 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 528 | SWIFT_VERSION = 3.0; 529 | }; 530 | name = Debug; 531 | }; 532 | D5B2E8B81C3A780C00C0327D /* Release */ = { 533 | isa = XCBuildConfiguration; 534 | buildSettings = { 535 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 536 | CLANG_ENABLE_MODULES = YES; 537 | FRAMEWORK_SEARCH_PATHS = ( 538 | "$(inherited)", 539 | "$(PROJECT_DIR)/Carthage/Build/iOS", 540 | ); 541 | INFOPLIST_FILE = "$(SRCROOT)/FargeTests/Info-iOS.plist"; 542 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 543 | PRODUCT_BUNDLE_IDENTIFIER = no.hyper.FargeTests; 544 | PRODUCT_NAME = "$(TARGET_NAME)"; 545 | SWIFT_VERSION = 3.0; 546 | }; 547 | name = Release; 548 | }; 549 | D5C629521C3A7FAA007F7B7C /* Debug */ = { 550 | isa = XCBuildConfiguration; 551 | buildSettings = { 552 | CLANG_ENABLE_MODULES = YES; 553 | CODE_SIGN_IDENTITY = "-"; 554 | COMBINE_HIDPI_IMAGES = YES; 555 | DEFINES_MODULE = YES; 556 | DYLIB_COMPATIBILITY_VERSION = 1; 557 | DYLIB_CURRENT_VERSION = 1; 558 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 559 | FRAMEWORK_VERSION = A; 560 | INFOPLIST_FILE = "$(SRCROOT)/Farge/Info-Mac.plist"; 561 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 562 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; 563 | MACOSX_DEPLOYMENT_TARGET = 10.9; 564 | PRODUCT_BUNDLE_IDENTIFIER = "com.fantageek.Farge.Farge-Mac"; 565 | PRODUCT_NAME = Farge; 566 | SDKROOT = macosx; 567 | SKIP_INSTALL = YES; 568 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 569 | SWIFT_VERSION = 3.0; 570 | }; 571 | name = Debug; 572 | }; 573 | D5C629531C3A7FAA007F7B7C /* Release */ = { 574 | isa = XCBuildConfiguration; 575 | buildSettings = { 576 | CLANG_ENABLE_MODULES = YES; 577 | CODE_SIGN_IDENTITY = "-"; 578 | COMBINE_HIDPI_IMAGES = YES; 579 | DEFINES_MODULE = YES; 580 | DYLIB_COMPATIBILITY_VERSION = 1; 581 | DYLIB_CURRENT_VERSION = 1; 582 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 583 | FRAMEWORK_VERSION = A; 584 | INFOPLIST_FILE = "$(SRCROOT)/Farge/Info-Mac.plist"; 585 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 586 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; 587 | MACOSX_DEPLOYMENT_TARGET = 10.9; 588 | PRODUCT_BUNDLE_IDENTIFIER = "com.fantageek.Farge.Farge-Mac"; 589 | PRODUCT_NAME = Farge; 590 | SDKROOT = macosx; 591 | SKIP_INSTALL = YES; 592 | SWIFT_VERSION = 3.0; 593 | }; 594 | name = Release; 595 | }; 596 | D5C629551C3A7FAA007F7B7C /* Debug */ = { 597 | isa = XCBuildConfiguration; 598 | buildSettings = { 599 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 600 | CLANG_ENABLE_MODULES = YES; 601 | CODE_SIGN_IDENTITY = "-"; 602 | COMBINE_HIDPI_IMAGES = YES; 603 | FRAMEWORK_SEARCH_PATHS = ( 604 | "$(inherited)", 605 | "$(PROJECT_DIR)/Carthage/Build/Mac", 606 | ); 607 | INFOPLIST_FILE = "$(SRCROOT)/FargeTests/Info-Mac.plist"; 608 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; 609 | MACOSX_DEPLOYMENT_TARGET = 10.11; 610 | PRODUCT_BUNDLE_IDENTIFIER = "no.hyper.Farge-MacTests"; 611 | PRODUCT_NAME = "$(TARGET_NAME)"; 612 | SDKROOT = macosx; 613 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 614 | SWIFT_VERSION = 3.0; 615 | }; 616 | name = Debug; 617 | }; 618 | D5C629561C3A7FAA007F7B7C /* Release */ = { 619 | isa = XCBuildConfiguration; 620 | buildSettings = { 621 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 622 | CLANG_ENABLE_MODULES = YES; 623 | CODE_SIGN_IDENTITY = "-"; 624 | COMBINE_HIDPI_IMAGES = YES; 625 | FRAMEWORK_SEARCH_PATHS = ( 626 | "$(inherited)", 627 | "$(PROJECT_DIR)/Carthage/Build/Mac", 628 | ); 629 | INFOPLIST_FILE = "$(SRCROOT)/FargeTests/Info-Mac.plist"; 630 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; 631 | MACOSX_DEPLOYMENT_TARGET = 10.11; 632 | PRODUCT_BUNDLE_IDENTIFIER = "no.hyper.Farge-MacTests"; 633 | PRODUCT_NAME = "$(TARGET_NAME)"; 634 | SDKROOT = macosx; 635 | SWIFT_VERSION = 3.0; 636 | }; 637 | name = Release; 638 | }; 639 | /* End XCBuildConfiguration section */ 640 | 641 | /* Begin XCConfigurationList section */ 642 | D5B2E8991C3A780C00C0327D /* Build configuration list for PBXProject "Farge" */ = { 643 | isa = XCConfigurationList; 644 | buildConfigurations = ( 645 | D5B2E8B11C3A780C00C0327D /* Debug */, 646 | D5B2E8B21C3A780C00C0327D /* Release */, 647 | ); 648 | defaultConfigurationIsVisible = 0; 649 | defaultConfigurationName = Release; 650 | }; 651 | D5B2E8B31C3A780C00C0327D /* Build configuration list for PBXNativeTarget "Farge-iOS" */ = { 652 | isa = XCConfigurationList; 653 | buildConfigurations = ( 654 | D5B2E8B41C3A780C00C0327D /* Debug */, 655 | D5B2E8B51C3A780C00C0327D /* Release */, 656 | ); 657 | defaultConfigurationIsVisible = 0; 658 | defaultConfigurationName = Release; 659 | }; 660 | D5B2E8B61C3A780C00C0327D /* Build configuration list for PBXNativeTarget "Farge-iOS-Tests" */ = { 661 | isa = XCConfigurationList; 662 | buildConfigurations = ( 663 | D5B2E8B71C3A780C00C0327D /* Debug */, 664 | D5B2E8B81C3A780C00C0327D /* Release */, 665 | ); 666 | defaultConfigurationIsVisible = 0; 667 | defaultConfigurationName = Release; 668 | }; 669 | D5C629511C3A7FAA007F7B7C /* Build configuration list for PBXNativeTarget "Farge-Mac" */ = { 670 | isa = XCConfigurationList; 671 | buildConfigurations = ( 672 | D5C629521C3A7FAA007F7B7C /* Debug */, 673 | D5C629531C3A7FAA007F7B7C /* Release */, 674 | ); 675 | defaultConfigurationIsVisible = 0; 676 | defaultConfigurationName = Release; 677 | }; 678 | D5C629541C3A7FAA007F7B7C /* Build configuration list for PBXNativeTarget "Farge-Mac-Tests" */ = { 679 | isa = XCConfigurationList; 680 | buildConfigurations = ( 681 | D5C629551C3A7FAA007F7B7C /* Debug */, 682 | D5C629561C3A7FAA007F7B7C /* Release */, 683 | ); 684 | defaultConfigurationIsVisible = 0; 685 | defaultConfigurationName = Release; 686 | }; 687 | /* End XCConfigurationList section */ 688 | }; 689 | rootObject = D5B2E8961C3A780C00C0327D /* Project object */; 690 | } 691 | -------------------------------------------------------------------------------- /Farge.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Farge.xcodeproj/xcshareddata/xcschemes/Farge-Mac.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 49 | 50 | 51 | 52 | 53 | 54 | 64 | 65 | 71 | 72 | 73 | 74 | 75 | 76 | 82 | 83 | 89 | 90 | 91 | 92 | 94 | 95 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /Farge.xcodeproj/xcshareddata/xcschemes/Farge-iOS.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 49 | 50 | 51 | 52 | 53 | 54 | 64 | 65 | 71 | 72 | 73 | 74 | 75 | 76 | 82 | 83 | 89 | 90 | 91 | 92 | 94 | 95 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /Farge/Info-Mac.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | NSHumanReadableCopyright 24 | Copyright © 2016 Hyper Interaktiv AS. All rights reserved. 25 | NSPrincipalClass 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Farge/Info-iOS.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /FargeTests/Info-Mac.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /FargeTests/Info-iOS.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /FargeTests/Tests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | @testable import Farge 3 | 4 | class Tests: XCTestCase { 5 | 6 | func testRGB() { 7 | XCTAssertEqual(Converter().rgb(hex: "FFFFFF"), RGB(r: 255, g: 255, b: 255)) 8 | XCTAssertEqual(Converter().rgb(hex: "FF69B4"), RGB(r: 255, g: 105, b: 180)) 9 | XCTAssertEqual(Converter().rgb(hex: "DEB887"), RGB(r: 222, g: 184, b: 135)) 10 | } 11 | 12 | func testHSL1() { 13 | let rgb = RGB(r: 255, g: 255, b: 255) 14 | XCTAssertEqual(Converter().hsl(rgb: rgb), HSL(h: 0, s: 0, l: 100)) 15 | } 16 | 17 | func testHSL2() { 18 | let rgb = RGB(r: 255, g: 255, b: 0) 19 | XCTAssertEqual(Converter().hsl(rgb: rgb), HSL(h: 60, s: 100, l: 50)) 20 | } 21 | 22 | func testHSL3() { 23 | let rgb = RGB(r: 174, g: 62, b: 113) 24 | XCTAssertEqual(Converter().hsl(rgb: rgb), HSL(h: 332, s: 47, l: 46)) 25 | } 26 | 27 | func testParser() { 28 | XCTAssertEqual(Parser().parse(hex: "000000"), "Black") 29 | XCTAssertEqual(Parser().parse(hex: "FFFFFF"), "White") 30 | XCTAssertEqual(Parser().parse(hex: "FF0000"), "Red") 31 | XCTAssertEqual(Parser().parse(hex: "004816"), "Crusoe") 32 | XCTAssertEqual(Parser().parse(hex: "FFFEFD"), "Romance") 33 | XCTAssertEqual(Parser().parse(hex: "6195ED"), "Cornflower Blue") 34 | XCTAssertEqual(Parser().parse(hex: "ABCDEF"), "Spindle") 35 | XCTAssertEqual(Parser().parse(hex: "#EDA761"), "Porsche") 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Licensed under the **MIT** license 2 | 3 | > Copyright (c) 2015 Khoa Pham 4 | > 5 | > Permission is hereby granted, free of charge, to any person obtaining 6 | > a copy of this software and associated documentation files (the 7 | > "Software"), to deal in the Software without restriction, including 8 | > without limitation the rights to use, copy, modify, merge, publish, 9 | > distribute, sublicense, and/or sell copies of the Software, and to 10 | > permit persons to whom the Software is furnished to do so, subject to 11 | > the following conditions: 12 | > 13 | > The above copyright notice and this permission notice shall be 14 | > included in all copies or substantial portions of the Software. 15 | > 16 | > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | > EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | > MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | > IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /Playground-Mac.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | // Farge Mac Playground 2 | 3 | import Cocoa 4 | import Farge 5 | 6 | var str = "Hello, playground" 7 | -------------------------------------------------------------------------------- /Playground-Mac.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Playground-Mac.playground/timeline.xctimeline: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Playground-iOS.playground/Contents.swift: -------------------------------------------------------------------------------- 1 | // Farge iOS Playground 2 | 3 | import UIKit 4 | import Farge 5 | 6 | var str = "Hello, playground" 7 | -------------------------------------------------------------------------------- /Playground-iOS.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Playground-iOS.playground/timeline.xctimeline: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Farge 2 | 3 | ❤️ Support my app ❤️ 4 | 5 | - [Push Hero - pure Swift native macOS application to test push notifications](https://www.producthunt.com/posts/push-hero-2) 6 | - [PastePal - Pasteboard, note and shortcut manager](https://www.producthunt.com/posts/pastepal) 7 | - [Frame recorder - Recorder gif and video with frame](https://www.producthunt.com/posts/frame-recorder) 8 | - [Alias - App and file shortcut manager](https://www.producthunt.com/posts/alias-shortcut-manager) 9 | - [Other apps](https://onmyway133.github.io/projects/) 10 | 11 | ❤️❤️😇😍🤘❤️❤️ 12 | 13 | [![CI Status](http://img.shields.io/travis/onmyway133/Farge.svg?style=flat)](https://travis-ci.org/onmyway133/Farge) 14 | [![Version](https://img.shields.io/cocoapods/v/Farge.svg?style=flat)](http://cocoadocs.org/docsets/Farge) 15 | [![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) 16 | [![License](https://img.shields.io/cocoapods/l/Farge.svg?style=flat)](http://cocoadocs.org/docsets/Farge) 17 | [![Platform](https://img.shields.io/cocoapods/p/Farge.svg?style=flat)](http://cocoadocs.org/docsets/Farge) 18 | ![Swift](https://img.shields.io/badge/%20in-swift%203.0-orange.svg) 19 | 20 | ![](Screenshots/Banner.png) 21 | 22 | ## Usage 23 | 24 | ```swift 25 | Farge.name(hex: "FFFEFD") // Romance 26 | Farge.name(hex: "6195ED") // Cornflower Blue 27 | Farge.name(hex: "EDA761") // Porsche 28 | ``` 29 | 30 | ## Installation 31 | 32 | **Farge** is available through [CocoaPods](http://cocoapods.org). To install 33 | it, simply add the following line to your Podfile: 34 | 35 | ```ruby 36 | pod 'Farge' 37 | ``` 38 | 39 | **Farge** is also available through [Carthage](https://github.com/Carthage/Carthage). 40 | To install just write into your Cartfile: 41 | 42 | ```ruby 43 | github "onmyway133/Farge" 44 | ``` 45 | 46 | **Farge** can also be installed manually. Just download and drop `Sources` folders in your project. 47 | 48 | ## Author 49 | 50 | Khoa Pham, onmyway133@gmail.com 51 | 52 | ## Credit 53 | 54 | Credit goes to http://chir.ag/projects/name-that-color 55 | 56 | ## Contributing 57 | 58 | We would love you to contribute to **Farge**, check the [CONTRIBUTING](https://github.com/onmyway133/Farge/blob/master/CONTRIBUTING.md) file for more info. 59 | 60 | ## License 61 | 62 | **Farge** is available under the MIT license. See the [LICENSE](https://github.com/onmyway133/Farge/blob/master/LICENSE.md) file for more info. 63 | -------------------------------------------------------------------------------- /Screenshots/Banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/onmyway133/Farge/f04fbb088cc97afd81b8deb6152f816d6861532b/Screenshots/Banner.png -------------------------------------------------------------------------------- /Sources/Converter.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | struct Converter { 4 | 5 | func hsl(hex: String) -> HSL { 6 | return hsl(rgb: rgb(hex: hex)) 7 | } 8 | 9 | func rgb(hex: String) -> RGB { 10 | let r = decimal(string: hex, from: 0, length: 2) 11 | let g = decimal(string: hex, from: 2, length: 2) 12 | let b = decimal(string: hex, from: 4, length: 2) 13 | 14 | return RGB(r: r, g: g, b: b) 15 | } 16 | 17 | func hsl(rgb: RGB) -> HSL { 18 | let r = rgb.r / 255 19 | let g = rgb.g / 255 20 | let b = rgb.b / 255 21 | let max = self.max(r, g, b) 22 | let min = self.min(r, g, b) 23 | var h: Float = 0 24 | var s: Float = 0 25 | let l: Float = (max + min) / 2 26 | 27 | if (max == min) { 28 | // achromatic 29 | h = 0 30 | s = 0 31 | } else { 32 | let d = max - min 33 | s = l > 0.5 ? d / (2 - max - min) : d / (max + min) 34 | switch max { 35 | case r: 36 | h = (g - b) / d + (g < b ? 6 : 0) 37 | case g: 38 | h = (b - r) / d + 2 39 | case b: 40 | h = (r - g) / d + 4 41 | default: 42 | break 43 | } 44 | 45 | h = h / 6 46 | } 47 | 48 | return HSL(h: floor(h * 360), s: floor(s * 100), l: floor(l * 100)) 49 | } 50 | 51 | // MARK: - Helper 52 | 53 | func decimal(string: String, from: Int, length: Int) -> Float { 54 | let start = string.index(string.startIndex, offsetBy: from) 55 | let end = string.index(start, offsetBy: length) 56 | let range = Range(uncheckedBounds: (start, end)) 57 | let substring = string.substring(with: range) 58 | let value = UInt8(substring, radix: 16) ?? 0 59 | return Float(value) 60 | } 61 | 62 | func max(_ a: Float, _ b: Float, _ c: Float) -> Float { 63 | return Swift.max(Swift.max(a, b), c) 64 | } 65 | 66 | func min(_ a: Float, _ b: Float, _ c: Float) -> Float { 67 | return Swift.min(Swift.min(a, b), c) 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /Sources/Farge.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | /// Returns name for hex color 4 | /// 5 | /// - Parameter hex: Can include #, must contain 6 digits 6 | /// - Returns: name 7 | public func name(hex: String) -> String? { 8 | return Parser().parse(hex: hex) 9 | } 10 | -------------------------------------------------------------------------------- /Sources/HSL.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | struct HSL: Equatable { 4 | let h: Float 5 | let s: Float 6 | let l: Float 7 | } 8 | 9 | func == (lhs: HSL, rhs: HSL) -> Bool { 10 | return lhs.h == rhs.h 11 | && lhs.s == rhs.s 12 | && lhs.l == rhs.l 13 | } 14 | -------------------------------------------------------------------------------- /Sources/List.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | // http://chir.ag/projects/ntc/ntc.js 4 | let mapping = [ 5 | "000000": "Black", 6 | "000080": "Navy Blue", 7 | "0000C8": "Dark Blue", 8 | "0000FF": "Blue", 9 | "000741": "Stratos", 10 | "001B1C": "Swamp", 11 | "002387": "Resolution Blue", 12 | "002900": "Deep Fir", 13 | "002E20": "Burnham", 14 | "002FA7": "International Klein Blue", 15 | "003153": "Prussian Blue", 16 | "003366": "Midnight Blue", 17 | "003399": "Smalt", 18 | "003532": "Deep Teal", 19 | "003E40": "Cyprus", 20 | "004620": "Kaitoke Green", 21 | "0047AB": "Cobalt", 22 | "004816": "Crusoe", 23 | "004950": "Sherpa Blue", 24 | "0056A7": "Endeavour", 25 | "00581A": "Camarone", 26 | "0066CC": "Science Blue", 27 | "0066FF": "Blue Ribbon", 28 | "00755E": "Tropical Rain Forest", 29 | "0076A3": "Allports", 30 | "007BA7": "Deep Cerulean", 31 | "007EC7": "Lochmara", 32 | "007FFF": "Azure Radiance", 33 | "008080": "Teal", 34 | "0095B6": "Bondi Blue", 35 | "009DC4": "Pacific Blue", 36 | "00A693": "Persian Green", 37 | "00A86B": "Jade", 38 | "00CC99": "Caribbean Green", 39 | "00CCCC": "Robin's Egg Blue", 40 | "00FF00": "Green", 41 | "00FF7F": "Spring Green", 42 | "00FFFF": "Cyan / Aqua", 43 | "010D1A": "Blue Charcoal", 44 | "011635": "Midnight", 45 | "011D13": "Holly", 46 | "012731": "Daintree", 47 | "01361C": "Cardin Green", 48 | "01371A": "County Green", 49 | "013E62": "Astronaut Blue", 50 | "013F6A": "Regal Blue", 51 | "014B43": "Aqua Deep", 52 | "015E85": "Orient", 53 | "016162": "Blue Stone", 54 | "016D39": "Fun Green", 55 | "01796F": "Pine Green", 56 | "017987": "Blue Lagoon", 57 | "01826B": "Deep Sea", 58 | "01A368": "Green Haze", 59 | "022D15": "English Holly", 60 | "02402C": "Sherwood Green", 61 | "02478E": "Congress Blue", 62 | "024E46": "Evening Sea", 63 | "026395": "Bahama Blue", 64 | "02866F": "Observatory", 65 | "02A4D3": "Cerulean", 66 | "03163C": "Tangaroa", 67 | "032B52": "Green Vogue", 68 | "036A6E": "Mosque", 69 | "041004": "Midnight Moss", 70 | "041322": "Black Pearl", 71 | "042E4C": "Blue Whale", 72 | "044022": "Zuccini", 73 | "044259": "Teal Blue", 74 | "051040": "Deep Cove", 75 | "051657": "Gulf Blue", 76 | "055989": "Venice Blue", 77 | "056F57": "Watercourse", 78 | "062A78": "Catalina Blue", 79 | "063537": "Tiber", 80 | "069B81": "Gossamer", 81 | "06A189": "Niagara", 82 | "073A50": "Tarawera", 83 | "080110": "Jaguar", 84 | "081910": "Black Bean", 85 | "082567": "Deep Sapphire", 86 | "088370": "Elf Green", 87 | "08E8DE": "Bright Turquoise", 88 | "092256": "Downriver", 89 | "09230F": "Palm Green", 90 | "09255D": "Madison", 91 | "093624": "Bottle Green", 92 | "095859": "Deep Sea Green", 93 | "097F4B": "Salem", 94 | "0A001C": "Black Russian", 95 | "0A480D": "Dark Fern", 96 | "0A6906": "Japanese Laurel", 97 | "0A6F75": "Atoll", 98 | "0B0B0B": "Cod Gray", 99 | "0B0F08": "Marshland", 100 | "0B1107": "Gordons Green", 101 | "0B1304": "Black Forest", 102 | "0B6207": "San Felix", 103 | "0BDA51": "Malachite", 104 | "0C0B1D": "Ebony", 105 | "0C0D0F": "Woodsmoke", 106 | "0C1911": "Racing Green", 107 | "0C7A79": "Surfie Green", 108 | "0C8990": "Blue Chill", 109 | "0D0332": "Black Rock", 110 | "0D1117": "Bunker", 111 | "0D1C19": "Aztec", 112 | "0D2E1C": "Bush", 113 | "0E0E18": "Cinder", 114 | "0E2A30": "Firefly", 115 | "0F2D9E": "Torea Bay", 116 | "10121D": "Vulcan", 117 | "101405": "Green Waterloo", 118 | "105852": "Eden", 119 | "110C6C": "Arapawa", 120 | "120A8F": "Ultramarine", 121 | "123447": "Elephant", 122 | "126B40": "Jewel", 123 | "130000": "Diesel", 124 | "130A06": "Asphalt", 125 | "13264D": "Blue Zodiac", 126 | "134F19": "Parsley", 127 | "140600": "Nero", 128 | "1450AA": "Tory Blue", 129 | "151F4C": "Bunting", 130 | "1560BD": "Denim", 131 | "15736B": "Genoa", 132 | "161928": "Mirage", 133 | "161D10": "Hunter Green", 134 | "162A40": "Big Stone", 135 | "163222": "Celtic", 136 | "16322C": "Timber Green", 137 | "163531": "Gable Green", 138 | "171F04": "Pine Tree", 139 | "175579": "Chathams Blue", 140 | "182D09": "Deep Forest Green", 141 | "18587A": "Blumine", 142 | "19330E": "Palm Leaf", 143 | "193751": "Nile Blue", 144 | "1959A8": "Fun Blue", 145 | "1A1A68": "Lucky Point", 146 | "1AB385": "Mountain Meadow", 147 | "1B0245": "Tolopea", 148 | "1B1035": "Haiti", 149 | "1B127B": "Deep Koamaru", 150 | "1B1404": "Acadia", 151 | "1B2F11": "Seaweed", 152 | "1B3162": "Biscay", 153 | "1B659D": "Matisse", 154 | "1C1208": "Crowshead", 155 | "1C1E13": "Rangoon Green", 156 | "1C39BB": "Persian Blue", 157 | "1C402E": "Everglade", 158 | "1C7C7D": "Elm", 159 | "1D6142": "Green Pea", 160 | "1E0F04": "Creole", 161 | "1E1609": "Karaka", 162 | "1E1708": "El Paso", 163 | "1E385B": "Cello", 164 | "1E433C": "Te Papa Green", 165 | "1E90FF": "Dodger Blue", 166 | "1E9AB0": "Eastern Blue", 167 | "1F120F": "Night Rider", 168 | "1FC2C2": "Java", 169 | "20208D": "Jacksons Purple", 170 | "202E54": "Cloud Burst", 171 | "204852": "Blue Dianne", 172 | "211A0E": "Eternity", 173 | "220878": "Deep Blue", 174 | "228B22": "Forest Green", 175 | "233418": "Mallard", 176 | "240A40": "Violet", 177 | "240C02": "Kilamanjaro", 178 | "242A1D": "Log Cabin", 179 | "242E16": "Black Olive", 180 | "24500F": "Green House", 181 | "251607": "Graphite", 182 | "251706": "Cannon Black", 183 | "251F4F": "Port Gore", 184 | "25272C": "Shark", 185 | "25311C": "Green Kelp", 186 | "2596D1": "Curious Blue", 187 | "260368": "Paua", 188 | "26056A": "Paris M", 189 | "261105": "Wood Bark", 190 | "261414": "Gondola", 191 | "262335": "Steel Gray", 192 | "26283B": "Ebony Clay", 193 | "273A81": "Bay of Many", 194 | "27504B": "Plantation", 195 | "278A5B": "Eucalyptus", 196 | "281E15": "Oil", 197 | "283A77": "Astronaut", 198 | "286ACD": "Mariner", 199 | "290C5E": "Violent Violet", 200 | "292130": "Bastille", 201 | "292319": "Zeus", 202 | "292937": "Charade", 203 | "297B9A": "Jelly Bean", 204 | "29AB87": "Jungle Green", 205 | "2A0359": "Cherry Pie", 206 | "2A140E": "Coffee Bean", 207 | "2A2630": "Baltic Sea", 208 | "2A380B": "Turtle Green", 209 | "2A52BE": "Cerulean Blue", 210 | "2B0202": "Sepia Black", 211 | "2B194F": "Valhalla", 212 | "2B3228": "Heavy Metal", 213 | "2C0E8C": "Blue Gem", 214 | "2C1632": "Revolver", 215 | "2C2133": "Bleached Cedar", 216 | "2C8C84": "Lochinvar", 217 | "2D2510": "Mikado", 218 | "2D383A": "Outer Space", 219 | "2D569B": "St Tropaz", 220 | "2E0329": "Jacaranda", 221 | "2E1905": "Jacko Bean", 222 | "2E3222": "Rangitoto", 223 | "2E3F62": "Rhino", 224 | "2E8B57": "Sea Green", 225 | "2EBFD4": "Scooter", 226 | "2F270E": "Onion", 227 | "2F3CB3": "Governor Bay", 228 | "2F519E": "Sapphire", 229 | "2F5A57": "Spectra", 230 | "2F6168": "Casal", 231 | "300529": "Melanzane", 232 | "301F1E": "Cocoa Brown", 233 | "302A0F": "Woodrush", 234 | "304B6A": "San Juan", 235 | "30D5C8": "Turquoise", 236 | "311C17": "Eclipse", 237 | "314459": "Pickled Bluewood", 238 | "315BA1": "Azure", 239 | "31728D": "Calypso", 240 | "317D82": "Paradiso", 241 | "32127A": "Persian Indigo", 242 | "32293A": "Blackcurrant", 243 | "323232": "Mine Shaft", 244 | "325D52": "Stromboli", 245 | "327C14": "Bilbao", 246 | "327DA0": "Astral", 247 | "33036B": "Christalle", 248 | "33292F": "Thunder", 249 | "33CC99": "Shamrock", 250 | "341515": "Tamarind", 251 | "350036": "Mardi Gras", 252 | "350E42": "Valentino", 253 | "350E57": "Jagger", 254 | "353542": "Tuna", 255 | "354E8C": "Chambray", 256 | "363050": "Martinique", 257 | "363534": "Tuatara", 258 | "363C0D": "Waiouru", 259 | "36747D": "Ming", 260 | "368716": "La Palma", 261 | "370202": "Chocolate", 262 | "371D09": "Clinker", 263 | "37290E": "Brown Tumbleweed", 264 | "373021": "Birch", 265 | "377475": "Oracle", 266 | "380474": "Blue Diamond", 267 | "381A51": "Grape", 268 | "383533": "Dune", 269 | "384555": "Oxford Blue", 270 | "384910": "Clover", 271 | "394851": "Limed Spruce", 272 | "396413": "Dell", 273 | "3A0020": "Toledo", 274 | "3A2010": "Sambuca", 275 | "3A2A6A": "Jacarta", 276 | "3A686C": "William", 277 | "3A6A47": "Killarney", 278 | "3AB09E": "Keppel", 279 | "3B000B": "Temptress", 280 | "3B0910": "Aubergine", 281 | "3B1F1F": "Jon", 282 | "3B2820": "Treehouse", 283 | "3B7A57": "Amazon", 284 | "3B91B4": "Boston Blue", 285 | "3C0878": "Windsor", 286 | "3C1206": "Rebel", 287 | "3C1F76": "Meteorite", 288 | "3C2005": "Dark Ebony", 289 | "3C3910": "Camouflage", 290 | "3C4151": "Bright Gray", 291 | "3C4443": "Cape Cod", 292 | "3C493A": "Lunar Green", 293 | "3D0C02": "Bean ", 294 | "3D2B1F": "Bistre", 295 | "3D7D52": "Goblin", 296 | "3E0480": "Kingfisher Daisy", 297 | "3E1C14": "Cedar", 298 | "3E2B23": "English Walnut", 299 | "3E2C1C": "Black Marlin", 300 | "3E3A44": "Ship Gray", 301 | "3EABBF": "Pelorous", 302 | "3F2109": "Bronze", 303 | "3F2500": "Cola", 304 | "3F3002": "Madras", 305 | "3F307F": "Minsk", 306 | "3F4C3A": "Cabbage Pont", 307 | "3F583B": "Tom Thumb", 308 | "3F5D53": "Mineral Green", 309 | "3FC1AA": "Puerto Rico", 310 | "3FFF00": "Harlequin", 311 | "401801": "Brown Pod", 312 | "40291D": "Cork", 313 | "403B38": "Masala", 314 | "403D19": "Thatch Green", 315 | "405169": "Fiord", 316 | "40826D": "Viridian", 317 | "40A860": "Chateau Green", 318 | "410056": "Ripe Plum", 319 | "411F10": "Paco", 320 | "412010": "Deep Oak", 321 | "413C37": "Merlin", 322 | "414257": "Gun Powder", 323 | "414C7D": "East Bay", 324 | "4169E1": "Royal Blue", 325 | "41AA78": "Ocean Green", 326 | "420303": "Burnt Maroon", 327 | "423921": "Lisbon Brown", 328 | "427977": "Faded Jade", 329 | "431560": "Scarlet Gum", 330 | "433120": "Iroko", 331 | "433E37": "Armadillo", 332 | "434C59": "River Bed", 333 | "436A0D": "Green Leaf", 334 | "44012D": "Barossa", 335 | "441D00": "Morocco Brown", 336 | "444954": "Mako", 337 | "454936": "Kelp", 338 | "456CAC": "San Marino", 339 | "45B1E8": "Picton Blue", 340 | "460B41": "Loulou", 341 | "462425": "Crater Brown", 342 | "465945": "Gray Asparagus", 343 | "4682B4": "Steel Blue", 344 | "480404": "Rustic Red", 345 | "480607": "Bulgarian Rose", 346 | "480656": "Clairvoyant", 347 | "481C1C": "Cocoa Bean", 348 | "483131": "Woody Brown", 349 | "483C32": "Taupe", 350 | "49170C": "Van Cleef", 351 | "492615": "Brown Derby", 352 | "49371B": "Metallic Bronze", 353 | "495400": "Verdun Green", 354 | "496679": "Blue Bayoux", 355 | "497183": "Bismark", 356 | "4A2A04": "Bracken", 357 | "4A3004": "Deep Bronze", 358 | "4A3C30": "Mondo", 359 | "4A4244": "Tundora", 360 | "4A444B": "Gravel", 361 | "4A4E5A": "Trout", 362 | "4B0082": "Pigment Indigo", 363 | "4B5D52": "Nandor", 364 | "4C3024": "Saddle", 365 | "4C4F56": "Abbey", 366 | "4D0135": "Blackberry", 367 | "4D0A18": "Cab Sav", 368 | "4D1E01": "Indian Tan", 369 | "4D282D": "Cowboy", 370 | "4D282E": "Livid Brown", 371 | "4D3833": "Rock", 372 | "4D3D14": "Punga", 373 | "4D400F": "Bronzetone", 374 | "4D5328": "Woodland", 375 | "4E0606": "Mahogany", 376 | "4E2A5A": "Bossanova", 377 | "4E3B41": "Matterhorn", 378 | "4E420C": "Bronze Olive", 379 | "4E4562": "Mulled Wine", 380 | "4E6649": "Axolotl", 381 | "4E7F9E": "Wedgewood", 382 | "4EABD1": "Shakespeare", 383 | "4F1C70": "Honey Flower", 384 | "4F2398": "Daisy Bush", 385 | "4F69C6": "Indigo", 386 | "4F7942": "Fern Green", 387 | "4F9D5D": "Fruit Salad", 388 | "4FA83D": "Apple", 389 | "504351": "Mortar", 390 | "507096": "Kashmir Blue", 391 | "507672": "Cutty Sark", 392 | "50C878": "Emerald", 393 | "514649": "Emperor", 394 | "516E3D": "Chalet Green", 395 | "517C66": "Como", 396 | "51808F": "Smalt Blue", 397 | "52001F": "Castro", 398 | "520C17": "Maroon Oak", 399 | "523C94": "Gigas", 400 | "533455": "Voodoo", 401 | "534491": "Victoria", 402 | "53824B": "Hippie Green", 403 | "541012": "Heath", 404 | "544333": "Judge Gray", 405 | "54534D": "Fuscous Gray", 406 | "549019": "Vida Loca", 407 | "55280C": "Cioccolato", 408 | "555B10": "Saratoga", 409 | "556D56": "Finlandia", 410 | "5590D9": "Havelock Blue", 411 | "56B4BE": "Fountain Blue", 412 | "578363": "Spring Leaves", 413 | "583401": "Saddle Brown", 414 | "585562": "Scarpa Flow", 415 | "587156": "Cactus", 416 | "589AAF": "Hippie Blue", 417 | "591D35": "Wine Berry", 418 | "592804": "Brown Bramble", 419 | "593737": "Congo Brown", 420 | "594433": "Millbrook", 421 | "5A6E9C": "Waikawa Gray", 422 | "5A87A0": "Horizon", 423 | "5B3013": "Jambalaya", 424 | "5C0120": "Bordeaux", 425 | "5C0536": "Mulberry Wood", 426 | "5C2E01": "Carnaby Tan", 427 | "5C5D75": "Comet", 428 | "5D1E0F": "Redwood", 429 | "5D4C51": "Don Juan", 430 | "5D5C58": "Chicago", 431 | "5D5E37": "Verdigris", 432 | "5D7747": "Dingley", 433 | "5DA19F": "Breaker Bay", 434 | "5E483E": "Kabul", 435 | "5E5D3B": "Hemlock", 436 | "5F3D26": "Irish Coffee", 437 | "5F5F6E": "Mid Gray", 438 | "5F6672": "Shuttle Gray", 439 | "5FA777": "Aqua Forest", 440 | "5FB3AC": "Tradewind", 441 | "604913": "Horses Neck", 442 | "605B73": "Smoky", 443 | "606E68": "Corduroy", 444 | "6093D1": "Danube", 445 | "612718": "Espresso", 446 | "614051": "Eggplant", 447 | "615D30": "Costa Del Sol", 448 | "61845F": "Glade Green", 449 | "622F30": "Buccaneer", 450 | "623F2D": "Quincy", 451 | "624E9A": "Butterfly Bush", 452 | "625119": "West Coast", 453 | "626649": "Finch", 454 | "639A8F": "Patina", 455 | "63B76C": "Fern", 456 | "6456B7": "Blue Violet", 457 | "646077": "Dolphin", 458 | "646463": "Storm Dust", 459 | "646A54": "Siam", 460 | "646E75": "Nevada", 461 | "6495ED": "Cornflower Blue", 462 | "64CCDB": "Viking", 463 | "65000B": "Rosewood", 464 | "651A14": "Cherrywood", 465 | "652DC1": "Purple Heart", 466 | "657220": "Fern Frond", 467 | "65745D": "Willow Grove", 468 | "65869F": "Hoki", 469 | "660045": "Pompadour", 470 | "660099": "Purple", 471 | "66023C": "Tyrian Purple", 472 | "661010": "Dark Tan", 473 | "66B58F": "Silver Tree", 474 | "66FF00": "Bright Green", 475 | "66FF66": "Screamin' Green", 476 | "67032D": "Black Rose", 477 | "675FA6": "Scampi", 478 | "676662": "Ironside Gray", 479 | "678975": "Viridian Green", 480 | "67A712": "Christi", 481 | "683600": "Nutmeg Wood Finish", 482 | "685558": "Zambezi", 483 | "685E6E": "Salt Box", 484 | "692545": "Tawny Port", 485 | "692D54": "Finn", 486 | "695F62": "Scorpion", 487 | "697E9A": "Lynch", 488 | "6A442E": "Spice", 489 | "6A5D1B": "Himalaya", 490 | "6A6051": "Soya Bean", 491 | "6B2A14": "Hairy Heath", 492 | "6B3FA0": "Royal Purple", 493 | "6B4E31": "Shingle Fawn", 494 | "6B5755": "Dorado", 495 | "6B8BA2": "Bermuda Gray", 496 | "6B8E23": "Olive Drab", 497 | "6C3082": "Eminence", 498 | "6CDAE7": "Turquoise Blue", 499 | "6D0101": "Lonestar", 500 | "6D5E54": "Pine Cone", 501 | "6D6C6C": "Dove Gray", 502 | "6D9292": "Juniper", 503 | "6D92A1": "Gothic", 504 | "6E0902": "Red Oxide", 505 | "6E1D14": "Moccaccino", 506 | "6E4826": "Pickled Bean", 507 | "6E4B26": "Dallas", 508 | "6E6D57": "Kokoda", 509 | "6E7783": "Pale Sky", 510 | "6F440C": "Cafe Royale", 511 | "6F6A61": "Flint", 512 | "6F8E63": "Highland", 513 | "6F9D02": "Limeade", 514 | "6FD0C5": "Downy", 515 | "701C1C": "Persian Plum", 516 | "704214": "Sepia", 517 | "704A07": "Antique Bronze", 518 | "704F50": "Ferra", 519 | "706555": "Coffee", 520 | "708090": "Slate Gray", 521 | "711A00": "Cedar Wood Finish", 522 | "71291D": "Metallic Copper", 523 | "714693": "Affair", 524 | "714AB2": "Studio", 525 | "715D47": "Tobacco Brown", 526 | "716338": "Yellow Metal", 527 | "716B56": "Peat", 528 | "716E10": "Olivetone", 529 | "717486": "Storm Gray", 530 | "718080": "Sirocco", 531 | "71D9E2": "Aquamarine Blue", 532 | "72010F": "Venetian Red", 533 | "724A2F": "Old Copper", 534 | "726D4E": "Go Ben", 535 | "727B89": "Raven", 536 | "731E8F": "Seance", 537 | "734A12": "Raw Umber", 538 | "736C9F": "Kimberly", 539 | "736D58": "Crocodile", 540 | "737829": "Crete", 541 | "738678": "Xanadu", 542 | "74640D": "Spicy Mustard", 543 | "747D63": "Limed Ash", 544 | "747D83": "Rolling Stone", 545 | "748881": "Blue Smoke", 546 | "749378": "Laurel", 547 | "74C365": "Mantis", 548 | "755A57": "Russett", 549 | "7563A8": "Deluge", 550 | "76395D": "Cosmic", 551 | "7666C6": "Blue Marguerite", 552 | "76BD17": "Lima", 553 | "76D7EA": "Sky Blue", 554 | "770F05": "Dark Burgundy", 555 | "771F1F": "Crown of Thorns", 556 | "773F1A": "Walnut", 557 | "776F61": "Pablo", 558 | "778120": "Pacifika", 559 | "779E86": "Oxley", 560 | "77DD77": "Pastel Green", 561 | "780109": "Japanese Maple", 562 | "782D19": "Mocha", 563 | "782F16": "Peanut", 564 | "78866B": "Camouflage Green", 565 | "788A25": "Wasabi", 566 | "788BBA": "Ship Cove", 567 | "78A39C": "Sea Nymph", 568 | "795D4C": "Roman Coffee", 569 | "796878": "Old Lavender", 570 | "796989": "Rum", 571 | "796A78": "Fedora", 572 | "796D62": "Sandstone", 573 | "79DEEC": "Spray", 574 | "7A013A": "Siren", 575 | "7A58C1": "Fuchsia Blue", 576 | "7A7A7A": "Boulder", 577 | "7A89B8": "Wild Blue Yonder", 578 | "7AC488": "De York", 579 | "7B3801": "Red Beech", 580 | "7B3F00": "Cinnamon", 581 | "7B6608": "Yukon Gold", 582 | "7B7874": "Tapa", 583 | "7B7C94": "Waterloo ", 584 | "7B8265": "Flax Smoke", 585 | "7B9F80": "Amulet", 586 | "7BA05B": "Asparagus", 587 | "7C1C05": "Kenyan Copper", 588 | "7C7631": "Pesto", 589 | "7C778A": "Topaz", 590 | "7C7B7A": "Concord", 591 | "7C7B82": "Jumbo", 592 | "7C881A": "Trendy Green", 593 | "7CA1A6": "Gumbo", 594 | "7CB0A1": "Acapulco", 595 | "7CB7BB": "Neptune", 596 | "7D2C14": "Pueblo", 597 | "7DA98D": "Bay Leaf", 598 | "7DC8F7": "Malibu", 599 | "7DD8C6": "Bermuda", 600 | "7E3A15": "Copper Canyon", 601 | "7F1734": "Claret", 602 | "7F3A02": "Peru Tan", 603 | "7F626D": "Falcon", 604 | "7F7589": "Mobster", 605 | "7F76D3": "Moody Blue", 606 | "7FFF00": "Chartreuse", 607 | "7FFFD4": "Aquamarine", 608 | "800000": "Maroon", 609 | "800B47": "Rose Bud Cherry", 610 | "801818": "Falu Red", 611 | "80341F": "Red Robin", 612 | "803790": "Vivid Violet", 613 | "80461B": "Russet", 614 | "807E79": "Friar Gray", 615 | "808000": "Olive", 616 | "808080": "Gray", 617 | "80B3AE": "Gulf Stream", 618 | "80B3C4": "Glacier", 619 | "80CCEA": "Seagull", 620 | "81422C": "Nutmeg", 621 | "816E71": "Spicy Pink", 622 | "817377": "Empress", 623 | "819885": "Spanish Green", 624 | "826F65": "Sand Dune", 625 | "828685": "Gunsmoke", 626 | "828F72": "Battleship Gray", 627 | "831923": "Merlot", 628 | "837050": "Shadow", 629 | "83AA5D": "Chelsea Cucumber", 630 | "83D0C6": "Monte Carlo", 631 | "843179": "Plum", 632 | "84A0A0": "Granny Smith", 633 | "8581D9": "Chetwode Blue", 634 | "858470": "Bandicoot", 635 | "859FAF": "Bali Hai", 636 | "85C4CC": "Half Baked", 637 | "860111": "Red Devil", 638 | "863C3C": "Lotus", 639 | "86483C": "Ironstone", 640 | "864D1E": "Bull Shot", 641 | "86560A": "Rusty Nail", 642 | "868974": "Bitter", 643 | "86949F": "Regent Gray", 644 | "871550": "Disco", 645 | "87756E": "Americano", 646 | "877C7B": "Hurricane", 647 | "878D91": "Oslo Gray", 648 | "87AB39": "Sushi", 649 | "885342": "Spicy Mix", 650 | "886221": "Kumera", 651 | "888387": "Suva Gray", 652 | "888D65": "Avocado", 653 | "893456": "Camelot", 654 | "893843": "Solid Pink", 655 | "894367": "Cannon Pink", 656 | "897D6D": "Makara", 657 | "8A3324": "Burnt Umber", 658 | "8A73D6": "True V", 659 | "8A8360": "Clay Creek", 660 | "8A8389": "Monsoon", 661 | "8A8F8A": "Stack", 662 | "8AB9F1": "Jordy Blue", 663 | "8B00FF": "Electric Violet", 664 | "8B0723": "Monarch", 665 | "8B6B0B": "Corn Harvest", 666 | "8B8470": "Olive Haze", 667 | "8B847E": "Schooner", 668 | "8B8680": "Natural Gray", 669 | "8B9C90": "Mantle", 670 | "8B9FEE": "Portage", 671 | "8BA690": "Envy", 672 | "8BA9A5": "Cascade", 673 | "8BE6D8": "Riptide", 674 | "8C055E": "Cardinal Pink", 675 | "8C472F": "Mule Fawn", 676 | "8C5738": "Potters Clay", 677 | "8C6495": "Trendy Pink", 678 | "8D0226": "Paprika", 679 | "8D3D38": "Sanguine Brown", 680 | "8D3F3F": "Tosca", 681 | "8D7662": "Cement", 682 | "8D8974": "Granite Green", 683 | "8D90A1": "Manatee", 684 | "8DA8CC": "Polo Blue", 685 | "8E0000": "Red Berry", 686 | "8E4D1E": "Rope", 687 | "8E6F70": "Opium", 688 | "8E775E": "Domino", 689 | "8E8190": "Mamba", 690 | "8EABC1": "Nepal", 691 | "8F021C": "Pohutukawa", 692 | "8F3E33": "El Salva", 693 | "8F4B0E": "Korma", 694 | "8F8176": "Squirrel", 695 | "8FD6B4": "Vista Blue", 696 | "900020": "Burgundy", 697 | "901E1E": "Old Brick", 698 | "907874": "Hemp", 699 | "907B71": "Almond Frost", 700 | "908D39": "Sycamore", 701 | "92000A": "Sangria", 702 | "924321": "Cumin", 703 | "926F5B": "Beaver", 704 | "928573": "Stonewall", 705 | "928590": "Venus", 706 | "9370DB": "Medium Purple", 707 | "93CCEA": "Cornflower", 708 | "93DFB8": "Algae Green", 709 | "944747": "Copper Rust", 710 | "948771": "Arrowtown", 711 | "950015": "Scarlett", 712 | "956387": "Strikemaster", 713 | "959396": "Mountain Mist", 714 | "960018": "Carmine", 715 | "964B00": "Brown", 716 | "967059": "Leather", 717 | "9678B6": "Purple Mountain's Majesty", 718 | "967BB6": "Lavender Purple", 719 | "96A8A1": "Pewter", 720 | "96BBAB": "Summer Green", 721 | "97605D": "Au Chico", 722 | "9771B5": "Wisteria", 723 | "97CD2D": "Atlantis", 724 | "983D61": "Vin Rouge", 725 | "9874D3": "Lilac Bush", 726 | "98777B": "Bazaar", 727 | "98811B": "Hacienda", 728 | "988D77": "Pale Oyster", 729 | "98FF98": "Mint Green", 730 | "990066": "Fresh Eggplant", 731 | "991199": "Violet Eggplant", 732 | "991613": "Tamarillo", 733 | "991B07": "Totem Pole", 734 | "996666": "Copper Rose", 735 | "9966CC": "Amethyst", 736 | "997A8D": "Mountbatten Pink", 737 | "9999CC": "Blue Bell", 738 | "9A3820": "Prairie Sand", 739 | "9A6E61": "Toast", 740 | "9A9577": "Gurkha", 741 | "9AB973": "Olivine", 742 | "9AC2B8": "Shadow Green", 743 | "9B4703": "Oregon", 744 | "9B9E8F": "Lemon Grass", 745 | "9C3336": "Stiletto", 746 | "9D5616": "Hawaiian Tan", 747 | "9DACB7": "Gull Gray", 748 | "9DC209": "Pistachio", 749 | "9DE093": "Granny Smith Apple", 750 | "9DE5FF": "Anakiwa", 751 | "9E5302": "Chelsea Gem", 752 | "9E5B40": "Sepia Skin", 753 | "9EA587": "Sage", 754 | "9EA91F": "Citron", 755 | "9EB1CD": "Rock Blue", 756 | "9EDEE0": "Morning Glory", 757 | "9F381D": "Cognac", 758 | "9F821C": "Reef Gold", 759 | "9F9F9C": "Star Dust", 760 | "9FA0B1": "Santas Gray", 761 | "9FD7D3": "Sinbad", 762 | "9FDD8C": "Feijoa", 763 | "A02712": "Tabasco", 764 | "A1750D": "Buttered Rum", 765 | "A1ADB5": "Hit Gray", 766 | "A1C50A": "Citrus", 767 | "A1DAD7": "Aqua Island", 768 | "A1E9DE": "Water Leaf", 769 | "A2006D": "Flirt", 770 | "A23B6C": "Rouge", 771 | "A26645": "Cape Palliser", 772 | "A2AAB3": "Gray Chateau", 773 | "A2AEAB": "Edward", 774 | "A3807B": "Pharlap", 775 | "A397B4": "Amethyst Smoke", 776 | "A3E3ED": "Blizzard Blue", 777 | "A4A49D": "Delta", 778 | "A4A6D3": "Wistful", 779 | "A4AF6E": "Green Smoke", 780 | "A50B5E": "Jazzberry Jam", 781 | "A59B91": "Zorba", 782 | "A5CB0C": "Bahia", 783 | "A62F20": "Roof Terracotta", 784 | "A65529": "Paarl", 785 | "A68B5B": "Barley Corn", 786 | "A69279": "Donkey Brown", 787 | "A6A29A": "Dawn", 788 | "A72525": "Mexican Red", 789 | "A7882C": "Luxor Gold", 790 | "A85307": "Rich Gold", 791 | "A86515": "Reno Sand", 792 | "A86B6B": "Coral Tree", 793 | "A8989B": "Dusty Gray", 794 | "A899E6": "Dull Lavender", 795 | "A8A589": "Tallow", 796 | "A8AE9C": "Bud", 797 | "A8AF8E": "Locust", 798 | "A8BD9F": "Norway", 799 | "A8E3BD": "Chinook", 800 | "A9A491": "Gray Olive", 801 | "A9ACB6": "Aluminium", 802 | "A9B2C3": "Cadet Blue", 803 | "A9B497": "Schist", 804 | "A9BDBF": "Tower Gray", 805 | "A9BEF2": "Perano", 806 | "A9C6C2": "Opal", 807 | "AA375A": "Night Shadz", 808 | "AA4203": "Fire", 809 | "AA8B5B": "Muesli", 810 | "AA8D6F": "Sandal", 811 | "AAA5A9": "Shady Lady", 812 | "AAA9CD": "Logan", 813 | "AAABB7": "Spun Pearl", 814 | "AAD6E6": "Regent St Blue", 815 | "AAF0D1": "Magic Mint", 816 | "AB0563": "Lipstick", 817 | "AB3472": "Royal Heath", 818 | "AB917A": "Sandrift", 819 | "ABA0D9": "Cold Purple", 820 | "ABA196": "Bronco", 821 | "AC8A56": "Limed Oak", 822 | "AC91CE": "East Side", 823 | "AC9E22": "Lemon Ginger", 824 | "ACA494": "Napa", 825 | "ACA586": "Hillary", 826 | "ACA59F": "Cloudy", 827 | "ACACAC": "Silver Chalice", 828 | "ACB78E": "Swamp Green", 829 | "ACCBB1": "Spring Rain", 830 | "ACDD4D": "Conifer", 831 | "ACE1AF": "Celadon", 832 | "AD781B": "Mandalay", 833 | "ADBED1": "Casper", 834 | "ADDFAD": "Moss Green", 835 | "ADE6C4": "Padua", 836 | "ADFF2F": "Green Yellow", 837 | "AE4560": "Hippie Pink", 838 | "AE6020": "Desert", 839 | "AE809E": "Bouquet", 840 | "AF4035": "Medium Carmine", 841 | "AF4D43": "Apple Blossom", 842 | "AF593E": "Brown Rust", 843 | "AF8751": "Driftwood", 844 | "AF8F2C": "Alpine", 845 | "AF9F1C": "Lucky", 846 | "AFA09E": "Martini", 847 | "AFB1B8": "Bombay", 848 | "AFBDD9": "Pigeon Post", 849 | "B04C6A": "Cadillac", 850 | "B05D54": "Matrix", 851 | "B05E81": "Tapestry", 852 | "B06608": "Mai Tai", 853 | "B09A95": "Del Rio", 854 | "B0E0E6": "Powder Blue", 855 | "B0E313": "Inch Worm", 856 | "B10000": "Bright Red", 857 | "B14A0B": "Vesuvius", 858 | "B1610B": "Pumpkin Skin", 859 | "B16D52": "Santa Fe", 860 | "B19461": "Teak", 861 | "B1E2C1": "Fringy Flower", 862 | "B1F4E7": "Ice Cold", 863 | "B20931": "Shiraz", 864 | "B2A1EA": "Biloba Flower", 865 | "B32D29": "Tall Poppy", 866 | "B35213": "Fiery Orange", 867 | "B38007": "Hot Toddy", 868 | "B3AF95": "Taupe Gray", 869 | "B3C110": "La Rioja", 870 | "B43332": "Well Read", 871 | "B44668": "Blush", 872 | "B4CFD3": "Jungle Mist", 873 | "B57281": "Turkish Rose", 874 | "B57EDC": "Lavender", 875 | "B5A27F": "Mongoose", 876 | "B5B35C": "Olive Green", 877 | "B5D2CE": "Jet Stream", 878 | "B5ECDF": "Cruise", 879 | "B6316C": "Hibiscus", 880 | "B69D98": "Thatch", 881 | "B6B095": "Heathered Gray", 882 | "B6BAA4": "Eagle", 883 | "B6D1EA": "Spindle", 884 | "B6D3BF": "Gum Leaf", 885 | "B7410E": "Rust", 886 | "B78E5C": "Muddy Waters", 887 | "B7A214": "Sahara", 888 | "B7A458": "Husk", 889 | "B7B1B1": "Nobel", 890 | "B7C3D0": "Heather", 891 | "B7F0BE": "Madang", 892 | "B81104": "Milano Red", 893 | "B87333": "Copper", 894 | "B8B56A": "Gimblet", 895 | "B8C1B1": "Green Spring", 896 | "B8C25D": "Celery", 897 | "B8E0F9": "Sail", 898 | "B94E48": "Chestnut", 899 | "B95140": "Crail", 900 | "B98D28": "Marigold", 901 | "B9C46A": "Wild Willow", 902 | "B9C8AC": "Rainee", 903 | "BA0101": "Guardsman Red", 904 | "BA450C": "Rock Spray", 905 | "BA6F1E": "Bourbon", 906 | "BA7F03": "Pirate Gold", 907 | "BAB1A2": "Nomad", 908 | "BAC7C9": "Submarine", 909 | "BAEEF9": "Charlotte", 910 | "BB3385": "Medium Red Violet", 911 | "BB8983": "Brandy Rose", 912 | "BBD009": "Rio Grande", 913 | "BBD7C1": "Surf", 914 | "BCC9C2": "Powder Ash", 915 | "BD5E2E": "Tuscany", 916 | "BD978E": "Quicksand", 917 | "BDB1A8": "Silk", 918 | "BDB2A1": "Malta", 919 | "BDB3C7": "Chatelle", 920 | "BDBBD7": "Lavender Gray", 921 | "BDBDC6": "French Gray", 922 | "BDC8B3": "Clay Ash", 923 | "BDC9CE": "Loblolly", 924 | "BDEDFD": "French Pass", 925 | "BEA6C3": "London Hue", 926 | "BEB5B7": "Pink Swan", 927 | "BEDE0D": "Fuego", 928 | "BF5500": "Rose of Sharon", 929 | "BFB8B0": "Tide", 930 | "BFBED8": "Blue Haze", 931 | "BFC1C2": "Silver Sand", 932 | "BFC921": "Key Lime Pie", 933 | "BFDBE2": "Ziggurat", 934 | "BFFF00": "Lime", 935 | "C02B18": "Thunderbird", 936 | "C04737": "Mojo", 937 | "C08081": "Old Rose", 938 | "C0C0C0": "Silver", 939 | "C0D3B9": "Pale Leaf", 940 | "C0D8B6": "Pixie Green", 941 | "C1440E": "Tia Maria", 942 | "C154C1": "Fuchsia Pink", 943 | "C1A004": "Buddha Gold", 944 | "C1B7A4": "Bison Hide", 945 | "C1BAB0": "Tea", 946 | "C1BECD": "Gray Suit", 947 | "C1D7B0": "Sprout", 948 | "C1F07C": "Sulu", 949 | "C26B03": "Indochine", 950 | "C2955D": "Twine", 951 | "C2BDB6": "Cotton Seed", 952 | "C2CAC4": "Pumice", 953 | "C2E8E5": "Jagged Ice", 954 | "C32148": "Maroon Flush", 955 | "C3B091": "Indian Khaki", 956 | "C3BFC1": "Pale Slate", 957 | "C3C3BD": "Gray Nickel", 958 | "C3CDE6": "Periwinkle Gray", 959 | "C3D1D1": "Tiara", 960 | "C3DDF9": "Tropical Blue", 961 | "C41E3A": "Cardinal", 962 | "C45655": "Fuzzy Wuzzy Brown", 963 | "C45719": "Orange Roughy", 964 | "C4C4BC": "Mist Gray", 965 | "C4D0B0": "Coriander", 966 | "C4F4EB": "Mint Tulip", 967 | "C54B8C": "Mulberry", 968 | "C59922": "Nugget", 969 | "C5994B": "Tussock", 970 | "C5DBCA": "Sea Mist", 971 | "C5E17A": "Yellow Green", 972 | "C62D42": "Brick Red", 973 | "C6726B": "Contessa", 974 | "C69191": "Oriental Pink", 975 | "C6A84B": "Roti", 976 | "C6C3B5": "Ash", 977 | "C6C8BD": "Kangaroo", 978 | "C6E610": "Las Palmas", 979 | "C7031E": "Monza", 980 | "C71585": "Red Violet", 981 | "C7BCA2": "Coral Reef", 982 | "C7C1FF": "Melrose", 983 | "C7C4BF": "Cloud", 984 | "C7C9D5": "Ghost", 985 | "C7CD90": "Pine Glade", 986 | "C7DDE5": "Botticelli", 987 | "C88A65": "Antique Brass", 988 | "C8A2C8": "Lilac", 989 | "C8A528": "Hokey Pokey", 990 | "C8AABF": "Lily", 991 | "C8B568": "Laser", 992 | "C8E3D7": "Edgewater", 993 | "C96323": "Piper", 994 | "C99415": "Pizza", 995 | "C9A0DC": "Light Wisteria", 996 | "C9B29B": "Rodeo Dust", 997 | "C9B35B": "Sundance", 998 | "C9B93B": "Earls Green", 999 | "C9C0BB": "Silver Rust", 1000 | "C9D9D2": "Conch", 1001 | "C9FFA2": "Reef", 1002 | "C9FFE5": "Aero Blue", 1003 | "CA3435": "Flush Mahogany", 1004 | "CABB48": "Turmeric", 1005 | "CADCD4": "Paris White", 1006 | "CAE00D": "Bitter Lemon", 1007 | "CAE6DA": "Skeptic", 1008 | "CB8FA9": "Viola", 1009 | "CBCAB6": "Foggy Gray", 1010 | "CBD3B0": "Green Mist", 1011 | "CBDBD6": "Nebula", 1012 | "CC3333": "Persian Red", 1013 | "CC5500": "Burnt Orange", 1014 | "CC7722": "Ochre", 1015 | "CC8899": "Puce", 1016 | "CCCAA8": "Thistle Green", 1017 | "CCCCFF": "Periwinkle", 1018 | "CCFF00": "Electric Lime", 1019 | "CD5700": "Tenn", 1020 | "CD5C5C": "Chestnut Rose", 1021 | "CD8429": "Brandy Punch", 1022 | "CDF4FF": "Onahau", 1023 | "CEB98F": "Sorrell Brown", 1024 | "CEBABA": "Cold Turkey", 1025 | "CEC291": "Yuma", 1026 | "CEC7A7": "Chino", 1027 | "CFA39D": "Eunry", 1028 | "CFB53B": "Old Gold", 1029 | "CFDCCF": "Tasman", 1030 | "CFE5D2": "Surf Crest", 1031 | "CFF9F3": "Humming Bird", 1032 | "CFFAF4": "Scandal", 1033 | "D05F04": "Red Stage", 1034 | "D06DA1": "Hopbush", 1035 | "D07D12": "Meteor", 1036 | "D0BEF8": "Perfume", 1037 | "D0C0E5": "Prelude", 1038 | "D0F0C0": "Tea Green", 1039 | "D18F1B": "Geebung", 1040 | "D1BEA8": "Vanilla", 1041 | "D1C6B4": "Soft Amber", 1042 | "D1D2CA": "Celeste", 1043 | "D1D2DD": "Mischka", 1044 | "D1E231": "Pear", 1045 | "D2691E": "Hot Cinnamon", 1046 | "D27D46": "Raw Sienna", 1047 | "D29EAA": "Careys Pink", 1048 | "D2B48C": "Tan", 1049 | "D2DA97": "Deco", 1050 | "D2F6DE": "Blue Romance", 1051 | "D2F8B0": "Gossip", 1052 | "D3CBBA": "Sisal", 1053 | "D3CDC5": "Swirl", 1054 | "D47494": "Charm", 1055 | "D4B6AF": "Clam Shell", 1056 | "D4BF8D": "Straw", 1057 | "D4C4A8": "Akaroa", 1058 | "D4CD16": "Bird Flower", 1059 | "D4D7D9": "Iron", 1060 | "D4DFE2": "Geyser", 1061 | "D4E2FC": "Hawkes Blue", 1062 | "D54600": "Grenadier", 1063 | "D591A4": "Can Can", 1064 | "D59A6F": "Whiskey", 1065 | "D5D195": "Winter Hazel", 1066 | "D5F6E3": "Granny Apple", 1067 | "D69188": "My Pink", 1068 | "D6C562": "Tacha", 1069 | "D6CEF6": "Moon Raker", 1070 | "D6D6D1": "Quill Gray", 1071 | "D6FFDB": "Snowy Mint", 1072 | "D7837F": "New York Pink", 1073 | "D7C498": "Pavlova", 1074 | "D7D0FF": "Fog", 1075 | "D84437": "Valencia", 1076 | "D87C63": "Japonica", 1077 | "D8BFD8": "Thistle", 1078 | "D8C2D5": "Maverick", 1079 | "D8FCFA": "Foam", 1080 | "D94972": "Cabaret", 1081 | "D99376": "Burning Sand", 1082 | "D9B99B": "Cameo", 1083 | "D9D6CF": "Timberwolf", 1084 | "D9DCC1": "Tana", 1085 | "D9E4F5": "Link Water", 1086 | "D9F7FF": "Mabel", 1087 | "DA3287": "Cerise", 1088 | "DA5B38": "Flame Pea", 1089 | "DA6304": "Bamboo", 1090 | "DA6A41": "Red Damask", 1091 | "DA70D6": "Orchid", 1092 | "DA8A67": "Copperfield", 1093 | "DAA520": "Golden Grass", 1094 | "DAECD6": "Zanah", 1095 | "DAF4F0": "Iceberg", 1096 | "DAFAFF": "Oyster Bay", 1097 | "DB5079": "Cranberry", 1098 | "DB9690": "Petite Orchid", 1099 | "DB995E": "Di Serria", 1100 | "DBDBDB": "Alto", 1101 | "DBFFF8": "Frosted Mint", 1102 | "DC143C": "Crimson", 1103 | "DC4333": "Punch", 1104 | "DCB20C": "Galliano", 1105 | "DCB4BC": "Blossom", 1106 | "DCD747": "Wattle", 1107 | "DCD9D2": "Westar", 1108 | "DCDDCC": "Moon Mist", 1109 | "DCEDB4": "Caper", 1110 | "DCF0EA": "Swans Down", 1111 | "DDD6D5": "Swiss Coffee", 1112 | "DDF9F1": "White Ice", 1113 | "DE3163": "Cerise Red", 1114 | "DE6360": "Roman", 1115 | "DEA681": "Tumbleweed", 1116 | "DEBA13": "Gold Tips", 1117 | "DEC196": "Brandy", 1118 | "DECBC6": "Wafer", 1119 | "DED4A4": "Sapling", 1120 | "DED717": "Barberry", 1121 | "DEE5C0": "Beryl Green", 1122 | "DEF5FF": "Pattens Blue", 1123 | "DF73FF": "Heliotrope", 1124 | "DFBE6F": "Apache", 1125 | "DFCD6F": "Chenin", 1126 | "DFCFDB": "Lola", 1127 | "DFECDA": "Willow Brook", 1128 | "DFFF00": "Chartreuse Yellow", 1129 | "E0B0FF": "Mauve", 1130 | "E0B646": "Anzac", 1131 | "E0B974": "Harvest Gold", 1132 | "E0C095": "Calico", 1133 | "E0FFFF": "Baby Blue", 1134 | "E16865": "Sunglo", 1135 | "E1BC64": "Equator", 1136 | "E1C0C8": "Pink Flare", 1137 | "E1E6D6": "Periglacial Blue", 1138 | "E1EAD4": "Kidnapper", 1139 | "E1F6E8": "Tara", 1140 | "E25465": "Mandy", 1141 | "E2725B": "Terracotta", 1142 | "E28913": "Golden Bell", 1143 | "E292C0": "Shocking", 1144 | "E29418": "Dixie", 1145 | "E29CD2": "Light Orchid", 1146 | "E2D8ED": "Snuff", 1147 | "E2EBED": "Mystic", 1148 | "E2F3EC": "Apple Green", 1149 | "E30B5C": "Razzmatazz", 1150 | "E32636": "Alizarin Crimson", 1151 | "E34234": "Cinnabar", 1152 | "E3BEBE": "Cavern Pink", 1153 | "E3F5E1": "Peppermint", 1154 | "E3F988": "Mindaro", 1155 | "E47698": "Deep Blush", 1156 | "E49B0F": "Gamboge", 1157 | "E4C2D5": "Melanie", 1158 | "E4CFDE": "Twilight", 1159 | "E4D1C0": "Bone", 1160 | "E4D422": "Sunflower", 1161 | "E4D5B7": "Grain Brown", 1162 | "E4D69B": "Zombie", 1163 | "E4F6E7": "Frostee", 1164 | "E4FFD1": "Snow Flurry", 1165 | "E52B50": "Amaranth", 1166 | "E5841B": "Zest", 1167 | "E5CCC9": "Dust Storm", 1168 | "E5D7BD": "Stark White", 1169 | "E5D8AF": "Hampton", 1170 | "E5E0E1": "Bon Jour", 1171 | "E5E5E5": "Mercury", 1172 | "E5F9F6": "Polar", 1173 | "E64E03": "Trinidad", 1174 | "E6BE8A": "Gold Sand", 1175 | "E6BEA5": "Cashmere", 1176 | "E6D7B9": "Double Spanish White", 1177 | "E6E4D4": "Satin Linen", 1178 | "E6F2EA": "Harp", 1179 | "E6F8F3": "Off Green", 1180 | "E6FFE9": "Hint of Green", 1181 | "E6FFFF": "Tranquil", 1182 | "E77200": "Mango Tango", 1183 | "E7730A": "Christine", 1184 | "E79F8C": "Tonys Pink", 1185 | "E79FC4": "Kobi", 1186 | "E7BCB4": "Rose Fog", 1187 | "E7BF05": "Corn", 1188 | "E7CD8C": "Putty", 1189 | "E7ECE6": "Gray Nurse", 1190 | "E7F8FF": "Lily White", 1191 | "E7FEFF": "Bubbles", 1192 | "E89928": "Fire Bush", 1193 | "E8B9B3": "Shilo", 1194 | "E8E0D5": "Pearl Bush", 1195 | "E8EBE0": "Green White", 1196 | "E8F1D4": "Chrome White", 1197 | "E8F2EB": "Gin", 1198 | "E8F5F2": "Aqua Squeeze", 1199 | "E96E00": "Clementine", 1200 | "E97451": "Burnt Sienna", 1201 | "E97C07": "Tahiti Gold", 1202 | "E9CECD": "Oyster Pink", 1203 | "E9D75A": "Confetti", 1204 | "E9E3E3": "Ebb", 1205 | "E9F8ED": "Ottoman", 1206 | "E9FFFD": "Clear Day", 1207 | "EA88A8": "Carissma", 1208 | "EAAE69": "Porsche", 1209 | "EAB33B": "Tulip Tree", 1210 | "EAC674": "Rob Roy", 1211 | "EADAB8": "Raffia", 1212 | "EAE8D4": "White Rock", 1213 | "EAF6EE": "Panache", 1214 | "EAF6FF": "Solitude", 1215 | "EAF9F5": "Aqua Spring", 1216 | "EAFFFE": "Dew", 1217 | "EB9373": "Apricot", 1218 | "EBC2AF": "Zinnwaldite", 1219 | "ECA927": "Fuel Yellow", 1220 | "ECC54E": "Ronchi", 1221 | "ECC7EE": "French Lilac", 1222 | "ECCDB9": "Just Right", 1223 | "ECE090": "Wild Rice", 1224 | "ECEBBD": "Fall Green", 1225 | "ECEBCE": "Aths Special", 1226 | "ECF245": "Starship", 1227 | "ED0A3F": "Red Ribbon", 1228 | "ED7A1C": "Tango", 1229 | "ED9121": "Carrot Orange", 1230 | "ED989E": "Sea Pink", 1231 | "EDB381": "Tacao", 1232 | "EDC9AF": "Desert Sand", 1233 | "EDCDAB": "Pancho", 1234 | "EDDCB1": "Chamois", 1235 | "EDEA99": "Primrose", 1236 | "EDF5DD": "Frost", 1237 | "EDF5F5": "Aqua Haze", 1238 | "EDF6FF": "Zumthor", 1239 | "EDF9F1": "Narvik", 1240 | "EDFC84": "Honeysuckle", 1241 | "EE82EE": "Lavender Magenta", 1242 | "EEC1BE": "Beauty Bush", 1243 | "EED794": "Chalky", 1244 | "EED9C4": "Almond", 1245 | "EEDC82": "Flax", 1246 | "EEDEDA": "Bizarre", 1247 | "EEE3AD": "Double Colonial White", 1248 | "EEEEE8": "Cararra", 1249 | "EEEF78": "Manz", 1250 | "EEF0C8": "Tahuna Sands", 1251 | "EEF0F3": "Athens Gray", 1252 | "EEF3C3": "Tusk", 1253 | "EEF4DE": "Loafer", 1254 | "EEF6F7": "Catskill White", 1255 | "EEFDFF": "Twilight Blue", 1256 | "EEFF9A": "Jonquil", 1257 | "EEFFE2": "Rice Flower", 1258 | "EF863F": "Jaffa", 1259 | "EFEFEF": "Gallery", 1260 | "EFF2F3": "Porcelain", 1261 | "F091A9": "Mauvelous", 1262 | "F0D52D": "Golden Dream", 1263 | "F0DB7D": "Golden Sand", 1264 | "F0DC82": "Buff", 1265 | "F0E2EC": "Prim", 1266 | "F0E68C": "Khaki", 1267 | "F0EEFD": "Selago", 1268 | "F0EEFF": "Titan White", 1269 | "F0F8FF": "Alice Blue", 1270 | "F0FCEA": "Feta", 1271 | "F18200": "Gold Drop", 1272 | "F19BAB": "Wewak", 1273 | "F1E788": "Sahara Sand", 1274 | "F1E9D2": "Parchment", 1275 | "F1E9FF": "Blue Chalk", 1276 | "F1EEC1": "Mint Julep", 1277 | "F1F1F1": "Seashell", 1278 | "F1F7F2": "Saltpan", 1279 | "F1FFAD": "Tidal", 1280 | "F1FFC8": "Chiffon", 1281 | "F2552A": "Flamingo", 1282 | "F28500": "Tangerine", 1283 | "F2C3B2": "Mandys Pink", 1284 | "F2F2F2": "Concrete", 1285 | "F2FAFA": "Black Squeeze", 1286 | "F34723": "Pomegranate", 1287 | "F3AD16": "Buttercup", 1288 | "F3D69D": "New Orleans", 1289 | "F3D9DF": "Vanilla Ice", 1290 | "F3E7BB": "Sidecar", 1291 | "F3E9E5": "Dawn Pink", 1292 | "F3EDCF": "Wheatfield", 1293 | "F3FB62": "Canary", 1294 | "F3FBD4": "Orinoco", 1295 | "F3FFD8": "Carla", 1296 | "F400A1": "Hollywood Cerise", 1297 | "F4A460": "Sandy brown", 1298 | "F4C430": "Saffron", 1299 | "F4D81C": "Ripe Lemon", 1300 | "F4EBD3": "Janna", 1301 | "F4F2EE": "Pampas", 1302 | "F4F4F4": "Wild Sand", 1303 | "F4F8FF": "Zircon", 1304 | "F57584": "Froly", 1305 | "F5C85C": "Cream Can", 1306 | "F5C999": "Manhattan", 1307 | "F5D5A0": "Maize", 1308 | "F5DEB3": "Wheat", 1309 | "F5E7A2": "Sandwisp", 1310 | "F5E7E2": "Pot Pourri", 1311 | "F5E9D3": "Albescent White", 1312 | "F5EDEF": "Soft Peach", 1313 | "F5F3E5": "Ecru White", 1314 | "F5F5DC": "Beige", 1315 | "F5FB3D": "Golden Fizz", 1316 | "F5FFBE": "Australian Mint", 1317 | "F64A8A": "French Rose", 1318 | "F653A6": "Brilliant Rose", 1319 | "F6A4C9": "Illusion", 1320 | "F6F0E6": "Merino", 1321 | "F6F7F7": "Black Haze", 1322 | "F6FFDC": "Spring Sun", 1323 | "F7468A": "Violet Red", 1324 | "F77703": "Chilean Fire", 1325 | "F77FBE": "Persian Pink", 1326 | "F7B668": "Rajah", 1327 | "F7C8DA": "Azalea", 1328 | "F7DBE6": "We Peep", 1329 | "F7F2E1": "Quarter Spanish White", 1330 | "F7F5FA": "Whisper", 1331 | "F7FAF7": "Snow Drift", 1332 | "F8B853": "Casablanca", 1333 | "F8C3DF": "Chantilly", 1334 | "F8D9E9": "Cherub", 1335 | "F8DB9D": "Marzipan", 1336 | "F8DD5C": "Energy Yellow", 1337 | "F8E4BF": "Givry", 1338 | "F8F0E8": "White Linen", 1339 | "F8F4FF": "Magnolia", 1340 | "F8F6F1": "Spring Wood", 1341 | "F8F7DC": "Coconut Cream", 1342 | "F8F7FC": "White Lilac", 1343 | "F8F8F7": "Desert Storm", 1344 | "F8F99C": "Texas", 1345 | "F8FACD": "Corn Field", 1346 | "F8FDD3": "Mimosa", 1347 | "F95A61": "Carnation", 1348 | "F9BF58": "Saffron Mango", 1349 | "F9E0ED": "Carousel Pink", 1350 | "F9E4BC": "Dairy Cream", 1351 | "F9E663": "Portica", 1352 | "F9EAF3": "Amour", 1353 | "F9F8E4": "Rum Swizzle", 1354 | "F9FF8B": "Dolly", 1355 | "F9FFF6": "Sugar Cane", 1356 | "FA7814": "Ecstasy", 1357 | "FA9D5A": "Tan Hide", 1358 | "FAD3A2": "Corvette", 1359 | "FADFAD": "Peach Yellow", 1360 | "FAE600": "Turbo", 1361 | "FAEAB9": "Astra", 1362 | "FAECCC": "Champagne", 1363 | "FAF0E6": "Linen", 1364 | "FAF3F0": "Fantasy", 1365 | "FAF7D6": "Citrine White", 1366 | "FAFAFA": "Alabaster", 1367 | "FAFDE4": "Hint of Yellow", 1368 | "FAFFA4": "Milan", 1369 | "FB607F": "Brink Pink", 1370 | "FB8989": "Geraldine", 1371 | "FBA0E3": "Lavender Rose", 1372 | "FBA129": "Sea Buckthorn", 1373 | "FBAC13": "Sun", 1374 | "FBAED2": "Lavender Pink", 1375 | "FBB2A3": "Rose Bud", 1376 | "FBBEDA": "Cupid", 1377 | "FBCCE7": "Classic Rose", 1378 | "FBCEB1": "Apricot Peach", 1379 | "FBE7B2": "Banana Mania", 1380 | "FBE870": "Marigold Yellow", 1381 | "FBE96C": "Festival", 1382 | "FBEA8C": "Sweet Corn", 1383 | "FBEC5D": "Candy Corn", 1384 | "FBF9F9": "Hint of Red", 1385 | "FBFFBA": "Shalimar", 1386 | "FC0FC0": "Shocking Pink", 1387 | "FC80A5": "Tickle Me Pink", 1388 | "FC9C1D": "Tree Poppy", 1389 | "FCC01E": "Lightning Yellow", 1390 | "FCD667": "Goldenrod", 1391 | "FCD917": "Candlelight", 1392 | "FCDA98": "Cherokee", 1393 | "FCF4D0": "Double Pearl Lusta", 1394 | "FCF4DC": "Pearl Lusta", 1395 | "FCF8F7": "Vista White", 1396 | "FCFBF3": "Bianca", 1397 | "FCFEDA": "Moon Glow", 1398 | "FCFFE7": "China Ivory", 1399 | "FCFFF9": "Ceramic", 1400 | "FD0E35": "Torch Red", 1401 | "FD5B78": "Wild Watermelon", 1402 | "FD7B33": "Crusta", 1403 | "FD7C07": "Sorbus", 1404 | "FD9FA2": "Sweet Pink", 1405 | "FDD5B1": "Light Apricot", 1406 | "FDD7E4": "Pig Pink", 1407 | "FDE1DC": "Cinderella", 1408 | "FDE295": "Golden Glow", 1409 | "FDE910": "Lemon", 1410 | "FDF5E6": "Old Lace", 1411 | "FDF6D3": "Half Colonial White", 1412 | "FDF7AD": "Drover", 1413 | "FDFEB8": "Pale Prim", 1414 | "FDFFD5": "Cumulus", 1415 | "FE28A2": "Persian Rose", 1416 | "FE4C40": "Sunset Orange", 1417 | "FE6F5E": "Bittersweet", 1418 | "FE9D04": "California", 1419 | "FEA904": "Yellow Sea", 1420 | "FEBAAD": "Melon", 1421 | "FED33C": "Bright Sun", 1422 | "FED85D": "Dandelion", 1423 | "FEDB8D": "Salomie", 1424 | "FEE5AC": "Cape Honey", 1425 | "FEEBF3": "Remy", 1426 | "FEEFCE": "Oasis", 1427 | "FEF0EC": "Bridesmaid", 1428 | "FEF2C7": "Beeswax", 1429 | "FEF3D8": "Bleach White", 1430 | "FEF4CC": "Pipi", 1431 | "FEF4DB": "Half Spanish White", 1432 | "FEF4F8": "Wisp Pink", 1433 | "FEF5F1": "Provincial Pink", 1434 | "FEF7DE": "Half Dutch White", 1435 | "FEF8E2": "Solitaire", 1436 | "FEF8FF": "White Pointer", 1437 | "FEF9E3": "Off Yellow", 1438 | "FEFCED": "Orange White", 1439 | "FF0000": "Red", 1440 | "FF007F": "Rose", 1441 | "FF00CC": "Purple Pizzazz", 1442 | "FF00FF": "Magenta / Fuchsia", 1443 | "FF2400": "Scarlet", 1444 | "FF3399": "Wild Strawberry", 1445 | "FF33CC": "Razzle Dazzle Rose", 1446 | "FF355E": "Radical Red", 1447 | "FF3F34": "Red Orange", 1448 | "FF4040": "Coral Red", 1449 | "FF4D00": "Vermilion", 1450 | "FF4F00": "International Orange", 1451 | "FF6037": "Outrageous Orange", 1452 | "FF6600": "Blaze Orange", 1453 | "FF66FF": "Pink Flamingo", 1454 | "FF681F": "Orange", 1455 | "FF69B4": "Hot Pink", 1456 | "FF6B53": "Persimmon", 1457 | "FF6FFF": "Blush Pink", 1458 | "FF7034": "Burning Orange", 1459 | "FF7518": "Pumpkin", 1460 | "FF7D07": "Flamenco", 1461 | "FF7F00": "Flush Orange", 1462 | "FF7F50": "Coral", 1463 | "FF8C69": "Salmon", 1464 | "FF9000": "Pizazz", 1465 | "FF910F": "West Side", 1466 | "FF91A4": "Pink Salmon", 1467 | "FF9933": "Neon Carrot", 1468 | "FF9966": "Atomic Tangerine", 1469 | "FF9980": "Vivid Tangerine", 1470 | "FF9E2C": "Sunshade", 1471 | "FFA000": "Orange Peel", 1472 | "FFA194": "Mona Lisa", 1473 | "FFA500": "Web Orange", 1474 | "FFA6C9": "Carnation Pink", 1475 | "FFAB81": "Hit Pink", 1476 | "FFAE42": "Yellow Orange", 1477 | "FFB0AC": "Cornflower Lilac", 1478 | "FFB1B3": "Sundown", 1479 | "FFB31F": "My Sin", 1480 | "FFB555": "Texas Rose", 1481 | "FFB7D5": "Cotton Candy", 1482 | "FFB97B": "Macaroni and Cheese", 1483 | "FFBA00": "Selective Yellow", 1484 | "FFBD5F": "Koromiko", 1485 | "FFBF00": "Amber", 1486 | "FFC0A8": "Wax Flower", 1487 | "FFC0CB": "Pink", 1488 | "FFC3C0": "Your Pink", 1489 | "FFC901": "Supernova", 1490 | "FFCBA4": "Flesh", 1491 | "FFCC33": "Sunglow", 1492 | "FFCC5C": "Golden Tainoi", 1493 | "FFCC99": "Peach Orange", 1494 | "FFCD8C": "Chardonnay", 1495 | "FFD1DC": "Pastel Pink", 1496 | "FFD2B7": "Romantic", 1497 | "FFD38C": "Grandis", 1498 | "FFD700": "Gold", 1499 | "FFD800": "School bus Yellow", 1500 | "FFD8D9": "Cosmos", 1501 | "FFDB58": "Mustard", 1502 | "FFDCD6": "Peach Schnapps", 1503 | "FFDDAF": "Caramel", 1504 | "FFDDCD": "Tuft Bush", 1505 | "FFDDCF": "Watusi", 1506 | "FFDDF4": "Pink Lace", 1507 | "FFDEAD": "Navajo White", 1508 | "FFDEB3": "Frangipani", 1509 | "FFE1DF": "Pippin", 1510 | "FFE1F2": "Pale Rose", 1511 | "FFE2C5": "Negroni", 1512 | "FFE5A0": "Cream Brulee", 1513 | "FFE5B4": "Peach", 1514 | "FFE6C7": "Tequila", 1515 | "FFE772": "Kournikova", 1516 | "FFEAC8": "Sandy Beach", 1517 | "FFEAD4": "Karry", 1518 | "FFEC13": "Broom", 1519 | "FFEDBC": "Colonial White", 1520 | "FFEED8": "Derby", 1521 | "FFEFA1": "Vis Vis", 1522 | "FFEFC1": "Egg White", 1523 | "FFEFD5": "Papaya Whip", 1524 | "FFEFEC": "Fair Pink", 1525 | "FFF0DB": "Peach Cream", 1526 | "FFF0F5": "Lavender blush", 1527 | "FFF14F": "Gorse", 1528 | "FFF1B5": "Buttermilk", 1529 | "FFF1D8": "Pink Lady", 1530 | "FFF1EE": "Forget Me Not", 1531 | "FFF1F9": "Tutu", 1532 | "FFF39D": "Picasso", 1533 | "FFF3F1": "Chardon", 1534 | "FFF46E": "Paris Daisy", 1535 | "FFF4CE": "Barley White", 1536 | "FFF4DD": "Egg Sour", 1537 | "FFF4E0": "Sazerac", 1538 | "FFF4E8": "Serenade", 1539 | "FFF4F3": "Chablis", 1540 | "FFF5EE": "Seashell Peach", 1541 | "FFF5F3": "Sauvignon", 1542 | "FFF6D4": "Milk Punch", 1543 | "FFF6DF": "Varden", 1544 | "FFF6F5": "Rose White", 1545 | "FFF8D1": "Baja White", 1546 | "FFF9E2": "Gin Fizz", 1547 | "FFF9E6": "Early Dawn", 1548 | "FFFACD": "Lemon Chiffon", 1549 | "FFFAF4": "Bridal Heath", 1550 | "FFFBDC": "Scotch Mist", 1551 | "FFFBF9": "Soapstone", 1552 | "FFFC99": "Witch Haze", 1553 | "FFFCEA": "Buttery White", 1554 | "FFFCEE": "Island Spice", 1555 | "FFFDD0": "Cream", 1556 | "FFFDE6": "Chilean Heath", 1557 | "FFFDE8": "Travertine", 1558 | "FFFDF3": "Orchid White", 1559 | "FFFDF4": "Quarter Pearl Lusta", 1560 | "FFFEE1": "Half and Half", 1561 | "FFFEEC": "Apricot White", 1562 | "FFFEF0": "Rice Cake", 1563 | "FFFEF6": "Black White", 1564 | "FFFEFD": "Romance", 1565 | "FFFF00": "Yellow", 1566 | "FFFF66": "Laser Lemon", 1567 | "FFFF99": "Pale Canary", 1568 | "FFFFB4": "Portafino", 1569 | "FFFFF0": "Ivory", 1570 | "FFFFFF": "White" 1571 | ] 1572 | -------------------------------------------------------------------------------- /Sources/Parser.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | struct Parser { 4 | 5 | func parse(hex: String) -> String? { 6 | let hex = hex.replacingOccurrences(of: "#", with: "") 7 | guard hex.characters.count == 6 else { 8 | return nil 9 | } 10 | 11 | var name = "" 12 | var minDiff: Float = Float.greatestFiniteMagnitude 13 | 14 | mapping.forEach({ key, value in 15 | let diff = self.diff(hex1: hex, hex2: key) 16 | 17 | if diff < minDiff { 18 | minDiff = diff 19 | name = value 20 | } 21 | }) 22 | 23 | return name 24 | } 25 | 26 | // MARK: - Helper 27 | 28 | func diff(hex1: String, hex2: String) -> Float { 29 | let rgb1 = Converter().rgb(hex: hex1) 30 | let hsl1 = Converter().hsl(rgb: rgb1) 31 | 32 | let rgb2 = Converter().rgb(hex: hex2) 33 | let hsl2 = Converter().hsl(rgb: rgb2) 34 | 35 | let diffRGB = pow(rgb1.r - rgb2.r, 2) + pow(rgb1.g - rgb2.g, 2) + pow(rgb1.b - rgb2.b, 2) 36 | let diffHSL = pow(hsl1.h - hsl2.h, 2) + pow(hsl1.s - hsl2.s, 2) + pow(hsl1.l - hsl2.l, 2) 37 | return diffRGB + diffHSL * 2 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Sources/RGB.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | struct RGB: Equatable { 4 | let r: Float 5 | let g: Float 6 | let b: Float 7 | } 8 | 9 | func == (lhs: RGB, rhs: RGB) -> Bool { 10 | return lhs.r == rhs.r 11 | && lhs.g == rhs.g 12 | && lhs.b == rhs.b 13 | } 14 | -------------------------------------------------------------------------------- /bin/bootstrap: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | carthage bootstrap --platform iOS,Mac 4 | cp Cartfile.resolved Carthage -------------------------------------------------------------------------------- /bin/bootstrap-if-needed: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if ! cmp -s Cartfile.resolved Carthage/Cartfile.resolved; then 4 | bin/bootstrap 5 | fi --------------------------------------------------------------------------------