Phone, keyboard, and mouse

Do We Still Need CSS Extensions Like Less or Sass?

Daniel Wolf
Daniel Wolf Aug 22nd, 2023

CSS preprocessors like Less and Sass have been instrumental in simplifying and enhancing the CSS development process. These tools introduced features such as variables, mixins, and nested rules, revolutionizing the way we write stylesheets. However, with the evolution of modern CSS standards, many of these features are now native to plain CSS. In this article, we’ll delve into the changes in CSS, explore the integration of preprocessor-like features into modern CSS, and question whether the use of extensions like Less and Sass is still essential.

The Rise of Preprocessor Extensions

CSS preprocessors emerged as a solution to manage the complexity of styling in web projects. Less and Sass offered convenient features like variables for reusability, mixins for code organization, and nesting for improved readability. These extensions gained popularity for streamlining workflows and reducing redundancy in code.

Evolving CSS Standards

The landscape of CSS has evolved significantly, incorporating numerous features that were once exclusive to preprocessors. Let's examine some of these features:

Variables and Mixins

Preprocessors introduced the concept of variables, allowing developers to store and reuse values throughout their stylesheets. In modern CSS, this functionality is mirrored by custom properties (CSS variables). Custom properties offer dynamic values that can be reused, contributing to maintainable and consistent styles. Similarly, the concept of mixins can now be realized using CSS functions and custom properties.

IN LESS/SASS

@primary-color: #007bff;
.button {
  color: @primary-color;
}

IN MODERN CSS

:root {
  --primary-color: #007bff;
}
.button {
  color: var(--primary-color);
}

Nesting

Nesting of rules within one another was a pivotal feature brought by preprocessors. It enhanced code organization and readability. Modern CSS achieves similar benefits by utilizing descendant combinators and more specific selectors. While the syntax differs, the outcome remains the same—an organized and clean stylesheet.

IN LESS/SASS

.container {
  .inner {
    color: #333;
  }
}

IN MODERN CSS

.container .inner {
  color: #333;
}

Mathematical Operations

Preprocessors enabled mathematical operations directly within stylesheets, aiding in responsive design. Modern CSS has embraced this through the calc() function, allowing mathematical calculations within property values. This eliminates the need for separate preprocessors to handle mathematical operations.

IN LESS/SASS

.width {
  width: 100% - 20px;
}

IN MODERN CSS

.width {
  width: calc(100% - 20px);
}

Prefixing: A Case for Automation

While modern CSS integrates many preprocessor features, one challenge remains—vendor prefixes. These prefixes are crucial for browser compatibility. Fortunately, tools like Autoprefixer can be seamlessly integrated into modern CSS workflows. Autoprefixer automates the addition of necessary prefixes based on browser compatibility data, removing the need for manual intervention.

Simplicity and Performance

A compelling argument for embracing modern CSS is its simplicity. Plain CSS eliminates the need for compilation steps and external dependencies, resulting in streamlined development. In cases where preprocessors introduce additional tooling and setup, modern CSS provides a straightforward and efficient alternative.

When Preprocessors Still Shine

It’s important to acknowledge that preprocessor extensions still have their place. Legacy projects built with preprocessors might not warrant migration to modern CSS. Additionally, teams familiar with preprocessor workflows might find it more practical to continue using them.

Conclusion

The landscape of web development has seen modern CSS emerge as a contender against preprocessor extensions. With features like variables, nesting, and mathematical operations now integral to CSS, the gap between preprocessors and modern CSS has narrowed. The decision to use preprocessors or rely on modern CSS depends on project needs, team familiarity, and personal preference. As CSS standards continue to evolve, developers should stay informed about both approaches, enabling them to make informed decisions tailored to their projects.

Additional Resources

CSS Custom Properties (Variables)
Autoprefixer

Related Services

Custom Software

Code meant for the long haul. Whether it's a custom mobile app, a progressive web app or website, or backend web services, Wolfco develops custom software that meets our clients' needs today, and tomorrow.

Related Work