Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

less

less30mApache-2.04.3.0TypeScript support: definitely-typed

Leaner CSS

compile less, css nesting, css variable, css, gradients css, gradients css3, less compiler, less css, less mixins, less, less.js, lesscss, mixins, nested css, parser, preprocessor, bootstrap css, bootstrap less, style, styles, stylesheet, variables in css, css less

readme

Less.js

The dynamic stylesheet language. http://lesscss.org.

This is the JavaScript, official, stable version of Less.

Getting Started

Add Less.js to your project:

npm install less

changelog

Change Log

v4.1.3 (2022-06-09)

  • #3673 Feat: add support for case-insensitive attribute selectors (#3673) (@iChenLei)
  • #3710 Feat: add disablePluginRule flag for render() options (#3710) (@broofa @edhgoose)
  • #3656 Fix #3655 for param tag is null (#3658) (@langren1353)
  • #3658 Fix #3646 forcefully change unsupported input to strings (#3658) (@gzb1128)
  • #3668 Fix change keyword plugin and import regexp (#3668) (@iChenLei)
  • #3613 Fix #3591: refactor debugInfo from class to function (#3613) (@drdevlin)
  • #3716 Fix https failures on macOS (#3716) (@joeyparrish)

v4.1.2 (2021-10-04)

  • #3602 Fix currentFileInfo and index properties on nodes (#3602) (@bjpbakker)
  • #3626 Fix #3616 IfStatement requires double parentheses when dividing (#3626) (@iChenLei)
  • #3630 Fix needle dependency warning typo. (#3630) (@cjwilsontech)

v4.1.1 (2021-01-31)

  • #3597 Fix expected response when there's a socket error (#3597) (@zxfrank)
  • #3589 Fixes #3586 (#3589) (@matthew-dean)

v4.1.0 (2021-01-10)

  • #3582 Fix #3576 import redirects. Replace native-request with needle. (#3582) (@zaquest)
  • #3583 Update rollup and other build dependencies (#3583) (@pravi)
  • #3588 Roll back paren requirement on mixin calls (#3588) (@matthew-dean)

v4.0.0 (2020-12-18)

  • #3573 v4.0.0 (#3573) (@matthew-dean)

v3.13.1 (2020-12-18)

  • #3575 Fixes #3574 (#3575) (@matthew-dean)

v3.13.0 (2020-12-12)

  • #3572 Fixes #3434 - memory / runtime improvements (#3572) (@matthew-dean)
  • #3550 Examples contain more valid CSS, to test with a new parser (#3550) (@matthew-dean)
  • #3546 Bug fixes - fixes #3446 #3368 (#3546) (@matthew-dean)

v3.12.2 (2020-07-16)

  • #3545 Release 3.12.2 (#3545) (@matthew-dean)

v3.12.1 (2020-07-16)

  • #3544 Fixes #3533 (#3544) (@matthew-dean)
  • #3543 Fixes #3541 (#3543) (@matthew-dean)

v3.12.0 (2020-07-13)

  • #3540 v3.12.0-RC.2 (#3540) (@matthew-dean)
  • #3532 Fixes #3371 Allow conditional evaluation of function args (#3532) (@matthew-dean)
  • #3531 Remove lib folder from git (#3531) (@matthew-dean)
  • #3530 Move changelog to root (#3530) (@matthew-dean)
  • #3529 Duplicate dist files in root for older links (#3529) (@matthew-dean)
  • #3525 Test-data module (#3525) (@matthew-dean)
  • #3523 Fixes #3504 / organizes tests (#3523) (@matthew-dean)
  • #3501 Restore nuked scripts (?), replace dependencies (#3501) (#3522) (@matthew-dean)
  • #3521 Lerna refactor / TS compiling w/o bundling (#3521) (@matthew-dean)
  • #3517 Resolve #3398 Add flag to disable sourcemap url annotation (#3517) (@hirosato)
  • #3294 fix(#3294): use loadFileSync when loading plugins with syncImport: true (#3506) (@Justineo)

v3.11.3 (2020-06-05)

  • #3509 Fixes #3508 (#3509) (@matthew-dean)

v3.11.2 (2020-06-01)

  • #3498 Remove tree caching in import manager (#3498) (@matthew-dean)
  • #3482 issue#3481 ignore missing debugInfo (#3482) (@5UtJAjiRWj1q)
  • #3494 Additional check to avoid evaluating an expression if it is a comment (#3494) (@rgroothuijsen)
  • #3490 fix: Use make-dir instead of mkdirp (#3490) (@eps1lon)
  • #3493 Properly exit calc mode after use (#3493) (@rgroothuijsen)
  • #3477 Convert to auto-changelog (#3477) (@matthew-dean)

v3.11.1 (2020-02-11)

  • #3475 Fixes #3469 - Include tslib dependency (#3475) (@matthew-dean)

v3.11.0 (2020-02-09)

  • #3468 3.11.0 (#3468) (@matthew-dean)
  • #3453 Import file with dots in file name (#3453) (@life777)
  • #3460 - Fixed replacer when visitor returns array of nodes (#3460) (@lmartorella)
  • #3454 Added financial contributors to the README (#3454) (@monkeywithacupcake)
  • #3431 Fixes #3430: Removed unnecessary 'important' from NamespaceValue. (#3431) (@batchunag)
  • #3426 Fixes #3405 (#3426) (@matthew-dean)

v3.10.3 (2019-08-23)

  • #3424 Fixes #3423 #3420 (#3424) (@matthew-dean)
  • #3421 Rollup changed for Node 4 compatibility (#3421) (@matthew-dean)

v3.10.0 (2019-08-17)

  • #3413 Release v3.10.0 (#3413) (@matthew-dean)

v3.10.0-beta.2 (2019-08-07)

  • #3412 v3.10.0-beta.2 -- Cleanup NPM and git included files (#3412) (@matthew-dean)

v3.10.0-beta (2019-08-03)

  • #3411 Conversion of Less to ES6 w/ TypeScript type linting support (#3411) (@matthew-dean)
  • #3363 Fixes #3346 #3338 #3345 (#3363) (@matthew-dean)
  • #3364 Operation.prototype.accept Issues#3327 (#3364) (@legu2009)
  • #3360 Ignore undefined content in generating source maps (#3360) (@cthrax)
  • #3305 Avoid Buffer constructor on newer Node.js (#3305) (#3307) (@gabrielschulhof)
  • #3352 Do not pollute window object in less-browser bootstrap (#3352) (@gaiazov)
  • #3337 Use the correct mime type when loading a plugin (#3337) (@g3rv4)

v3.9.0 (2018-11-29)

  • #3334 Adds range() function for lists (#3334) (@matthew-dean)
  • #3333 Fixes #3325 #3313 #3328 - each() function fixes (#3333) (@matthew-dean)
  • #3335 Prevent Browserify from bundling Buffer (#3335) (@matthew-dean)

v3.8.1 (2018-08-08)

  • #3302 v3.8.1 (#3302) (@matthew-dean)
  • #3301 Fixes: #3300 (#3301) (@matthew-dean)
  • #3292 Demonstrate 3.7 fixes #3160 (#3292) (@matthew-dean)
  • #3291 Color function updates - #RRGGBBAA and CSS Variables (#3291) (@matthew-dean)

v3.8.0 (2018-07-23)

  • #3293 v3.8.0 (#3293) (@matthew-dean)
  • #3248 Feature/rewrite urls (#3248) (@matthew-dean)

v3.7.1 (2018-07-11)

  • #3284 Release v3.7.1 (#3284) (@matthew-dean)
  • #3283 Fix #3281: console.warning → console.warn (#3283) (@calvinjuarez)

v3.7.0 (2018-07-11)

  • #3279 v3.7.0 (#3279) (@matthew-dean)
  • #3274 Fixes #1880 - Adds two new math modes and deprecates strictMath (@matthew-dean)
  • #3258 Fixes #2824 - Expressions require a delimiter of some kind in mixin args (@matthew-dean)
  • #3263 Fixes #2270 - Adds each() function to Less functions (@calvinjuarez, @matthew-dean)

v3.6.0 (2018-07-10)

  • #3278 v3.6.0 (@matthew-dean)
  • #3252 Removes less-rhino (broken for a long time) - Fixes #3241 (@matthew-dean)
  • #3259 Removes "double paren" issue for boolean / if function (@matthew-dean)
  • #3276 Bump Jasmine version (@matthew-dean)
  • #3275 Adds Promise polyfill for PhantomJS under Node 9 (@matthew-dean)
  • #3261 Fixes #2791 - svg-gradient() not working in Firefox (@matthew-dean)
  • #3270 Fixes #3231 - Adds UIKit, Bootstrap 3, and Bootstrap 4 to verified tests (@matthew-dean)

v3.5.3 (2018-07-06)

  • #3272 Reverts operations not being performed in media queries (@matthew-dean)
  • #3257 Fixes #3182 (@matthew-dean)

