PackageTrack
Sign in Get early access

wikimedia/less.php

PHP port of the LESS processor

v5.5.1 31M downloads/mo #660 most downloaded on Packagist wikimedia/less.php

What this package is like to depend on

Last release 6 months ago

14 Feb 2026

Release timing varies

gaps range from 8 days to 6 months

Some releases are documented

notes for 33 of 62 stable releases

Nothing withdrawn

no release was ever pulled

14 years old

62 releases · first in 2012

2 releases in the last 12 months

see the full history below

Release timeline

62 releases · Apr 2012 to Feb 2026
2013 2015 2017 2019 2021 2023 2025
Release Pre-release

Releases

latest 60 of 62
  1. v5.5.1 14 Feb 2026
    Release notes

    Fixed:

    • Less_Parser: Fix SetImportDirs() type hint to accept callable without string key (Timo Tijhof)
    Open source →
  2. v5.5.0 18 Dec 2025
    Release notes

    Added:

    • Add support for CSS4 #RRGGBBAA colors. (Hannah Okwelum) T403056
    • Add support for native CSS color functions including with CSS variables. (Hannah Okwelum) T405815

    Fixed:

    • Fix "PHP Warning: Using null as the key parameter for array_key_exists" on PHP 8.5. (del72683) T410596
    • Fix interpolation of string with number followed by underscore. (Timo Tijhof) Less.js #2462
    • Fix "PHP Warning: Using null as an array offset" on PHP 8.5 in Less_Functions. (Hannah Okwelum) T411398
    • Fix "PHP Warning: Using null as an array offset" on PHP 8.5 in Less_ImportVisitor. (Hannah Okwelum) T411400
    • Fix "PHP Warning: ord(): Providing an empty string is deprecated" on PHP 8.5. (Hannah Okwelum) T411397
    Open source →
  3. v5.4.0 03 Jul 2025
    Release notes

    Added:

    • Add support for Logical Functions if() and boolean(). (Hannah Okwelum) T393383

    Changed:

    • Remove support for PHP 7.4 and 8.0. Raise requirement to PHP 8.1+. (James D. Forrester)
    Open source →
  4. v5.3.1 16 Apr 2025
    Release notes

    Fixed:

    • Fix "PHP Warning: Undefined property $value" in extract(). (Timo Tijhof) T391735
    Open source →
  5. v5.3.0 08 Apr 2025
    Release notes

    Added:

    • Less_Parser: Add 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:

    • Deprecate Less_Cache::CheckCacheDir() as public method. This is called automatically.
    • Deprecate Less_Cache::CleanCache() as public method. This is called automatically.
    • Deprecate Less_Parser::SetCacheDir(). Set the cache_dir option, or use Less_Cache::SetCacheDir() instead.
    Open source →
  6. v5.2.2 24 Mar 2025
    Release notes

    Fixed:

    • Fix ParseError on CSS variable when there is no trailing semicolon (Hannah Okwelum) T386077
    • Support functions calls in CSS variable value after first comma (Hannah Okwelum) T386079
    Open source →
  7. v5.2.1 05 Mar 2025
    Release notes

    Fixed:

    • Fix un-parenthesized nested operation via a variable (Hannah Okwelum) T386074
    • Faster Less_Visitor_joinSelector by skipping Declaration blocks (ubermanu)
    Open source →
  8. v5.2.0 30 Jan 2025
    Release notes

    Added:

    • Add support for BrianHenryIE/strauss codemod in Less_Visitor (Stefan Warnat)

    Fixed:

    • Fix "PHP Warning: Undefined array key currentUri" when using @import (inline) (tck) T380641
    • Fix "PHP Warning: Implicit conversion from float to int" on PHP 8.1 when using hsv() (Peter Knut)
    • Less_Visitor: Faster class mapping in visitObj by using inline cache (Thiemo Kreuz)
    Open source →
  9. v5.1.2 13 Nov 2024
    Release notes

    Fixed:

    • Less_Functions: Fix "PHP Warning: Implicitly nullable parameter" on PHP 8.4 (Reedy) T376276
    Open source →
  10. v5.1.1 09 Aug 2024
    Release notes

    Fixed:

    • Fix compiling of PHP-injected variables with false, null or empty string (Hannah Okwelum)
    Open source →
  11. v5.1.0 06 Aug 2024
    Release notes

    Added:

    • Add support for property acessors (Piotr Miazga) T368408
    • Increase parsing flexibility around at-rule blocks and custom properties (Piotr Miazga) T368408
    • Add support for Namespaces and Accessors (Piotr Miazga) T368409

    Fixed:

    • Fix parse error when opacity is set to zero in alpha() function (Hannah Okwelum) T371606
    Open source →
  12. v5.0.0 27 Jun 2024
    Release notes

    Added:

    • Add support for Lessjs 3.5.0 calc() exception (Piotr Miazga) T367186
    • Add support for CSS Grid syntax (Dringsim) T288498
    • Add support for \9 escapes in CSS keyword (Dringsim) T288498
    • Add Less_Parser "math" option, renamed from strictMath (Hannah Okwelum) T366445

    Changed:

    • Change Less_Parser "math" default from "always" to "parens-division" (Hannah Okwelum) T366445
    • Change 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:

    • Remove import_callback Less_Parser option (Hannah Okwelum)
    • Remove backtick evaluation inside quoted strings (Bartosz Dziewoński)
    • Remove Less_Parser::AllParsedFiles() (Hannah Okwelum)
    • Remove Less_Parser->SetInput() public method, now private (Hannah Okwelum)
    • Remove Less_Parser->CacheFile() public method, now private (Hannah Okwelum)
    • Remove Less_Parser->UnsetInput() public method, now private (Hannah Okwelum)
    • Remove Less_Parser->save() public method, now private (Hannah Okwelum)
    Open source →
  13. v4.4.1 27 May 2024
    Release notes

    Fixed:

    • Update Less_Version::version and bump Less_Version::cache_version (Timo Tijhof)
    Open source →
  14. 4.4.0 25 May 2024
    Release notes

    Added:

    • Add image-size() function, disable base64 for SVG data-uri() (Hannah Okwelum) T353147
    • Improve support for preserving !important via variables (Piotr Miazga) T362341
    • Add support for include path inside data-uri() (Hannah Okwelum) T364871

    Changed, to match Less.js 2.5.3:

    • Fix multiplication of mixed units to preserve the first unit (Piotr Miazga) T362341

    Fixed:

    • Fix checking of guard conditions in nested mixins (Hannah Okwelum) T352867
    • Less_Functions: Avoid clobbering clamp() with internal helper (Timo Tijhof) T363728
    Open source →
  15. v4.3.0 29 Apr 2024
    Release notes

    Added:

    • Support interpolated variable imports, via ImportVisitor (Hannah Okwelum) T353133
    • Support rulesets as default values of a mixin parameter (Hannah Okwelum) T353143
    • Support ... expand operator in mixin calls (Piotr Miazga) T352897
    • Improve support for @import (reference) matching Less.js 2.x (Hannah Okwelum) T362647

    Changed:

    • Improve mix() argument exception message to mention given arg type (Timo Tijhof)
    • The 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:

    • Deprecate import_callback Less_Parser option. Use Less_Parser->SetImportDirs with callback instead.
    • Deprecate Less_Parser->SetInput() as public method. Use Less_Parser->parseFile() instead.
    • Deprecate Less_Parser->CacheFile() as public method. Use Less_Cache API instead.
    • Deprecate Less_Parser::AllParsedFiles() as static method. Use Less_Parser->getParsedFiles() instead.
    • Deprecate Less_Parser->UnsetInput() as public method, considered internal.
    • Deprecate Less_Parser->save() as public method, considered internal.

    Fixed:

    • Fix replace() when passed multiple replacements (Roan Kattouw) T358631
    • Fix unexpected duplicating of uncalled mixin rules (Hannah Okwelum) T363076
    • Fix ParseError for comments after rule name or in @keyframes (Piotr Miazga) T353131
    • Fix ParseError for comments in more places and preserve them (Piotr Miazga) T353132
    • Fix ParseError effecting pseudo classes with when guards (Piotr Miazga) T353144
    • Fix preservation of units in some cases (Timo Tijhof) T360065
    • Less_Parser: Faster matching by inlining matcher() chains (Timo Tijhof)
    • Less_Parser: Faster matching with matchStr() method (Timo Tijhof)
    Open source →
  16. v4.2.1 25 Feb 2024
    Release notes

    Added:

    • Add support for /deep/ selectors (Hannah Okwelum) T352862

    Fixed:

    • Fix ParseError in some division expressions (Hannah Okwelum) T358256
    • Fix when() matching between string and non-string (Timo Tijhof) T358159
    • Preserve whitespace before ; or ! in simple rules (Hannah Okwelum) T352911
    Open source →
  17. v4.2.0 15 Feb 2024
    Release notes

    Added:

    • Add isruleset() function (Hannah Okwelum) T354895
    • Add source details to "Operation on an invalid type" error (Hannah Okwelum) T344197
    • Add support for method=relative parameter in color functions (Hannah Okwelum) T354895
    • Add support for comments in variables and function parameters (Hannah Okwelum) T354895
    • Less_Parser: Add functions parser option API (Hannah Okwelum)

    Changed, to match Less.js 2.5.3:

    • Preserve original color keywords and shorthand hex (Hannah Okwelum) T352866

    Fixed:

    • Fix PHP Warning when using a dynamic variable name like @@name (Hannah Okwelum) T352830
    • Fix PHP Warning when @extend path contains non-quoted attribute (Gr8b) T349433
    • Less_Parser: Faster skipWhitespace by using native strspn (Umherirrender)
    • Less_Parser: Fix Less_Tree_JavaScript references to consistently be in camel-case (Stefan Fröhlich)
    • Fix !important in nested mixins (Hannah Okwelum) T353141
    • Fix crash when using recursive mixins (Timo Tijhof) T352829
    • Fix disappearing selectors in certain nested blocks (Hannah Okwelum) T352859
    • Fix Less_Exception_Compiler when passing unquoted value to color() (Hannah Okwelum) T353289
    • Fix order of comments in @font-face blocks (Timo Tijhof) T356706
    • Fix string comparison to ignore quote type (Timo Tijhof) T357160
    • Fix string interpolation in selectors (Hannah Okwelum) T353142
    Open source →
  18. v4.1.1 01 Aug 2023
    Release notes
    • Less_Parser: Faster MatchQuoted by using native strcspn. (Thiemo Kreuz)
    • Less_Parser: Faster parseEntitiesQuoted by inlining MatchQuoted. (Thiemo Kreuz)
    • Less_Parser: Faster parseUnicodeDescriptor and parseEntitiesJavascript by first-char checks. (Thiemo Kreuz)
    • Less_Tree_Mixin_Call: Include mixin name in error message (Jeremy P)
    • Fix mismatched casing in class names to fix autoloading on case-sensitive filesystems (Jeremy P)
    Open source →
  19. v4.1.0 10 Apr 2023
    Release notes
    • Add support for @supports blocks. (Anne Tomasevich) T332923
    • Less_Parser: Returning a URI from SetImportDirs() callbacks is now optional. (Timo Tijhof)
    Open source →
  20. v4.0.0 11 Mar 2023
    Release notes
    • Remove support for PHP 7.2 and 7.3. Raise requirement to PHP 7.4+.
    • Remove support for 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.
    • Fix url(#myid) to be treated as absolute URL. T331649
    • Fix "Undefined property" PHP 8.1 warning when calc() is used with CSS var(). T331688
    • Less_Parser: Improve performance by removing MatchFuncs and NewObj overhead. (Timo Tijhof)
    Open source →
  21. v3.2.1 03 Feb 2023
    Release notes
    • Tree_Ruleset: Fix support for nested parent selectors (Timo Tijhof) T204816
    • Fix ParseError when interpolating variable after colon in selector (Timo Tijhof) T327163
    • Functions: Fix "Undefined property" warning on bad minmax arg
    • Tree_Call: Include previous exception when catching functions (Robert Frunzke)
    Open source →
  22. v3.2.0 09 Jan 2023
    Release notes
    • Fix "PHP Warning: Implicit conversion" on PHP 8.1 (Ayokunle Odusan)
    • Fix "PHP Warning: Creation of dynamic property" on PHP 8.2 (Bas Couwenberg, Rajesh Kumar)
    • Tree_Url: Add support for "Url" type to Parser::getVariables() (ciroarcadio) #51
    • Tree_Import: Add support for importing URLs without file extension (Timo Tijhof) #27
    Open source →
  23. v3.1.0 11 Dec 2020
    Release notes
    • Add PHP 8.0 support: Drop use of curly braces for sub-string eval (James D. Forrester)
    • Make Directive::__construct $rules arg optional (fix PHP 7.4 warning) (Sam Reed)
    • ProcessExtends: Improve performance by using a map for selectors and parents (Andrey Legayev)
    Open source →
  24. v3.0.0 11 Mar 2020
    Release notes
    • Raise PHP requirement from 7.1 to 7.2.9 (James Forrester)
    Open source →
  25. v2.0.0 04 Feb 2020
    Release notes
    • Relax PHP requirement down to 7.1, from 7.2.9 (Franz Liedke)
    • Reflect recent breaking changes properly with the semantic versioning (James Forrester)
    Open source →
  26. 1.8.2 06 Nov 2019
    Release notes
    • Require PHP 7.2.9+, up from 5.3+ (James Forrester)
    • release: Update Version.php with the current release ID (COBadger)
    • Fix access array offset on value of type null (Michele Locati)
    • Fix test suite on PHP 7.4 (Sergei Morozov)
    Open source →
  27. 1.8.1 19 Jan 2019
    Release notes
    • Another PHP 7.3 compatibility tweak
    Open source →
  28. v1.8.0 16 Oct 2018
    Release notes

    Library forked by Wikimedia, from oyejorge/less.php.

    • Supports up to PHP 7.3
    • No longer tested against PHP 5, though it's still remains allowed in composer.json for HHVM compatibility
    • Switched to semantic versioning, hence version numbers now use 3 digits
    Open source →
  29. v1.7.0 04 Mar 2014

    Nothing published for this version

  30. v1.6.3 18 Feb 2014

    Nothing published for this version

  31. v1.6.1 01 Feb 2014

    Nothing published for this version

  32. v1.5.1 16 Jan 2014

    Nothing published for this version

  33. v1.4.2 21 Oct 2013

    Nothing published for this version

  34. v1.3.0 24 Apr 2012

    Nothing published for this version

  35. v1.7.0.9 28 Sep 2015
    Release notes
    • Remove space at beginning of Version.php
    • Revert require() paths in test interface
    Open source →
  36. v1.7.0.8 24 Sep 2015

    Nothing published for this version

  37. v1.7.0.7 17 Sep 2015

    Nothing published for this version

  38. v1.7.0.6 15 Sep 2015

    Nothing published for this version

  39. v1.7.0.5 13 Jul 2015

    Nothing published for this version

  40. v1.7.0.4 27 May 2015

    Nothing published for this version

  41. v1.7.0.3 10 Mar 2015

    Nothing published for this version

  42. v1.7.0.2 05 Jun 2014

    Nothing published for this version

  43. v1.7.0.14 28 Mar 2017

    Nothing published for this version

  44. v1.7.0.13 23 Feb 2017
    Release notes
    • Fix composer.json (PSR-4 was invalid)
    Open source →
  45. v1.7.0.12 06 Feb 2017
    Release notes
    • Fix bin/lessc to have executable bit (regression from v1.7.0.10)
    • Add Less_Parser::getVariables method oyejorge #258
    Open source →
  46. v1.7.0.11 06 Sep 2016
    Release notes
    • Fix realpath issue on Windows
    • Change Less_Tree_Call property back to public (protected since v1.7.0.2) oyejorge #324
    Open source →
  47. v1.7.0.10 30 Dec 2015
    Release notes
    • Less_Parser: Add indentation option
    • Add support for optional modifier to @import
    • Fix $color in Exception messages
    • Fix cache filename to take relative-url into account oyejorge #295
    • urlArgs should be string no array()
    • Fix missing on NameValue type oyejorge #269
    Open source →
  48. v1.7.0.1 17 Mar 2014

    Nothing published for this version

  49. v1.6.3.1 23 Feb 2014

    Nothing published for this version

  50. v1.6.1rc2 31 Jan 2014

    Nothing published for this version

  51. v1.6.1rc1 27 Jan 2014

    Nothing published for this version

  52. v1.5.1rc3 07 Jan 2014

    Nothing published for this version

  53. v1.5.1rc2 01 Jan 2014

    Nothing published for this version

  54. v1.5.1rc1 26 Dec 2013

    Nothing published for this version

  55. v1.5.1b2 22 Dec 2013

    Nothing published for this version

  56. v1.5.1b1 09 Dec 2013

    Nothing published for this version

  57. v1.5.1.2 27 Jan 2014

    Nothing published for this version

  58. v1.5.1.1 20 Jan 2014

    Nothing published for this version

  59. v1.4.2rc1 11 Oct 2013

    Nothing published for this version

  60. v1.4.2b3 24 Sep 2013

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive