diff --git a/lib/less/functions.js b/lib/less/functions.js index 1f63993b1..d8f5761f9 100644 --- a/lib/less/functions.js +++ b/lib/less/functions.js @@ -157,6 +157,22 @@ tree.functions = { return hsla(hsl); }, + brighten: function (color, amount) { + var hsv = color.toHSV(); + + hsv.v += amount.value / 100; + hsv.v = clamp(hsv.v); + + return hsva(hsv); + }, + dim: function (color, amount) { + var hsv = color.toHSV(); + + hsv.v -= amount.value / 100; + hsv.v = clamp(hsv.v); + + return hsva(hsv); + }, // // Copyright (c) 2006-2009 Hampton Catlin, Nathan Weizenbaum, and Chris Eppstein // http://sass-lang.com @@ -641,6 +657,10 @@ function hsla(color) { return tree.functions.hsla(color.h, color.s, color.l, color.a); } +function hsva(color) { + return tree.functions.hsva(color.h, color.s, color.v, color.a); +} + function scaled(n, size) { if (n instanceof tree.Dimension && n.unit.is('%')) { return parseFloat(n.value * size / 100); diff --git a/test/css/functions.css b/test/css/functions.css index 9694a7a3b..c39f8b9db 100644 --- a/test/css/functions.css +++ b/test/css/functions.css @@ -12,6 +12,8 @@ darken: #330000; saturate: #203c31; desaturate: #29332f; + brighten: #cc0000; + dim: #660000; greyscale: #2e2e2e; hsl-clamp: #ffffff; spin-p: #bf6a40; diff --git a/test/less/functions.less b/test/less/functions.less index b50a0da58..b06f5c692 100644 --- a/test/less/functions.less +++ b/test/less/functions.less @@ -16,6 +16,8 @@ darken: darken(#ff0000, 40%); saturate: saturate(#29332f, 20%); desaturate: desaturate(#203c31, 20%); + brighten: brighten(#660000, 40%); + dim: dim(#cc0000, 40%); greyscale: greyscale(#203c31); hsl-clamp: hsl(380, 150%, 150%); spin-p: spin(hsl(340, 50%, 50%), 40);