-
Notifications
You must be signed in to change notification settings - Fork 47
Released Versions
Compatible with less.js 2.6.0
- Fixed bug: extract used to fail on non-list argument.
Compatible with less.js 2.6.0
- Fixed bug: some color were converted into invalid 7-digit hex codes.
Compatible with less.js 2.6.0
- Added
--ieCompatibility
command line option and correspondingieCompatibility
configuration property. They can turn off ie8 limitation files size check inside data-uri function. It is equivalent of less.js--no-ie-compat
option. - Performance optimization on import inline statements.
- Fixed bug: infinite loop caused by top level selector with nested appender.
Compatible with less.js 2.6.0
- Added or keyword into guards.
- Allowed arbitrary nested parentheses in guards.
- Import by reference has now general solution and should be defined and work in all contexts.
- All references to Json and its non-standard license were removed and Less4j is now evil friendly.
- Bug fix: detached ruleset outside of variable declaration work again.
Compatible with less.js 2.5.3
- Bug fix: allowed detached as
@keyframes
member.
Compatible with less.js 2.5.3
- Performance improvements.
- Added source jar generation.
- Externalizing AST cache, so that it can be reused across compile calls.
Compatible with less.js 2.5.3
- Additional space before appender in nested selectors fixed.
Compatible with less.js 2.5.1
- Both
<=
and=<
are now accepted as lower or equal operators. - Space between media and its condition is not required anymore.
- Space separated list can contain comments.
- Allowed space around selector attribute operator.
Compatible with less.js 2.5.1
- Support mixin argument expansion - elipsis.
- It is possible to programatically configure additional variables.
- Added all three image-size functions: image-size, image-width, image-length.
- Added new angle dimension turn. One turn is equal to 360 degrees.
- Guards convert numbers into the same units before comparing them. If impossible, guard returns false.
- Add
+
and subtract-
now convert numbers into the same units before adding/subtracting them. If impossible, numbers are treated as values only and result is assigned leftmost explicit type. - File imported as
multiple
treats all nested imports as if they would encountered first time. First importonce
stored inside such file is evaluated regardless of what parent files already imported. - Imported files are cached. If sheet imports the same file multiple times, the file will be read and parsed only once.
- Forced error if namespace uses undefined variable.
- Amount parameter of tint and shade functions are optional and default to 50%.
- Fixed contrast function - light and dark arguments can be supplied in any order.
- Fixed parse error - less4j now allows space between
~
and"
in escaped value. - Fixed compile error - math operation (+, -) between string and number would return an error instead of being compiled into space separated list.
- Fixed null pointer exception on important empty declaration.
- Fixed handling of alpha in color blending functions.
- Added thread interrupted check so thread running the compiler can be stopped.
- Added timeouted less compiler which stops compilation if it runs too long. Use it to prevent infinite consumption of resources.
- Top level rulesets allow appender
&
. - Added less sources able to read from multiple directories
MultiPathFileSource
MultiPathstringSource
. They work as equivalent of less.js --include-path option.
- Fixed parse error on appender
&
followed by a guard. - Fixed parse error on mixin reference with multiple detached rulesets.
- When the compression is set to true, css at-rules bodies compile into one line.
- Fixed OutOfMemory error when compiling heavy sources.
- Grammar refactoring, parsing phase should be slightly faster.
- Enabled bubbling for all css directives (at-rules).
- Namespaces can have guards.
- Mixins with parameters are not used as namespaces.
- Darken, lighten, saturate, desaturate, fadein and fadeout functions can work in both absolute and relative modes.
- Svg-gradient accepts list of colors as parameter.
- Fixed scope issues that caused mixins looping failures.
- Non-breaking space unicode character (U+00A0) is treated as whitespace.
- Declaration values allow slash, so ie hack
0\9
is possible. - Detached rulesets used as mixin argument defaults do not generate warning.
- Improved error reporting. Errors and warnings now display three lines of code which caused the problem.
- Import has new
optional
option. - Added
isruleset
function. It returns true if parameter contains detached ruleset. - Data-uri function does not default to base64 on svg files. Svg files are now are treated same way as other text files.
- Equality ignores difference in color notation e.g.
lima
is equal to#008800
and to#080
. - Color that was not manipulated keeps its form when printed into output.
- The
%s
option of format function allows also colors. - Format function keeps quote types of its format parameter.
- Import supports multiple options.
- Data-uri function generates large data warning from length of encoded data.
- Color names (red, blue) are allowed as names of indirectly referenced variables.
- Fixed parser failure on some special variable names followed by space.
- Less.js compatibility: Allows pointless comma
,
on the end of selector.
- underscore (
_
) is now allowed inside selectors, mixin names, etc, -
!important
can be used inside variable declarations, - extend supports multiple selectors as arguments,
- the
transparent
css color name is interpreted as color, - fixed import inline of css files,
- fixed error returned by import inline on unavailable file,
- fixed extend of rulesets nested inside media and supports imported by reference.
- support for
/deep/
combinator, - allowed
$
and.
in expression identifiers (e.g.$aa.bb
), - allowed empty variables,
- source files without mappable symbols are now added into source map files list.
- switched default encoding to utf-8,
- relative file source now inherits charset of its parent,
- less file source has new constructor to make it more extensible.
- Bugfix: last mixin call does not have to be followed by semicolon.
- fragments handling to data-uri function,
- support for ANTLR 3.5.
- enabled re-iteration of string interpolation,
- added hsvhue, hsvsaturation, hsvvalue, luminance color functions,
- added min, max, length functions,
- added isurl, isunit, get-unit functions,
- added replace and svg-gradient functions.
Notes:
- 1: extend still has some known open issues, however those are open also in less.js.
- 2: re-iteration of string interpolation might be changed in the future depending on https://github.com/less/less.js/issues/2094
- detached rulesets are now implemented,
- optional minification of generated css,
- allowed custom source maps urls,
- charset support for
URISource
andFileSource
, - media and rulesets with empty bodies are removed.
Notes:
- 1: extend still has some known open issues, however those are open also in less.js.
- indirect variables are allowed to reference all types - including escaped values,
- imported once is now default behavior,
- import files order fixed.
Notes:
- 1: extend still has some known open issues, however those are open also in less.js.
- support for inline source maps,
- generated source map can contain content of original less files.
Notes:
- 1: extend still has some known open issues, however those are open also in less.js.
- color functions keep rgb values as rgb - they used to convert them into rgba,
- equal operator on strings ignores quote types e.g. 'value'="value",
- added support for custom css directives.
Notes:
- 1: extend still has some known open issues, however those are open also in less.js.
- allowed extended names in mixin calls, namespaces names and mixins names,
- added support for variables in charsets and keyframes,
- added guards on css styles.
Notes:
- 1: extend still has some known open issues, however those are open also in less.js.
- added api for embedded scripting - including custom interpolation.
Notes:
- 1: extend still has some known open issues, however those are open also in less.js.
- 2: less4j-javascript plugin was released simultaneously.
- scripts inside `..` and ~`...` are new special cases of custom functions.
Notes:
- 1: extend still has some known open issues, however those are open also in less.js.
- fixed bug in (reference) import,
- added support for custom functions.
Notes:
- 1: extend still has some known open issues, however those are open also in less.js.
- fixed null pointer exception.
Notes:
- 1: extend still has some known open issues, however those are open also in less.js.
- default function was made fully compatible with less.js,
- turned off variable interpolation in unquoted urls,
- added cat
^^
and hat^
shadow DOM selectors, - added import options,
- deprecated old import-once and import-multiplt.
Notes:
- 1: extend still has some known open issues, however those are open also in less.js.
- added support for space separated properties merge,
- added variable interpolation inside import urls.
Notes:
- 1: extend still has some known open issues, however those are open also in less.js.
- 2: default function is not compatible with what less.js done.
- data-uri function for resources embedding,
- default function for mixin guards,
- fixed
!important
properties are merged separately.
Notes:
- 1: extend still has some known open issues, however those are open also in less.js.
- added property name interpolation,
- allowed space separated variables list in media expressions,
- added support for property merge
property-name+
.
Notes:
- 1: extend still has some known open issues, however those are open also in less.js.
- implemented extend all,
- added support for
&:extend
inside body, - fixed
@import
inside jar files.
Notes:
- 1: extend still has some known open issues, however those are open also in less.js.
- Extend in
@media
body extends only rulesets defined inside that@media
body. - Looping mixin was not able to call other mixins. It prevented compilation of Bootstrap 3.0.2.
- first basic version of selectors extend.
Notes:
- 1: the all modifier is not supported and extend from inside media at-rule does not work properly.
- antlr dependency replaced by antlr-runtime,
- improved speed,
- requires less memory.
- cycle detection for rulesets usable as mixin,
- support for semicolon at the end of mixin arguments declaration,
- formatting of rbga color does not loose alpha anymore,
- bubbled up media at-rules and nested rulesets keep their relative positions,
- selectors with combinators can be used as mixins,
- multiple & appender bugs fixed.
Special remark:
- compiles Bootstrap 3.0 the same way as less-1.4.2.js.
- allowed any casing for functions,
- hotfix: 'required class missing' error fixed.
- first source map support,
- error reporting: less4j exception
getMessage
andtoString
show first two compilation errors.
- mixin return values do not rewrite local scope variables,
- added mixins unlocking.
Special remark:
- created a suite of release tests to ensure correct compilation of twitter bootstrap.
- fixed scoping issue that caused incorrect bootstrap responsive compilation,
- added support for vendor specific
@viewport
dialects.
Special remark:
- less4j-1.0.3 compiles twitter bootstrap responsive the same way as less-1.3.3.js.
- added return values for mixins (1.3.x compatible behavior),
- removed unused dependencies on slf4j.
- support for @supports,
- jCommander dependency was made optional,
- various bug fixes.
- floating numbers format bug fix,
- support for @-moz-document.
- semicolon as mixins arguments divisor,
- allowed variables inside media queries,
- escaped values in guards should are comparable to identifiers,
- strings interpolation now uses hexadecimal representation and ignores original color format,
- appender brought to top level by mixins is removed and does not cause errors anymore,
- urls ending with "/css" are considered css files by import,
- import once ignores differences in path format,
- step up in import directory does not confuse imported file suffix detection,
- rulesets nested in mixins now inherit mixins calls !important flag,
- allowed font-face inside a mixin,
- allowed useless semicolons in bodies,
- additional @charset declarations are now removed,
- leading ampersands are now ignored when doing mixins matching.
Notes:
- 1: mixins and namespaces conventions are not exactly the same as in less.js case.
- support for unicode range in font-face,
- support for ms filter functions,
- solved name clashes between filter and built-in functions,
- fixed validations and comments in structures with bodies (media, ruleset, page, ...),
- the '=' operator compares only numbers with the same dimension and numbers with no dimension.
Special remark:
- less4j-0.0.13 compiles twitter bootstrap the same way as less-1.3.3.js.
Notes:
- 1: the range of allowed mixins names is more limited then the one in less.js.
- less.js built-in functions,
- font-face supports less language features (variables, mixins, ...),
- media queries bubbling and merging,
- abstract less source and url based less source for more flexible import files loading.
Notes:
- 1: the range of allowed mixins names is more limited then the one in less.js.
Bugfix release, no new features.
- less file import on style sheet top level.
Notes:
- 1: the range of allowed mixins names is more limited then the one in less.js.
New additions:
- support for CSS3 @viewports,
- support for CSS3 paged media and page margin box,
- duplicate declaration detection in rulesets and viewports,
- list as default value of mixin parameter,
- removed log4j warning in command line.
Notes:
- 1: the range of allowed mixins names is more limited then the one in less.js.
New additions:
- mixins with extended names,
- rulesets with multiple selectors can be used as mixins,
- cycle detection for variables,
- new functions: format %(...), URI escaping escape(...), less escaping e(...),
- short namespace reference syntax without '>',
- top level mixins and namespaces references,
- list as mixin parameter,
- support for CSS @keyframes animations,
- new validation: appender on top level rulesets is not allowed.
Notes:
- 1: the range of allowed mixins names is more limited then the one in less.js.
New additions:
- deprecated selectors escaping and variables as pseudo classes parameters,
- added selectors interpolation,
- added math functions,
- star prefix browser hack now works.
Notes:
- 1: the range of allowed mixins names is more limited then the one in less.js.
New additions:
- less escaping for values and selectors,
- string interpolation.
Notes:
- 1: the range of allowed mixins names is more limited then the one in less.js.
New additions:
- both css classes and hashes now can be used as mixins,
- better error handling and reporting,
- fix maven jar packaging - it should not contain dependencies.
Notes:
- 1: the range of allowed mixins names is more limited then the one in less.js.
New additions:
- & appender for nested rules,
- named arguments for mixins,
- mixins can be used also as namespaces (e.g. closure).
Notes:
- 1: the range of allowed mixins names is more limited then the one in less.js.
New additions:
- less4j can run as standalone program from command line,
- namespaces,
- thread safety of the default compiler,
- operations on colors.
Notes:
- 1: closures and named arguments for mixins are not implemented in this version.
- 2: the range of allowed namespace names is more limited then the one in less.js.
New additions:
- mixins,
- lazy loading for variables,
- last win strategy for variables.
Note: closures and named arguments for mixins are not implemented in this version.
First maven release contains:
- operations (expressions),
- variables,
- nested rules.
Note: variables lazy loading and last win strategy are not implemented in this version.