On this page
Overview
Less extends CSS with variables, mixins, nesting, and related language features. Its lessc CLI and JavaScript compiler turn .less sources into regular CSS.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Compile .less sources with the lessc CLI
The npm package includes a lessc binary for turning Less source files into CSS in a build step.
Sources: [2]
Add variables, mixins, and nesting while staying close to CSS syntax
Less keeps a CSS-oriented syntax while adding reusable values, rules, and nested selectors for larger stylesheet codebases.
Sources: [1]
Best fit
Before adoption
Version 4.9.1 requires Node.js 18 or later
packages/less/package.json declares Node >=18, so older CI images or legacy build servers must be upgraded.
Sources: [2]
Clean up syntax deprecated ahead of Less 5
The 4.x line warns about numeric-leading or dash-only variable names, dash-only mixin names, dynamic @charset, and other forms planned for removal in Less 5.
Sources: [3]
Official sources
- [1]Less v4.9.1 README(2026-10-05)
- [2]Less v4.9.1 package metadata(2026-10-05)
- [3]Less v4.9.1 changelog(2026-10-05)
- [4]Less v4.9.1 release(2026-10-05)
- [5]Less Apache-2.0 license(2026-10-05)
Supplemental curator note
The Less 4.9.1 npm package requires Node.js 18 or later. The 4.x line also warns about legacy identifier forms scheduled for removal in Less 5, so existing codebases should treat those warnings as migration work.
Try it in 3 steps
- 1
Install Less 4.9.1 in an isolated project
Pin the reviewed release in a temporary project on Node.js 18 or later.
demo=$(mktemp -d "${TMPDIR:-/tmp}/less.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact --save-dev less@4.9.1 - 2
Create Less source with a variable and nesting
Create a minimal Less source that uses a variable and nested selector.
printf "%s\n" '@accent: #663399;' '.card {' ' color: @accent;' ' &:hover { color: white; }' '}' > input.less - 3
Compile it to CSS with lessc
Generate CSS and confirm the variable and nested selector were compiled into regular CSS.
npx lessc input.less output.css && grep -q ".card:hover" output.css
Growth
Growth trends · Last 30 days
17,025 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 0
- Open PRs
- 12
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- stylesheet-language
- language
- css
- Stars
- 17,025
- Forks
- 3,367
- Watchers
- 633
- Open issues
- 175
- Contributors
- 249
- Owner type
- Organization
- Primary language
- JavaScript
- License
- Apache-2.0
- Repository last updated
- Oct 3, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- i18next8,637 Stars
3 shared tag(s) · 1 shared category(s) · Same language
keep translation keys, plurals, interpolation, and resource loading independent of the UI framework
JavaScript - Tauri111,593 Stars
3 shared tag(s) · 1 shared category(s)
Combine a web frontend and Rust native layer into desktop and mobile apps using system WebViews
Rust - Storybook91,200 Stars
3 shared tag(s) · 1 shared category(s)
capture UI states once and reuse them across docs, interaction tests, and agent tooling
TypeScript - Animate.css82,849 Stars
3 shared tag(s) · 1 shared category(s)
apply reusable CSS animations to UI elements by adding classes
CSS - normalize.css53,505 Stars
3 shared tag(s) · 1 shared category(s)
reduce browser inconsistencies while preserving useful native defaults
CSS - Expo52,566 Stars
3 shared tag(s) · 1 shared category(s)
build React Native apps for Android, iOS, and web from one project model
TypeScript
Report incorrect information
Tell us if any listing information is incorrect or outdated.