A CSS preprocessor is a scripting language that extends and is compiled into CSS.
The 3 main preprocessors out right now are Less, Sass, and Stylus. They all perform similarly, so often it is a matter of personal preference on which syntax appeals to you or which you can develop faster with.
You can write all the CSS that these preprocessors generate but it isn't very DRY. We program to reduce complexity and development time. Writing in Sass allows you to modularize your CSS, perform mathematic operations, and automate things like vendor prefixing and media-queries.
- Mixins
- Variables
- Importing / including snippets
- Calculations
- Conditionals
- Much, much more!