Guide
Browser Support Strategy
Supporting every browser forever is not a strategy. It is a slow, expensive argument wearing a project plan.
Good browser support decisions come from user needs, business risk, and progressive enhancement, not fear of one ancient laptop in a meeting room somewhere.
Common mistakes
- supporting browsers nobody actually uses
- building for browser versions instead of features
- treating perfect visual parity as a requirement
- shipping large polyfills for tiny edge cases
- blocking modern improvements because of old assumptions
- having no written support policy at all
Better rules
- define a clear support matrix
- use browserslist where tooling supports it
- prefer feature support over version support—for CSS, JS, and APIs
- progressively enhance instead of forcing equality
- test critical journeys, not every pixel everywhere
How LSCSS helps
Layered CSS architecture makes progressive enhancement easier. Modern features like @scope, nesting, logical properties, and container queries fit cleanly when older browsers still receive a stable baseline experience.
Start here
Capture the policy in writing—start from thesupport matrix template(feature baseline, version list, or both)—then wirebrowserslist and build targetsso Autoprefixer, transpilers, and your CSS agree on the same surface. Revisit the matrix when analytics or contracts change—not only at kickoff.
Recommended reading
- Browser support for LSCSS builds(support matrix template, browserslist,
@supports) - Tooling
- @scope and modern CSS
- What is LSCSS?
Browser support should be a clear policy, not an implicit set of assumptions people rediscover each sprint.