## 3.9.0 2018-11-28 - Added `range([start=1], end, [step=1])` function to generate lists - Fixes #3325 #3313 #3328 ## 3.8.1 2018-08-07 - Fixes for sourcemaps and color functions - Support for #RRGGBBAA color format - Allows conversion of colors to `rgba()` or `hsla()` - Pass-through output of unknown properties in color functions (allows `var(--color)` for example) ## 3.8.0 2018-07-22 - New feature: added rewrite urls to replace relative url option. Adds "local" option for modules ## 3.7.1 2018-07-11 - Fixes mistake in `lessc` (using `console.warning` instead of actual `console.warn`) - Adds `lessc` tests ## 3.7.0 2018-07-11 - New each() function! [See docs](http://lesscss.org/functions/#list-functions-each) - New math modes! Also [see docs](http://lesscss.org/usage/#less-options-math). - Bug fixes ## 3.6.0 2018-07-10 - Allows plain conditions in `if(true, 1, 2)` (vs. `if((true), 1, 2)`) - Fixes svg-gradient() for Firefox - Adds more 3rd-party tests for fewer surprises when upgrading - Removes (broken) `less-rhino` implementation - use other Java ports ## 3.5.3 2018-07-06 - Reverts `@media` eval change - Other bug fixes ## 3.5.0 2018-07-05 - Feature: Namespaced Values / Maps e.g. `color: @color[primary]` - Fixes to calc() - Permissive parsing of custom properties and variables - Inline expressions now not evaluated in at-rules `@media (min-width: @var) {}` works, `@media (min-width: @var + 1) {}` will not - Allows unnamed lookups i.e. "functions" e.g. `.mixin(@a, @b)[]` - Lots of bug fixes ## 3.5.0-beta.4 2018-06-30 - Fixes #3235, #3187 - Feature: Namespaced Values e.g. `color: #color[primary]` ## 3.5.0-beta.3 2018-06-29 - Fix: browser cache is always considered stale if .modifyVars wasn't ## 3.5.0-beta.2 2018-06-27 - Re-parses selectors after variables in selectors are evaluated - Fixes #1421 - Fixes #3191 ## 3.5.0-beta 2018-06-24 - Adds permissive parsing for at-rules and custom properties - fixes #3147 #2715 - Updates dependencies - Fixes file caching issue (not reloading modified files in "watched" environments) ## 3.0.4 2018-05-06 - Update source-map to 0.6.x (#3180). Enforces node 6+ though. ## 3.0.0 2018-02-10 - Fix `calc()` function to not do math operations on compile - Rename Directive -> AtRule & Rule -> Declaration - Cross-platform `@plugin` loading! (Node & Browser) - Numerous changes / improvements to plugin architecture - Simplified API calls in plugins (`less.atrule()` vs `new less.tree.AtRule()`) - Property accessors (`$width` to refer to `width: 300px` value) - Inline JavaScript disabled by default for security reasons (use `@plugin`) - Improvements in Less error reporting - Added feature: returning `null` / `false` from Less functions will remove that line - Simple `boolean()` and `if()` functions added - Bug fixes - Removal of unnecessary nodes from API (like IE's `alpha()`) ## 2.7.3 2017-10-23 - Bump `request` dependency ## 2.7.2 2017-01-04 - Revert breaking changes to contrast() function - Fix error reporting of lessc executable - Changed octals to hex for ES6 strict mode ## 2.7.1 HOTFIX 2016-05-09 - Revert commit 470af20 (source map performance) which broke source maps ## 2.7.0 2016-05-07 - Fixes for contrast() function - Allow root functions for plugins - Allow semi-colon separators in functions - Performance improvements for source maps - Fix "blank page" issue in browser - Compatibility fixes for Node 6.x - Fix AST to include single-line comments - Fix reversion for "color-like" words (outputting color values) ## 2.6.1 2016-03-04 - Update Less.js dependencies - Fix comments after named color regression - use instanceof operator instead of class comparison optimization - disallow whitespace in variable calls ## 2.6.0 2016-01-29 - Underscore now allowed in dimension unit - Fixes for import by reference - Fix for #2384 Changes HTTPRequest "sync" setting to simply hide the page until less has rendered, browser version is now orders of magnitude faster. - Added ability to cache stylesheets while using modifyVars - Error when when image-size functions are used in browser-less - Fixed extend leaking through nested parent selector. #2586 - Added "or" keyword and allowed arbitrary logical expression in guards - Fixing #2124 - Parsing Error "Unrecognised input" for color operations - Logical operator ```and``` now has higher precedence than logical operator ```or```. - Allow unknown at-rules w/o {} block ## 2.5.3 2015-09-25 - Fix import inline a URL ## 2.5.2 2015-09-24 - No output should result in an empty sourcemap - Import inline located inside file imported by reference should not be present in output - Shorthand colors will stay shorthand - Make percentage work like other math functions and throw an error on NaN - Fixed mixin definition matching problem when mixin definition contains parameters with default values - Observe reference for imported comments ## 2.5.1 2015-05-21 - Fix problems with less being async in some browsers - Minor fix only likely to affect programmatic usage of ruleset find - Fix error when a namespaced mixin is invoked in global scope ## 2.5.0 2015-04-03 - supports the scoped `@plugin` directive to load function plugins - All directives are bubbled (e.g. supports), not just media - Performance improvements to the parser - should help non-chrome browsers with very large less files to be a lot quicker. - the image size function respects include paths like other file functions - colour functions take a relative argument that applies percentages relatively instead of absolutely - include paths now allows : as a separator on windows (recognising and not splitting drive names by the backslash) - `@import (css)` does not pull the directive above comments - Fix for import statements without quotes sometimes causing issues - replace supports dimensions and colours - the browser field is set in the package.json for use with browserify - another fix to support paths being passed as a string instead of an array - detached rulesets can be used as default arguments - Fix a lot of false warnings about extends - errors written to stderr more consistently - consistently keep units if strict units is off - Better support for comments in function all arguments ## 2.4.0 2015-02-07 - Support for plugins that pre-process (to add libraries silently etc.) - Empty sourcemaps now work - Extract and Length functions now ignore comments in a list (more work to come to fix the general problem) - fragment urls are treated absolute since they refer to the html document - Extends on a selector joined with `&` now work better - Nested mixins work better with !important (regression in 2.3.0) - The promise dependency is now actually optional (introduced in 2.0.0) - Files with just `\r` newlines now process ok (regression in 2.0.0) - When strict units is off and the unit is 1/x, (e.g. 1 / 12px) the unit output is x, previously nothing (regression in 2.0.0) ## 2.3.1 2015-01-28 - Fix depends option (regression in 2.3.0) - Support parent selector (`&`) used in sub element expression (e.g. `:not(.c_&)`) ## 2.3.0 2015-01-27 - add `isruleset` function - add optional import option, causing less to not fail if file not found - Fix browsers-side cache. - Many fixes to import reference - support `@support` and keyframe - Selectors now interpolate pseudo selectors (e.g. `:@{hover}`) - Fix comments missed off if they were at the end of the file - Fix !important used with parametric mixins - Emits warnings for extends when the target is not found - include-path now works on data-uri - variables and function calls work for path in data-uri - Fix absolute paths not working on imports sometimes. - Unicode BOM removed again - Misc. bug fixes ## 2.2.0 2015-01-04 - do not apply relative paths to svg-gradient and data-uri functions data-uri output - using import filename interpolation and import inline together now works - deprecate the compression option (still works, but outputs a warning unless silent) - The node version of less now has image-size, image-width, image-height which return the image dimensions of a file - Fixed an issue that could cause the parse to occur more than once and the callback be called multiple times - if you are outputting to the console, lessc defaults to silent so warnings do not end up in output - `isunit` function supports `''` to test if a dimension has no unit - data-uri function now counts characters after base64 encoding instead of bytes before encoding to determine ie8 support - fix bug effecting guards on pseudo class selectors - do not cache on the browser when used with modifyVars - detection if less does not parse last character in file - detection of whether a file is css now requires `/css`, `.css`, `?css`, `&css` instead of just `css`. You can still tell less the type of file using import options. - remove extra new line added to sourcemap entry inline file - support safari extension - less.parse now exposes a way to get the AST. We do not recommend you use this unless you need to. ## 2.1.2 2014-12-20 - Fix for use with requirejs - Fixes for data-uri function ## 2.1.1 2014-11-27 - Improved keyword and anonymous usage with the replace function - Added `getCSSAppendage` to sourcemap builder to avoid duplication in plugins - Fix problem with plugins when used with the promises version of render - If the render callback throws an exception it now propagates instead of calling the callback again with an error ## 2.1.0 2014-11-23 - Fixed `isSync` option, it was using sync file operations but promises are guaranteed to call back async. We now support promises as a feature rather than the 1st class way of doing things. - Browser code is now synchronous again, like in v1, meaning it blocks the site until less is compiled - Some fixes for variable imports which affected filemanagers when synchronous - Fixed lessc makefile dependencies option - output now reports back a imports field with an array of imported files - relative path test for drive names (so windows only) is now case insensitive - Fix for IE7 - use getChar instead of indexing array - variables using !important now output !important, which bubbles up to affect the rule - livereload cache buster is now treated specially - upgrade dependencies ## 2.0.0 2014-11-09 - Fixed multiplication in non strict units mode to take the left operand unit, in the case that the unit cannot be resolved - Some fixes for browser cross-compatibility - browser tests now pass in IE 8-11 and FF - added index.js and browser.js in root as shortcuts - fixed some local variable spellings - support for `@counter-style` directive ## 2.0.0-b3 2014-11-01 - some refactoring of browser structure to allow use of api vs normal browser bundle - browser bundle no longer leaks require - browser can now be scoped with just window - browser `useFileCache` defaults to `true`, but file cache is now cleared when refreshing or in watch mode ## 2.0.0-b2 2014-10-26 - Imports are now sequenced and so are consistent (previously some complex projects might end up with occasional different orderings) - Imports with variables are better supported - variables can be specified in sub imports - Support for rebeccapurple - Browser can now accept options as attributes on the script tag and the link tags e.g. `