v3.5.1 (2018-07-05)

  • #3267 Fixes issue with parentheses following variable in expressions (@matthew-dean)

v3.5.0 (2018-07-05)

  • #3264 Release v3.5.0 (@matthew-dean)

v3.5.0-beta.7 (2018-07-04)

  • #3260 Release v3.5.0-beta.7 (#3260) (@matthew-dean)
  • #3256 Allow [] to resolve to last declaration's value (#3256) (@matthew-dean)

v3.5.0-beta.6 (2018-07-03)

  • #3255 v3.5.0-beta.6 (#3255) (@matthew-dean)
  • #3247 Plugins: If minVersion >= 3.0.0, don't "pre-run" .setOptions() (#3247) (@calvinjuarez)
  • #3254 Tests and parser fixes for namespace values in MQ and mixin args (#3254) (@matthew-dean)

v3.5.0-beta.5 (2018-07-02)

  • #3251 Bugfix - namespace values (#3251) (@matthew-dean)
  • #3250 Added small breakpoints example with namespaced values (#3250) (@matthew-dean)

v3.5.0-beta.4 (2018-06-30)

  • #3242 [Feature] Namespaced values (#3242) (@matthew-dean)
  • #3246 Release/v3.5.0 beta.3 (#3246) (@matthew-dean)
  • #3229 Fixes #3187 (couldn't repo, but found bugs) (#3229) (@matthew-dean)
  • #3237 Fixes #3235 (#3237) (@matthew-dean)

v3.5.0-beta.3 (2018-06-29)

  • #3239 fix: browser cache is always considered stale if .modifyVars wasn't set (#3239) (@balpha)

v3.5.0-beta.2 (2018-06-27)

  • #3236 v3.5.0-beta.2 (#3236) (@matthew-dean)
  • #3228 Fixes #3205, partial 3.0 math regression #1880 (#3228) (@matthew-dean)
  • #3227 Fixes #1421 - re-parses variable-interpolated elements to selectors (no.2) (#3227) (@matthew-dean)
  • #3223 Fixes #3191 (#3223) (@matthew-dean)

v3.5.0-beta (2018-06-25)

  • #3230 Release v3.5.0 beta (#3230) (@matthew-dean)
  • #3219 Invalidate less-node file cache if modified (#3219) (@matthew-dean)
  • #3213 Fixes #3147 #2715 (#3213) (@matthew-dean)
  • #3220 Revert "Fixes #1421 - re-parses variable-interpolated elements to selectors" (@matthew-dean)
  • #3217 Revert "Fixes #1421 - re-parses variable-interpolated elements to selectors (#3217)" (@matthew-dean)
  • #3212 Revert "Pull missed code merged into 3.x branch (#3212)" (@matthew-dean)
  • #3215 Revert "Fixes #3195 (#3215)" (@matthew-dean)
  • #3215 Fixes #3195 (#3215) (@matthew-dean)
  • #3212 Pull missed code merged into 3.x branch (#3212) (@matthew-dean)
  • #3217 Fixes #1421 - re-parses variable-interpolated elements to selectors (#3217) (@matthew-dean)
  • #3207 update changelog for 3.0.4 (@akkumar)
  • #3206 Release v3.0.4 (@matthew-dean)

v3.0.4 (2018-05-07)

  • #3180 update source_map to 0.6.x (@akkumar)
  • #3172 Type checking length units (@jacobwarduk)
  • #3200 Fixes #3181 (@matthew-dean)

v3.0.3 (2018-04-18)

  • #1 Type checking length units (@jacobwarduk)
  • #3177 chore(package): update request to 2.83.0 (@Kartoffelsalat)
  • #3170 inline and less imports of the same name = race condition (@thorn0)
  • #3168 Fixes #3116 - lessc not loading plugins in 3.0 (@matthew-dean)

v3.0.1 (2018-02-15)

  • #3163 Merge 3.x into master (@matthew-dean, @barnabycolby, @kirillrogovoy, @maxbrunsfeld, @seven-phases-max, @ryysud, @bdsomer, @wiinci, @nikeee, @anthony-redFox)

v3.0.0-RC.2 (2018-02-11)

  • #3161 Remove legacy upgrade (@matthew-dean)
  • #3159 Bump to 3.0.0-RC.1 (@matthew-dean)

v3.0.0-RC.1 (2018-02-04)

  • #3150 Drop node 0.10 and 0.12 and added node 9 matrix testing (@anthony-redFox)

v2.7.3 (2017-10-24)

  • #3122 Mime update (@nikeee)
  • #3120 Issue3115 ext in node path (@robhuzzey)
  • #3119 Update © year (@wiinci)
  • #3107 pinned request dep to v2.81.0 (@MarkSG93)

v3.0.0-alpha.3 (2017-10-09)

  • #3096 Switch from request to phin! (@bdsomer)
  • #3082 Add Node.js v8 to Travis CI and AppVeyor (@ryysud)
  • #3079 Initial support for custom parsed functions (boolean, if etc.) (@seven-phases-max)
  • #3076 Update mergeRules (@seven-phases-max)

v2.7.2 (2017-01-05)

  • #2908 Added 'request' as optional dependency. (@maxrd2)
  • #2955 Allow less imports of paths like 'dir/css' (@maxbrunsfeld)
  • #2975 Refactor LessError and lesscHelper.formatError (@kirillrogovoy)
  • #2988 Fixes #2987, --source-map-map-inline works as expected (@nicoschoenmaker)
  • #2946 Fixed sourceMapBasepath bug as the option had no affect on the sourceMapURL value. (@barnabycolby)
  • #2941 CI Build Fixes. (@bd82)
  • #2905 Download PhantomJS from CDN (@abrobston)
  • #2866 Changed octals to hex for ES6 strict mode (@mlowijs)
  • #2891 Fix error reporting of lessc executable II (@jhnns)

v2.7.0 (2016-05-08)

  • #2894 Update my name. (@nex3)
  • #2892 Fix invalid extraction of the host part from URL (@Taritsyn)
  • #2874 removed dependency to unused package "request" (@jeremyVignelles)
  • #2830 make --depends generate no CSS output (@gtalusan)
  • #2860 Remove unreachable code (@shkdee)
  • #2859 Fix typos found by codespell (@stweil)
  • #2858 Fix AST to include text for single line comments (@zzzzBov)
  • #2853 bin/lessc: Make sure path.dirname gets passed strings (@addaleax)
  • #2754 Update contrast function and tests, fixes #2743 (@Synchro)
  • #2785 Allows root (non-value) functions in Less (@seven-phases-max)
  • #2834 Make sourcemap generation a bit faster (@Medium)

v2.6.1 (2016-03-04)

  • #2827 Revert "Update jit-grunt to version 0.10.0" (@seven-phases-max)
  • #2821 Update jit-grunt to version 0.10.0 (@greenkeeperio-bot)
  • #2797 Disallow whitespace in variable calls (i.e "DR"-calls) (@seven-phases-max)
  • #2820 update grunt-contrib-concat to version 1.0.0 (@greenkeeperio-bot)
  • #2819 Guard expressions regression in 2.6.0 (#2798) (@SomMeri)
  • #2804 use instanceof operator instead of class comparison optimization (@marijaselakovic)
  • #2817 Update grunt-contrib-jshint to version 1.0.0 🚀 (@greenkeeperio-bot)
  • #2815 Update grunt-contrib-clean to version 1.0.0 🚀 (@greenkeeperio-bot)
  • #2813 Fix typo on and/or change (@mbrodala)
  • #2811 Update CHANGELOG.md (@Justineo)
  • #2806 Fix comments after named color regression (@seven-phases-max)
  • #2794 Update grunt-jscs to version 2.7.0 🚀 (@greenkeeperio-bot)
  • #2784 Update grunt-contrib-jasmine to version 1.0.0 🚀 (@greenkeeperio-bot)
  • #2773 Update all dependencies 🌴 (@lukeapage, @greenkeeperio-bot)

v2.6.0 (2016-01-29)

  • #2788 Update license year in README.md (@prayagverma)
  • #2735 Fix for #2384 and caching enabled with modifyVars set (@less)
  • #2783 Allow unknown non-{}-block at-rules (@seven-phases-max)
  • #2779 Logical operator and now has higher precedence then logical operator or. (@SomMeri)
  • #2775 Parsing Error "Unrecognised input" for color operations with color names #2124 (@SomMeri)
  • #2763 Added "or" keyword and allowed arbitrary logical expression in guards. (@SomMeri)
  • #2731 Faster builds and update npm versions to test against (@paladox)
  • #2759 Fixed extend leaking through nested parent selector. (@SomMeri)
  • #2738 Fail when image-size functions are used in browser-less. (@niom)
  • #2485 Allow underscore in a dimension unit (@seven-phases-max)
  • #2729 Fixing import by reference (@SomMeri)

v2.5.2 (2015-09-24)

  • #2609 Skip missing optional imports (@mmelvin0)
  • #2644 percentage function should throw error if result would be NaN (@SomMeri)
  • #2646 Parametric mixins: parameters don't match error (@SomMeri)
  • #2688 Converted CLRFs in error tests (@mishal)
  • #2687 Updated test data files (@mishal)
  • #2642 Fixes import by reference inlines source's inline imports - 2620 (@SomMeri)
  • #2643 Keep shorthand color form the same way as named colors are kept. (@SomMeri)
  • #2677 Reference inline comments. (@betaorbust)
  • #2685 Update travis Node.js version & remove io.js (@demohi)
  • #2637 Undefined source map should result in an empty map file. (@SomMeri)
  • #2607 Remove moot version property from bower.json (@kkirsche)

v2.5.1 (2015-05-21)

  • #2591 Update license attribute (@pdehaan)
  • #2575 Fix synchronously loading/applying stylesheets on page load. (@chipx86)
  • #2568 Add a Gitter chat badge to README.md (@gitter-badger)
  • #2559 Fix for #2558 (@seven-phases-max)
  • #2574 Fix Ruleset.prototype.find failing for certain frames (@seven-phases-max)
  • #2550 Update CHANGELOG.md (@chharvey)

v2.5.0 (2015-04-03)

  • #2530 Proper non-primitive value replacement for % and replace (@seven-phases-max)
  • #2526 Image size (@bassjobsen)
  • #2533 Fix formatting to meet jscs settings (@seven-phases-max)
  • #2525 Add browser field (@whitecolor)
  • #2522 Fix @plugin scoping rules (@rjgotten)
  • #2527 Fix grunt shell:benchmark command (@seven-phases-max)
  • #2520 Fix 2440 (@lukeapage)
  • #2517 Quick fix for naked url imports (@seven-phases-max, @wahuneke, @bassjobsen)
  • #2515 re: #2508 - revert #2510 - undo all fixes. issue == WONTFIX (@wahuneke)
  • #2504 optional relative amounts for color functions, see#975 (@bassjobsen)
  • #2512 Fix selectors folding into directives (@rjgotten)
  • #2510 Fix issue 2508 (@wahuneke)
  • #2505 fix for issue #2500 (@bassjobsen)
  • #2479 Import plugin (@rjgotten, @bassjobsen)
  • #2497 Allow detached rulesets as mixin argument defaults (@calvinjuarez)
  • #2488 add jit-grunt to the build chain (@bassjobsen)
  • #2489 add browser postProcessor Plugin test (@bassjobsen)
  • #2473 Bubbling of nested directives (@SomMeri)
  • #2445 allow a list of colors as argument for the svg-gradient function (@bassjobsen)

v2.4.0 (2015-02-08)

  • #2439 Fix empty sourcemaps (@OhJeez)
  • #2429 Implementing preprocessing plugins (@Justineo, @lukeapage)
  • #2427 Nested mixin changing important 2421 (@SomMeri)
  • #2423 Bug: extend doesn't work when appended on nested selector with & (@SomMeri)
  • #2420 endlines and comments (@bassjobsen)

v2.3.1 (2015-01-28)

  • #2400 Nested parent selectors &:not(&) - 2026 (@SomMeri)

v2.3.0 (2015-01-27)

  • #2401 Allow selector interpolation inside pseudoselectors. #1294 (@SomMeri)
  • #2404 Important on parametrized mixin (@SomMeri)
  • #2414 explain inline maps (@bassjobsen)
  • #2392 add support for isruleset (@Justineo)
  • #2390 message when sourcemap has been written (@bassjobsen)
  • #2391 Remove BOM in imports. (@DotNetSparky)
  • #2387 Data uri support for include-path (@lukeapage)
  • #2385 checking for doubles when warning for empty extends (@ddprrt)
  • #2380 Colour keyword as variable name reference (@seven-phases-max)
  • #2369 making sure :extend warning does not bubble up, fixes #1618 (@ddprrt)

v2.2.0 (2015-01-04)

  • #2363 Change error message when caching fails (@bassjobsen)
  • #2337 Better output for the warning when file size exceeds (@bassjobsen)
  • #2319 Expose Less parsing as a top level feature of the less package (@jackwanders)

v2.1.2 (2014-12-20)

  • #2315 Support non-JSON script attributes (@guybedford)
  • #2313 Remove second 'env:' in .travis.yml. (@vsn4ik)

v2.1.1 (2014-11-27)

  • #2312 Fix double handling of exceptions (@ForbesLindesay)
  • #2311 Pass this from promise based calling (@ForbesLindesay)
  • #2309 Improve keyword and anonymous input for replace function (fixes #2308). (@seven-phases-max)

