# What changed in less

> 21 changes in less 4 from its official release notes, upgrade guides and advisories: 1 breaking, 4 deprecations. Each one cited. Sources checked 2026-10-19. HTML: https://unstale.sh/npm/less/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## less 4

### Breaking changes

- The not keyword is no longer silently ignored when used without parentheses in conditions. (4.6.5) — [release notes](https://github.com/less/less.js/releases/tag/v4.6.5)

### Deprecations

- Dynamic @charset interpolation is deprecated for removal in Less 5.x; use a static quoted @charset declaration. (4.8.0) — [release notes](https://github.com/less/less.js/releases/tag/v4.8.0)
- Dash-only mixin names are deprecated for removal in Less 5.x; Less 4 preserves existing output while warning. (4.8.0) — [release notes](https://github.com/less/less.js/releases/tag/v4.8.0)
- Numeric-leading and dash-only variable names are deprecated for removal in Less 5.x; Less 4 preserves existing output while warning. (4.8.0) — [release notes](https://github.com/less/less.js/releases/tag/v4.8.0)
- Bare @variable syntax in non-value at-rule positions is deprecated. (4.7.0) — [release notes](https://github.com/less/less.js/releases/tag/v4.7.0)

### Fixes and other changes

- Fixes an error when a mixin call is used as a property value. (4.9.1) — [release notes](https://github.com/less/less.js/releases/tag/v4.9.1)
- Interpolation now supports `[...]` lookups inside `@{...}`. (4.9.0) — [release notes](https://github.com/less/less.js/releases/tag/v4.9.0)
- Results from `escape()` are no longer reparsed. (4.9.0) — [release notes](https://github.com/less/less.js/releases/tag/v4.9.0)
- Flattening nested `@media` queries now keeps the media type first. (4.9.0) — [release notes](https://github.com/less/less.js/releases/tag/v4.9.0)
- Math functions are left for the browser when an argument is a runtime CSS var(). (4.8.1) — [release notes](https://github.com/less/less.js/releases/tag/v4.8.1)
- Forwarding an unset variadic no longer overrides defaults in the callee. (4.8.1) — [release notes](https://github.com/less/less.js/releases/tag/v4.8.1)
- Fixes parsing comparisons between inline condition expressions. (4.8.0) — [release notes](https://github.com/less/less.js/releases/tag/v4.8.0)
- Resolves issue #4234 in mixing. (4.8.0) — [release notes](https://github.com/less/less.js/releases/tag/v4.8.0)
- Comparison and range syntax is now parsed in container style() queries. (4.7.0) — [release notes](https://github.com/less/less.js/releases/tag/v4.7.0)
- Fixes color calc inside a from expression. (4.6.6) — [release notes](https://github.com/less/less.js/releases/tag/v4.6.6)
- Preserves spacing for container feature functions. (4.6.6) — [release notes](https://github.com/less/less.js/releases/tag/v4.6.6)
- Avoids a TypeError when dumpLineNumbers is used with nested @supports. (4.6.6) — [release notes](https://github.com/less/less.js/releases/tag/v4.6.6)
- Bundlers are routed to a CJS-typed UMD artifact to fix browser export interop. (4.6.5) — [release notes](https://github.com/less/less.js/releases/tag/v4.6.5)
- Fixes handling of parentheses in media queries. (4.6.5) — [release notes](https://github.com/less/less.js/releases/tag/v4.6.5)
- A CJS bundle is added. (4.6.3) — [release notes](https://github.com/less/less.js/releases/tag/v4.6.3)
- Use the UMD dist/less.js to fix the webpack browser build. (4.6.3) — [release notes](https://github.com/less/less.js/releases/tag/v4.6.3)
