NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #738 most downloaded on Packagist
PHP port of the LESS processor
Last release 7 months ago
14 Feb 2026
Release timing varies
gaps range from 8 days to 6 months
Some releases are documented
notes for 33 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
62 releases · first in 2012
Less_Parser: Fix SetImportDirs() type hint to accept callable without string key (Timo Tijhof)
Fixed:
Fix "PHP Warning: ord(): Providing an empty string is deprecated" on PHP 8.5. (Hannah Okwelum) T411397
Added:
#RRGGBBAA colors. (Hannah Okwelum) T403056Fixed:
One column per quarter.
Add support for Logical Functions if() and boolean(). (Hannah Okwelum) T393383
Added:
if() and boolean(). (Hannah Okwelum) T393383Changed:
Fix "PHP Warning: Undefined property $value" in extract(). (Timo Tijhof) T391735
Fixed:
extract(). (Timo Tijhof) T391735Deprecate Less_Cache::CheckCacheDir() as public method. This is called automatically.
Added:
cache_incremental option. Set this to false via Less_Cache to use the fast whole-output cache without the memory-intensive incremental cache. (Timo Tijhof)Deprecated:
Less_Cache::CheckCacheDir() as public method. This is called automatically.Less_Cache::CleanCache() as public method. This is called automatically.Less_Parser::SetCacheDir(). Set the cache_dir option, or use Less_Cache::SetCacheDir() instead.Fix ParseError on CSS variable when there is no trailing semicolon (Hannah Okwelum) T386077
Fix un-parenthesized nested operation via a variable (Hannah Okwelum) T386074
Fixed:
Add support for BrianHenryIE/strauss codemod in Less_Visitor (Stefan Warnat)
Added:
Fixed:
@import (inline) (tck) T380641hsv() (Peter Knut)visitObj by using inline cache (Thiemo Kreuz)Less_Functions: Fix "PHP Warning: Implicitly nullable parameter" on PHP 8.4 (Reedy) T376276
Fixed:
Fix compiling of PHP-injected variables with false, null or empty string (Hannah Okwelum)
Fixed:
Add support for property acessors (Piotr Miazga) T368408
Added:
Fixed:
alpha() function (Hannah Okwelum) T371606Add support for Lessjs 3.5.0 calc() exception (Piotr Miazga) T367186
Added:
calc() exception (Piotr Miazga) T367186\9 escapes in CSS keyword (Dringsim) T288498Changed:
Less_Version::less_version to "3.13.3". This end compatibility support of Less.js 2.5.3.
Less.php 5.0 and later will target Less.js 3.13.1 behaviour instead. (Piotr Miazga)Removed:
import_callback Less_Parser option (Hannah Okwelum)Less_Parser::AllParsedFiles() (Hannah Okwelum)Update Less_Version::version and bump Less_Version::cache_version (Timo Tijhof)
Fixed:
Less_Version::version and bump Less_Version::cache_version (Timo Tijhof)Add image-size() function, disable base64 for SVG data-uri() (Hannah Okwelum) T353147
Added:
image-size() function, disable base64 for SVG data-uri() (Hannah Okwelum) T353147!important via variables (Piotr Miazga) T362341data-uri() (Hannah Okwelum) T364871Changed, to match Less.js 2.5.3:
Fixed:
This internal detail is exposed via the deprecated import_callback parser option. It is recommended to migrate to Less_Parser->SetImportDirs, which do…
Added:
... expand operator in mixin calls (Piotr Miazga) T352897@import (reference) matching Less.js 2.x (Hannah Okwelum) T362647Changed:
mix() argument exception message to mention given arg type (Timo Tijhof)Less_Tree_Import->getPath() method now reflects the path as written in the source code,
without auto-appended .less suffix, matching upstream Less.js 2.5.3 behaviour.
This internal detail is exposed via the deprecated import_callback parser option.
It is recommended to migrate to Less_Parser->SetImportDirs, which doesn't expose internals,
and is unaffected by this change.Deprecated:
import_callback Less_Parser option. Use Less_Parser->SetImportDirs with callback instead.Less_Parser->SetInput() as public method. Use Less_Parser->parseFile() instead.Less_Parser->CacheFile() as public method. Use Less_Cache API instead.Less_Parser::AllParsedFiles() as static method. Use Less_Parser->getParsedFiles() instead.Less_Parser->UnsetInput() as public method, considered internal.Less_Parser->save() as public method, considered internal.Fixed:
replace() when passed multiple replacements (Roan Kattouw) T358631@keyframes (Piotr Miazga) T353131when guards (Piotr Miazga) T353144matcher() chains (Timo Tijhof)matchStr() method (Timo Tijhof)Add support for /deep/ selectors (Hannah Okwelum) T352862
Add isruleset() function (Hannah Okwelum) T354895
Added:
isruleset() function (Hannah Okwelum) T354895method=relative parameter in color functions (Hannah Okwelum) T354895functions parser option API (Hannah Okwelum)Changed, to match Less.js 2.5.3:
Fixed:
@@name (Hannah Okwelum) T352830@extend path contains non-quoted attribute (Gr8b) T349433skipWhitespace by using native strspn (Umherirrender)!important in nested mixins (Hannah Okwelum) T353141color() (Hannah Okwelum) T353289@font-face blocks (Timo Tijhof) T356706Less_Parser: Faster MatchQuoted by using native strcspn. (Thiemo Kreuz)
MatchQuoted by using native strcspn. (Thiemo Kreuz)parseEntitiesQuoted by inlining MatchQuoted. (Thiemo Kreuz)parseUnicodeDescriptor and parseEntitiesJavascript by first-char checks. (Thiemo Kreuz)Add support for @supports blocks. (Anne Tomasevich) T332923
@supports blocks. (Anne Tomasevich) T332923SetImportDirs() callbacks is now optional. (Timo Tijhof)Remove support for PHP 7.2 and 7.3. Raise requirement to PHP 7.4+.
cache_method=php and cache_method=var_export, only the faster and more secure cache_method=serialize is now available. The built-in cache remains disabled by default.url(#myid) to be treated as absolute URL. T331649calc() is used with CSS var(). T331688Tree_Ruleset: Fix support for nested parent selectors (Timo Tijhof) T204816
Fix "PHP Warning: Implicit conversion" on PHP 8.1 (Ayokunle Odusan)
Parser::getVariables() (ciroarcadio) #51Add PHP 8.0 support: Drop use of curly braces for sub-string eval (James D. Forrester)
Directive::__construct $rules arg optional (fix PHP 7.4 warning) (Sam Reed)Raise PHP requirement from 7.1 to 7.2.9 (James Forrester)
Reflect recent breaking changes properly with the semantic versioning (James Forrester)
Require PHP 7.2.9+, up from 5.3+ (James Forrester)
Another PHP 7.3 compatibility tweak
Library forked by Wikimedia, from oyejorge/less.php.
Library forked by Wikimedia, from oyejorge/less.php.
composer.json for HHVM compatibilityNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Remove space at beginning of Version.php
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fix composer.json (PSR-4 was invalid)
Fix bin/lessc to have executable bit (regression from v1.7.0.10)
bin/lessc to have executable bit (regression from v1.7.0.10)Less_Parser::getVariables method oyejorge #258Change Less_Tree_Call property back to public (protected since v1.7.0.2) oyejorge #324
Less_Parser: Add indentation option
indentation optionoptional modifier to @importNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →