A CSS preprocessor is a program that lets you generate CSS from the preprocessor's own unique syntax. This syntax enables users to use logic in CSS code, such as variables, nesting, inheritance, mixins, functions, and mathematical operations. It also makes it easy to automate repetitive tasks, reduce errors and code bloat, create reusable code snippets, and ensure backward compatibility. CSS Preprocessors then compile this code written using a preprocessor's syntax and then create a CSS file, which can then be referenced by the main HTML document.
Here we will look at some of the CSS Preprocessors you can choose to integrate with your projects.
1. Sass/Scss
SCSS stands for the Sassy Cascading Style Sheets. The more advanced variant of CSS is SCSS. Sass allows frontend developers to use variables, if/else statements, for/while/each loop, inheritance, and other computational logic in their CSS code. It helps keep large stylesheets well-organized and makes it easy to share design within and across projects. Sass has two syntaxes. The*.sassfile extension uses the older indentation-based syntax and omits semicolons and curly brackets from the code. The newer and more widely used syntax belongs to the.scss*file extension. It uses the standard CSS syntax with braces and semicolons.
Designed by: Hampton Catlin.
Pros:
- Sass facilitates you to write clean, easy, and less CSS in a programming construct.
- It contains fewer codes so that you can write CSS quicker.
- It is more stable, powerful, and elegant because it is an extension of CSS. So, it is easy for designers and developers to work more efficiently and quickly.
- It is compatible with all versions of CSS. So, you can use any available CSS libraries.
- It provides nesting to use nested syntax and useful functions like color manipulation, math functions, and other values.
Cons:
- The developer must have enough time to learn new features present in this preprocessor before using it.
- Using Sass may cause losing benefits of the browser's built-in element inspector.
- Code has to be compiled.
- Difficult Troubleshooting.
Top companies using this:
- Airbnb
- StackShare
- Accenture
- Trivago
2. LESS (Leaner Style Sheets)
LESS is a dynamic preprocessor style sheet language that can be compiled into Cascading Style Sheets (CSS) and run on the client-side or server-side. Less is an open-source project. Its first version was written in Ruby; however, in the later versions, the use of Ruby has been deprecated and replaced by JavaScript. The indented syntax of Less is a nested metalanguage, as valid CSS is valid Less code with the same semantics. The main difference between Less and other CSS precompilers is that Less allows real-time compilation via less.js by the browser.
Designed by: Alexis Sellier.
Pros:
- LESS is a CSS preprocessor. After compilation, it generates simple CSS, which works across the browsers.
- LESS supports cross-browser compatibility.
- LESS codes are simple, clean, and well organized because of the use of nesting.
- Maintenance in LESS can be achieved faster because of the use of variables.
- LESS provides a list of operators which makes coding faster and time-saving.
- LESS facilitates you to reuse the whole class easily by referencing them in your rule-set.
- LESS is new and preferred over the conventional CSS because it may ease the lengthy styling.
Cons:
- You must have to spend some time to learn LESS if you are new to CSS preprocessing.
- LESS provides fewer frameworks compared to older preprocessors like SASS which contains frameworks like Compass, Gravity and Susy.
- In LESS, there is a tight coupling between modules, so it takes more effort to reuse and/or test dependent modules.
Top companies using this:
- Accenture
- Clubhouse
- Typeform
- Patreon
- Odoo
3. Stylus
Stylus is a dynamic stylesheet preprocessor language that is compiled into Cascading Style Sheets. Its design is influenced by Sass and LESS. It offers a wider range of features, a super-fast Node.js system under the hood, and gives users the most freedom in how they write their CSS.
Designed by: TJ Holowaychuk
Pros:
- Hugely powerful built-in functions.
- Can do much more computing and 'heavy-lifting' inside your styles.
- Written in Node.js, which is fast and fits neatly with a 2018 JavaScript stack.
- 'Pythonic' syntax looks a lot cleaner and requires fewer characters.
Cons:
- Doesn't seem to be in very active development.
- Too forgiving, which can lead to confusion.
Top companies using this:
- BayOne Solutions
- Matson & Isom Technology Consulting
- Designmodo
- JoliCode
4. PostCSS
PostCSS is a software development tool that uses JavaScript-based plugins to automate routine CSS operations. It leverages a modular plugin system that allows users to customize their feature set and compilation as much as possible.
Unlike many other preprocessors, PostCSS makes no assumptions about the features or stack you're using. Instead, you add the plugins you would like based on the features you want to use. You can add plugins to give it the same features like a library(like Sass).
Designed by: Andrey Sitnik.
Pros:
- Un-opinionated, modular approach --- can be heavily customized.
- Written in pure CSS, so developers don't need to learn a new syntax.
- Speed (if you only use a few plugins).
Cons:
- Speed (again) --- If mimicking another setup, PostCCS lacks the performance benefit a dedicated, optimized tool will offer
- Generally, more effort to install and maintain than a conventional preprocessor because you're relying on different plugins maintained by different people.
Top companies using this:
- Uploadcare
- SendGrid
- Banksalad
- WeGift
- Lendit
5. Pleeease
This is a Node.js application that can efficiently process your CSS. It simplifies the use of preprocessors and combines them with the best of post-processors. It helps create clean stylesheets, supports older browsers, and offers better maintainability. It even has a feature to allow you to use the syntax of your favorite preprocessor like Sass or Less within Pleeease's setup (as well as pure CSS), although this is experimental at this point.
Pros:
- Built-in autoprefixer adds vendor prefixes, using data from caniuse.com.
- Generates source maps in which you can see the original code.
- A tool rather than a syntax library, so you can use it with pure CSS or with another preprocessor.
- Clear, practical uses for dealing with older browser quirks.
Cons:
- Not very well known, which may make finding resources difficult.
- The feature that allows for the inclusion of other preprocessors is completely experimental at this stage.
Originally posted at raftlabs.co
Top comments (1)
A CSS preprocessor is a program that lets you generate CSS from the preprocessor’s own unique syntax. This syntax enables users to use logic in CSS code. Black magic obsession spell)