aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/reading/component/style/Color.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/reading/component/style/Color.scala')
-rw-r--r--src/main/scala/reading/component/style/Color.scala18
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)
}