Skip to content

Instantly share code, notes, and snippets.

@grhowes
Created April 6, 2016 12:12
Show Gist options
  • Save grhowes/6dd5f41a70b707f59cd1370ca629633f to your computer and use it in GitHub Desktop.
Save grhowes/6dd5f41a70b707f59cd1370ca629633f to your computer and use it in GitHub Desktop.
//
// UIColor+GH.swift
// Generally Helpful Software
//
// Created by Glenn Howes on 1/15/16.
// Copyright © 2016 Generally Helpful Software. All rights reserved.
//
// MIT License
import UIKit
import Colours
@objc class ColorPair: NSObject
{
let mainColor: UIColor
let highlightColor: UIColor
init(mainColor: UIColor, highlightColor: UIColor)
{
self.mainColor = mainColor
self.highlightColor = highlightColor
}
}
var sGoodColors:[UIColor]?
extension UIColor
{
class func goodColors()-> [UIColor]
{
if sGoodColors == nil
{
sGoodColors = [UIColor.infoBlueColor(), UIColor.successColor(), UIColor.warningColor(),
UIColor.moneyGreenColor(), UIColor.limeColor(), UIColor.cardTableColor(),
//UIColor.salmonColor(),
//UIColor.brickRedColor(), UIColor.grapefruitColor(), UIColor.pinkColor(),
UIColor.indianRedColor(), UIColor.strawberryColor(), UIColor.maroonColor(),
// UIColor.watermelonColor(), UIColor.tomatoColor(), UIColor.crimsonColor(),
UIColor.dangerColor(), UIColor.black25PercentColor(), UIColor.tealColor(),
UIColor.steelBlueColor(), UIColor.robinEggColor(), UIColor.pastelBlueColor(),
UIColor.turquoiseColor(), UIColor.skyBlueColor(), UIColor.indigoColor(),
UIColor.denimColor(), UIColor.blueberryColor(), UIColor.cornflowerColor(),
UIColor.midnightBlueColor(), UIColor.fadedBlueColor(), UIColor.waveColor(),
UIColor.emeraldColor(), UIColor.grassColor(), UIColor.seafoamColor(), UIColor.cactusGreenColor(),
//UIColor.chartreuseColor(),
UIColor.hollyGreenColor(), UIColor.oliveColor(),
UIColor.eggplantColor(), UIColor.pastelPurpleColor(), UIColor.coolPurpleColor(),
UIColor.plumColor(), UIColor.raspberryColor(), UIColor.fuschiaColor(), UIColor.grapeColor(),
UIColor.periwinkleColor(), UIColor.orchidColor(), UIColor.goldenrodColor(), UIColor.mustardColor(),
UIColor.goldColor(), UIColor.peachColor(), UIColor.burntOrangeColor(),
UIColor.cantaloupeColor(), UIColor.carrotColor(), UIColor.mandarinColor(), UIColor.chiliPowderColor()
]
}
return sGoodColors!
}
class func colorSchemeForName(name: String)->ColorPair
{
let myColors = goodColors()
let maxColor = myColors.count
let hash = abs(name.hash)
let index = hash % maxColor
let mainColor = myColors[index]
let highlightColor = mainColor.blackOrWhiteContrastingColor()
return ColorPair(mainColor: mainColor, highlightColor: highlightColor)
}
}
@grhowes
Copy link
Author

grhowes commented Apr 6, 2016

Requires the Colours framework, available via Cocoapod.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment