Context
As part of Meteor’s ongoing modernization effort, I’d like to open a discussion about CSS preprocessors and how Meteor ships them today.
The skel-full skeleton currently includes the less package by default. While LESS served us well historically, I think it’s worth revisiting this choice in 2026.
Native CSS has caught up — a lot
Modern CSS now covers many use cases that required a preprocessor just a few years ago:
Nesting (supported in all major browsers since Dec 2023):
.card {
background: white;
.title {
font-size: 1.2rem;
}
&:hover {
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
}
Custom properties (CSS variables):
:root {
--primary: #3b82f6;
--radius: 8px;
}
.button {
background: var(--primary);
border-radius: var(--radius);
}
@layer for managing specificity:
@layer base, components, utilities;
@layer components {
.btn { padding: 0.5rem 1rem; }
}
color-mix(), :has(), @container queries — the list keeps growing. For many projects, plain CSS is now sufficient.
When you do need a preprocessor, SCSS is the clear winner
Looking at the ecosystem in 2026:
- Bootstrap 4 & 5 — built on SCSS
- npm download trends —
sassdwarfslessin weekly downloads - Framework defaults — Angular, Rails, and most major frameworks default to SCSS
- Features — SCSS offers modules (
@use/@forward), maps, richer functions, namespaces — things LESS simply doesn’t have - Tooling — better IDE support, linters (
stylelint), and documentation
LESS is mostly associated with the Bootstrap 3 era at this point.
The current situation in Meteor
lesslives inpackages/non-core/— maintained in the repo but not technically a “core” packagefourseven:scssis the go-to SCSS package — community-maintained, widely used, but not in coreskel-fullships withlessby default, which sends a signal to newcomers that LESS is the recommended choice
For someone discovering Meteor today, this feels outdated.
Proposal
I’d suggest a two-part change:
1. Remove less from skel-full defaults
No skeleton should ship with a CSS preprocessor by default. Let developers choose. This is consistent with the other skeletons (skel-react, skel-blaze, etc.) which already ship without one.
2. Add a core scss package
Just like less lives in packages/non-core/, we could add an scss package maintained in the Meteor repo. This would give developers a first-class, maintained option:
meteor add scss # or
meteor add less # still available, still maintained
Optionally, meteor create could offer a --css flag:
meteor create my-app --css=scss
meteor create my-app --css=less
meteor create my-app # plain CSS, no preprocessor
Summary
- Native CSS is powerful enough for many projects in 2026
- When a preprocessor is needed, SCSS is the industry standard
- Meteor should reflect this by not defaulting to LESS and by offering SCSS as a core option
- This is a small change with a positive signal for newcomers evaluating the framework
What do you think? Would love to hear from the community