v2.1.0 (2014-11-23)

  • #2298 Small improve in README.md and bower.json. (@vsn4ik)
  • #2297 Package: Updates request to 2.48.0 (@am11)
  • #2296 Fix getting of character at index (@Taritsyn)
  • #2279 Remove livereload cache buster param in extractId (@cgross)

v2.0.0 (2014-11-09)

  • #2277 create index and browser scripts in root as require targets (@jackwanders, @lukeapage, @seven-phases-max, @Justineo, @lejenome)
  • #2269 Fix for wrong check in abstractFileManager.getPath (@dexif, @lukeapage, @seven-phases-max, @Justineo, @lejenome)
  • #2267 CLI: Fixes source-map-url description (#2264) (@am11)
  • #2268 typo fixes (@vlajos)
  • #2264 CLI: Fixes source-map-url description. (#2264) (@am11)

v2.0.0-b3 (2014-11-01)

  • #2254 Fix for import relative path for url with parameters (@dexif)

v2.0.0-b2 (2014-10-26)

  • #2246 Attempt to fix import sequencing (@lukeapage)
  • #2247 Add support for rebeccapurple (#663399) (@le717)
  • #663399 Add rebeccapurple (#663399) (Triangle717)
  • #2243 Support reading less options from its script tag data attributes (@lejenome)
  • #2241 Update CHANGELOG.md (@Justineo)

v2.0.0-b1 (2014-10-19)

  • #1902 2.0.0 Pull Request (@lukeapage, @seven-phases-max, @XhmikosR, @levithomason)
  • #2233 Method to scan for and register stylesheets (@levithomason)
  • #2226 Notify when less.js is done processing (@levithomason)
  • #2209 Remove unnecessary semicolon (@joscha)
  • #2217 Fix interpolated selector match regression (@seven-phases-max)
  • #2185 Use SVGs for all readme badges (@theodorejb)
  • #2182 Fixes #1973 (@seven-phases-max)
  • #2181 Case insensitive units parsing and comparison (@lukeapage)

v1.7.5 (2014-09-03)

  • #2173 Property interpolation fix for @* values (@seven-phases-max)
  • #2169 Accept comments in @keyframe and after rule name - merging for next patch release. (@SomMeri)
  • #1921 Pass options object to parser.parse in less.render (@rback)
  • #2136 Fragment handling in data-uri function 1959 (@SomMeri)
  • #2135 Charsets should float on top #2126 (@SomMeri)
  • #2128 Mixin wrongly called (@SomMeri, @obecker, @dhaber)
  • #2144 Updating request dependency (@pdehaan)
  • #2123 Import into media 1645 (@SomMeri, @obecker, @dhaber)

v1.7.4 (2014-07-27)

  • #2100 Update bower for 1.7.3 (@joscha)
  • #2121 Properties merging should work also inside directives #2035 (@SomMeri)
  • #2120 Misleading error message 2069 (@SomMeri, @obecker, @dhaber)
  • #2117 Fix ordering of @import and @charset rules #1954 #2013 (@SomMeri)

v1.7.3 (2014-06-22)

  • #2062 Don't round values returned by colour query functions. (@seven-phases-max)

v1.7.2 (2014-06-22)

  • #2045 Base64 encode source maps (@tim-smart)

v1.7.1 (2014-06-08)

  • #2022 2.0.0 refactor chunker and less error (@ForbesLindesay)
  • #2021 2.0.0 promises (@ForbesLindesay)
  • #1976 Added condition to check if HEX code contain only valid characters (issue #1015) (@peruginni)
  • #2019 Remove the "done" message displayed at the end of the compilation with Rhino. (@gdelhumeau)
  • #2031 Fix a bug: if the less file end line is comments, the lessc command option "modify-var" will have no effect. (@chenboxiang)
  • #2046 window.ActiveXObject in IE11: fix boolean casting (@dkrnl)
  • #2016 e("") fix (@seven-phases-max)
  • #2000 Set CSS text after style element is added to DOM, to fix crash on IE < 9... (@David-Hari)
  • #2002 Fixes #2001 (@seven-phases-max)
  • #1981 fix bug with ../.. paths joining (@kolipka)
  • #1974 Change paths determination for CLI (@dominicbarnes)
  • #1929 Recursive mixin calls regression fix. (@seven-phases-max)
  • #1936 Fix error message when using cleancss with sourcemap (@danielchatfield)
  • #1919 Usage info for url-args option (@bcluca)
  • #1907 Remove trailing spaces from the license header. (@XhmikosR)
  • #1906 Remove twitter-bootstrap tag from SO link (@zlatanvasovic)

