Older comparisons are out of date: Sass 22,539 no longer needs Ruby and has maps, trigonometry and modules, while Less 48,928 has gained maps and each(). The differences that still matter:
| Feature | Sass (SCSS) | Less |
|---|---|---|
| Compiler | Dart Sass (sass on npm 2,036 ) | less.js (less on npm) |
| Variables | $name, defined before use | @name, lazy; last definition wins |
| Code sharing | @use/@forward namespaces | Global @import with options |
| Mixins | @mixin + @include | Any rule, called as .name() |
| Passing a block | @content | Detached ruleset @rules() |
| Logic | @if, @each, @for, @while | Guards, recursion, each() |
| Custom functions | @function | JavaScript @plugin |
| 2px + 3em | Error: incompatible units | 5px (first unit wins) |
| Only in one | @at-root, !default, %placeholder | HSV and blend functions, browser build |
For new work Sass is the safer default: a larger ecosystem (Bootstrap 2,007 left Less for Sass in version 4), strict unit math and namespaced modules. Choose Less to maintain a Less code base or theme a library shipping Less.