From 331ba46cfb1355ac5d699cc040e726bca2b22118 Mon Sep 17 00:00:00 2001 From: Natalie Weizenbaum Date: Fri, 9 Dec 2016 13:44:51 -0800 Subject: [PATCH] Allow saturate($number). --- CHANGELOG.md | 2 ++ lib/src/functions.dart | 23 ++++++++++++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d21cf5b1b..9f496a106 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ * Fix a bug with `@extend` superselector calculations. +* Allow a single number to be passed to `saturate()` for use in filter contexts. + ## 1.0.0-alpha.4 * Add support for bracketed lists. diff --git a/lib/src/functions.dart b/lib/src/functions.dart index cdd1cdd69..80ff476e4 100644 --- a/lib/src/functions.dart +++ b/lib/src/functions.dart @@ -185,13 +185,22 @@ void defineCoreFunctions(Environment environment) { .clamp(0, 100)); }); - environment.defineFunction("saturate", r"$color, $amount", (arguments) { - var color = arguments[0].assertColor("color"); - var amount = arguments[1].assertNumber("amount"); - return color.changeHsl( - saturation: (color.saturation + amount.valueInRange(0, 100, "amount")) - .clamp(0, 100)); - }); + environment.setFunction(new BuiltInCallable.overloaded("saturate", [ + r"$number", + r"$color, $amount", + ], [ + (arguments) { + var number = arguments[0].assertNumber("number"); + return new SassString("saturate(${number.toCssString()})"); + }, + (arguments) { + var color = arguments[0].assertColor("color"); + var amount = arguments[1].assertNumber("amount"); + return color.changeHsl( + saturation: (color.saturation + amount.valueInRange(0, 100, "amount")) + .clamp(0, 100)); + } + ])); environment.defineFunction("desaturate", r"$color, $amount", (arguments) { var color = arguments[0].assertColor("color");