diff --git a/lib/less/parser.js b/lib/less/parser.js index 325565a7..a2bd759b 100644 --- a/lib/less/parser.js +++ b/lib/less/parser.js @@ -563,7 +563,7 @@ less.Parser = function Parser(env) { // The arguments are parsed with the `entities.arguments` parser. // call: function () { - var name, args, index = i; + var name, args, alpha_ret, index = i; if (! (name = /^([\w-]+|%|progid:[\w\.]+)\(/.exec(chunks[j]))) return; @@ -572,7 +572,12 @@ less.Parser = function Parser(env) { if (name === 'url') { return null } else { i += name.length } - if (name === 'alpha') { return $(this.alpha) } + if (name === 'alpha') { + alpha_ret = $(this.alpha); + if(typeof alpha_ret !== 'undefined') { + return alpha_ret; + } + } $('('); // Parse the '(' and consume whitespace. diff --git a/test/css/colors.css b/test/css/colors.css index 77ab7a88..8ff5bad1 100644 --- a/test/css/colors.css +++ b/test/css/colors.css @@ -60,3 +60,18 @@ color: transparent; background-color: rgba(0, 0, 0, 0); } +#alpha #fromvar { + opacity: 0.7; +} +#alpha #short { + opacity: 1; +} +#alpha #long { + opacity: 1; +} +#alpha #rgba { + opacity: 0.2; +} +#alpha #hsl { + opacity: 1; +} diff --git a/test/less/colors.less b/test/less/colors.less index d4c6a851..d8038de8 100644 --- a/test/less/colors.less +++ b/test/less/colors.less @@ -66,5 +66,23 @@ .transparent { color: transparent; - background-color: rgba(0, 0, 0, 0); -} \ No newline at end of file + background-color: rgba(0, 0, 0, 0); +} +#alpha { + @colorvar: rgba(150, 200, 150, 0.7); + #fromvar { + opacity: alpha(@colorvar); + } + #short { + opacity: alpha(#aaa); + } + #long { + opacity: alpha(#bababa); + } + #rgba { + opacity: alpha(rgba(50, 120, 95, 0.2)); + } + #hsl { + opacity: alpha(hsl(120, 100%, 50%)); + } +}