Releases: less/less.js
Releases · less/less.js
v4.0.0
This release has 2 breaking changes:
Parentheses required for mixin calls
This aligns it with syntax for calling detached rulesets.
Example
.mixin() {}
.mixin; // error in 4.0
Parens-division now the default math setting
Parentheses are required (by default) around division-like expressions, to force math evaluation.
Example:
@ratio_large: 16;
@ratio_small: 9;
/** The following will produce `device-aspect-ratio: 1.77777778` by default in 3.x */
@media all and (device-aspect-ratio: @ratio_large / @ratio_small) {
.body { max-width: 800px; }
}
Produces:
@media all and (device-aspect-ratio: 16 / 9) {
.body {
max-width: 800px;
}
}
You can, of course, get old math behavior. See: http://lesscss.org/usage/#less-options-math
What's New
- min() / max() functions can pass-through if it cannot be evaluated in Less
- isdefined() can be used to test if variables are defined (e.g.
isdefined(@unknown)
) - New rgb color syntax supported (e.g.
rgb(0 128 255 / 50%)
)
v2.7.2
2.5.1
2.5.0
- 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
- 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)
v2.3.1
v2.3.0
- 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
v2.2.0
- 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.
v2.1.2
v2.1.1
- 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 propogates instead of calling the callback again with an error