diff options
Diffstat (limited to 'src/main/scala/reading/component/style/Color.scala')
-rw-r--r-- | src/main/scala/reading/component/style/Color.scala | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/main/scala/reading/component/style/Color.scala b/src/main/scala/reading/component/style/Color.scala index 1f44eb5..ed2041f 100644 --- a/src/main/scala/reading/component/style/Color.scala +++ b/src/main/scala/reading/component/style/Color.scala @@ -7,19 +7,14 @@ import scalacss.internal.{ ValueT, Color => ScalaCssColor } case class Color(red: Int, green: Int, blue: Int, alpha: Double = 1.0) { val value: ValueT[ValueT.Color] = ScalaCssColor.rgba(red, green, blue, alpha) - def lighten(n: Int): Color = - Color( - red = Color.bound(red + n), - green = Color.bound(green + n), - blue = Color.bound(blue + n), - alpha = alpha - ) + def lighten(pct: Int): Color = ratio(1.0 + pct / 100.0) + def darken(pct: Int): Color = ratio(1.0 - pct / 100.0) - def darken(n: Int): Color = + private def ratio(r: Double): Color = Color( - red = Color.bound(red - n), - green = Color.bound(green - n), - blue = Color.bound(blue - n), + red = Color.bound(red * r), + green = Color.bound(green * r), + blue = Color.bound(blue * r), alpha = alpha ) } @@ -44,4 +39,5 @@ object Color { ) def bound(n: Int): Int = Math.max(0, Math.min(255, n)) + def bound(d: Double): Int = bound(d.toInt) } |