 			b: @b
 			a: 0
 
-	mix: (colorB, fraction) ->
-		return Color.mix(@, colorB, fraction)
+	mix: (colorB, fraction, limit = false) ->
+		return Color.mix(@, colorB, fraction, limit)
 
 	toInspect: =>
 		"<#{@constructor.name} r:#{@r} g:#{@g} b:#{@b} a:#{@a}>"

		if colorB instanceof Color

			result = new Color
				r: Utils.modulate(fraction, [0, 1], [colorA._r, colorB._r], true)
				g: Utils.modulate(fraction, [0, 1], [colorA._g, colorB._g], true)
				b: Utils.modulate(fraction, [0, 1], [colorA._b, colorB._b], true)
				a: Utils.modulate(fraction, [0, 1], [colorA._a, colorB._a], true)

		return result


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

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

		result = null

		if typeof colorA is "string" and @isColorString(colorA)
			colorA = new Color colorA
