 	toHsl: ->
 		@_hsl = rgbToHsl(@_r, @_g, @_b) if @_hsl == undefined
 		return { h: @_hsl.h * 360, s: @_hsl.s, l: @_hsl.l, a: @_a }
+
+	toHusl: ->
+		if @_husl == undefined
+			husl = lchToHusl luvToLch xyzToLuv rgbToXyz([@r/255, @g/255, @b/255])
+			@_husl = { h: husl[0], s: husl[1], l: husl[2] }
+
+		return @_husl
 
 	toHslString: ->
 		hsl = rgbToHsl(@_r, @_g, @_b)

	##############################################################
	## Class methods

	@mix: (colorA, colorB, fraction = .5, limit = false, model = "hsl") ->

		result = null



			else if color.hasOwnProperty("h") or color.hasOwnProperty("s")

				h = if isNumeric(color.h) then parseFloat(color.h) else 0
				h = (h + 360) % 360
				s = if isNumeric(color.s) then convertToPercentage(color.s) else 1
				if _.isString(color.s) then s = numberFromString(color.s)