v1.7.0 (2014-02-27)

  • #1890 Let luma follow spec (@seven-phases-max, @lukeapage)
  • #1859 detached rulesets (@lukeapage)
  • #1884 Minor replace and % funcs improvement. (@seven-phases-max)
  • #1855 Adding replace function (@jakebellacera, @mouyang)
  • #1866 Fixed empty args matching for named variadics. (@seven-phases-max)
  • #1860 Support for variables in certain at-rules. (@seven-phases-max)
  • #1847 Property merge with +_ (replaces #1788) (@seven-phases-max, @mouyang)

v1.6.3 (2014-02-08)

  • #1844 fix broken test case (@mouyang)

v1.6.2 (2014-02-02)

  • #1841 Improved missing ( and { error detection. (@seven-phases-max)
  • #1828 Updates bower.json for current version (@ruyadorno)
  • #1823 Improved multiple default() guards conflict detection. (@seven-phases-max)
  • #1822 Normalize require-calls for Browserify (@pateketrueke)
  • #1814 Rounding of output numbers. (@seven-phases-max)
  • #1806 rhino version not up to date (#1405) (@obecker, @dhaber)
  • #1815 Correct arguments for tree.Element (@oyejorge)
  • #16 Don't lint source-map since its owned by another project (@dhaber)
  • #17 Fix empty test (@dhaber)
  • #1803 ability to insert uppercase color names (@wareczek)
  • #1804 small compatibility fix for prototype.js (@cettox)
  • #13 Add Support-Map Tests for Rhino (@dhaber)
  • #12 Fix for some tests that were failing on my Mac (@dhaber)
  • #11 Fix for issue #3: Tests should automatically take latest rhino file (@dhaber)

v1.6.1 (2014-01-12)

  • #1780 #1778 standardised using starting index, to fix incorrectly mapped sourcemaps (@brenmar)
  • #1797 Updated .jshintrc to highlight for ... in without isOwnProperty (@DHainzl)
  • #1795 Fix for running test cases in a regular browser like Firefox or Chrome (@dhaber)
  • #1773 Fixes "function" test against regular expressions (@matthew-dean)

v1.6.0 (2014-01-01)

  • #1737 Clamped rgba format color output (@seven-phases-max)
  • #1769 If result of evaluated javascript is a number return it as Dimension. (@lesswtf)
  • #1766 Improved error message for undefined variable in js eval statement. (@seven-phases-max)
  • #1758 Removed redundant code from tree.Selector.match() (@seven-phases-max)
  • #1757 Tree functions cleanup + CSS Guards default error. (@seven-phases-max)
  • #1624 Experimental support for mixins with interpolated selectors (@seven-phases-max)
  • #1743 Interleaved property merge fix (@seven-phases-max)
  • #1744 Fix CHANGELOG broken link in README. (@jeffslofish)
  • #1733 Remove alpha from contrast calc (@Synchro)
  • #1704 Color blending functions with transparency. (@seven-phases-max)
  • #1708 Updated Readme for full examples (@SomMeri, @Synchro)
  • #1717 Minifier complains about annotation in non-JSDoc tag (@joscha)
  • #1714 Fix for math expr/ops error messages line/column numbers. (@seven-phases-max)

v1.5.1 (2013-11-17)

  • #1658 Fixes #1619 (@joshuaspence)
  • #1643 Check location.port for truthiness (@matthewp)
  • #1655 Support specifying custom variables when calling lessc and less.js. (@chipx86)
  • #1628 update bower.json main script (@tomfuertes)

v1.5.0 (2013-10-21)

  • #1570 proposed solution to #1568: percentage as attribute (@MSamman, @danielfttorres)
  • #1572 util.error is deprecated (@robocoder)
  • #1542 Added length function (#1542). Added scalar value handling for extract and length (#1576). (@seven-phases-max)
  • #1558 Bower package: purge unnecessary files (@danielfttorres)

v1.5.0-b3 (2013-09-17)

  • #1552 Replace deprecated sys.puts with console.log, resolve #1529 (@picomancer)
  • #1543 Sourcemap basepath option (@andjo)
  • #1412 Allow imports from self-signed SSL hosts (@christopherobin)

v1.5.0-b2 (2013-09-09)

  • #1537 Fix Changelog link (@radium-v)

v1.5.0-b1 (2013-09-03)

  • #1519 Update main property value of bower.json (@JacopKane)
  • #1 Refactoring browser unit tests into grunt-contrib-jasmine (@SomMeri)
  • #1449 resolves #964 (@jonschlinkert)

v1.4.2 (2013-07-20)

  • #1425 Windows path fixes (@SLaks)
  • #1388 Add .gitattributes to .npmignore (@dpatti)

v1.4.0-b3 (2013-04-30)

  • #1278 Better fix for local path (cross-platform) (@losnir)
  • #1277 contributing.md updates. Fellow nerds! please wrap words with @ signs in backticks! (@jonschlinkert)
  • #1273 Fix for local paths (@losnir)
  • #1244 Add Less license to package.json (@theoreticaLee)
  • #1236 Fixes small typo in command prompt usage text (@buley)

v1.4.0-b2 (2013-03-18)

  • #1230 package.json edited (@jonschlinkert)

v1.4.0-b1 (2013-03-08)

  • #1197 Updates copyright year in README.md (@Starefossen)
  • #1148 Better implementation of luma (@Synchro)
  • #1147 HSV support for #1143 (@Synchro)
  • #1145 Contrast percentage fix for #1144 (@Synchro)
  • #933 Allow flexible naming for amd support (#933) (@guybedford)

v1.3.1 (2012-10-18)

  • #889 Add dppx and dpcm units to parser dimensions (@feelepxyz)
  • #890 Add vmin unit to parser dimensions (@feelepxyz)
  • #879 Allow numbers and underscores in attribute selectors (@dmcass)
  • #857 Revert adding "transparent" as a color name (@clmsnskr)
  • #753 Adding "dpi" as a valid dimensions for media queries (@clarkni5)
  • #800 Added 'transparent' as a named color (@SpadarShut)
  • #804 Fix for unnamed parameters test fail & failing test for import-once (@jreading)
  • #796 fixed issue #795 (@comfuture)
  • #268 Implemented named arguments (@jamesfoster)

v1.3.0 (2012-03-10)

  • #673 mocha found a couple global variable leaks. Here's the fix. (@andrewjstone)
  • #634 Add @media bubbling/nesting/merging (@NDMarcel)
  • #631 Fixed spelling error on benchmark/less-benchmark.js (@highergroundstudio)
  • #601 Make parse error handler more robust (@adrianheine)
  • #595 Fix callback called two times (@hokaccha, @cloudhead, @chrizel, @fat)
  • #604 Fixes #602 (@treshugart)
  • #585 newline all selectors whose combined length is greater than 25 chars (@fat)
  • #479 CommonJS/AMD module support (@tobias104)
  • #516 Improve Windows path support in lessc (@chrizel)
  • #557 Fix for issue #466 (@kmchugh)
  • #515 Shift the type setting in order to work with Webkit, and fix typo for IE (@imcotton)
  • #527 Add function percentage (@hokaccha)

1.1.5-extend_patch (2011-12-13)

  • #496 Removed call to put header into minified build, because it's already there. (@freeeve)
  • #379 Accept 2xx statuses even for file requests (@khalsah)
  • #494 Adding support for absolute paths on Windows. (@jmcclell)
  • #514 Fix java.io.FileNotFoundException when @importing from LESS in subdirectory (@eager)
  • #461 require 'util' instead of 'sys' in lessc and less-benchmark.js (@dmcass)
  • #506 Issue #393 Add support for "rem" dimensions (@feelepxyz)
  • #507 Fixed lessc require('sys') for nodejs 0.6.* (@garth)
  • #492 fix comments in operations (ex: height: 2px * 4 / ie hack */) (@fat)
  • #458 Assignment entities (@fat, @cloudhead, @asolove)

1.1.4-lastest (2011-11-14)

  • #445 fix undefined reference (@asolove)
  • #450 store index on selector element objects for line number inference (@fat)
  • #432 #361: Fix for quoted data URIs getting prepended with path (@asolove)
  • #388 Rhino support (@erwan)
  • #355 support imports with querystrings (google fonts) fix #265 (@revolunet)
  • #340 Read less-content from stdin (@snorkypie)
  • #341 patch for Issue 322 (@ttfkam)
  • #335 update ARGB support, fix IE9 style injection (@ttfkam)
  • #229 add fade() function (@bennyschudel)
  • #347 support @-moz-keyframes. (@idris)
  • #169 (fix) including .less files via absolute path with IE7 (@ldaley)
  • #189 Google Chrome(Chromium) support for extensions (@dz0ny)
  • #247 New "escape" function (@gilt)
  • #134 Fixed issue (#134) where subfiles' @imports were regarding #, ? and url portions thereafter as part of the base url. (@dbergey)