En quelques mots, un pre-processeur CSS est un outil qui permet de créer du CSS à partir d'un autre langage. Comme son nom l'indique, c'est un outil qui se place avant (pre) le traitement (processing) de votre CSS, c'est-à-dire avant qu'un navigateur lise et utilise votre CSS pour styler une page.
Leur rôle est de simplifier la vie et le travail des intégrateurs en leur fournissant de nouvelles fonctionnalités ou des "sucres syntaxiques" (quelque chose qui ne modifie pas le fonctionnement d'un langage, mais le rend plus simple à lire ou a écrire).
Attention néanmoins, quand je parle de nouvelles fonctionnalités, gardez bien en tete que le résultat final (le fichier que vous donne le pre-processeur) est un fichier CSS. Les nouvelles fonctionnalités offertes le sont donc pour vous le créateur du CSS, et pas pour les visiteurs qui verront le résultat dans leur navigateur (puisque de toute manière, les navigateurs ne comprennent que le CSS).
Comme exemple de fonctionnalité offertes, il est possible de créer automatiquement des sprites à partir de fichiers que vous avez mis dans un dossier, créer des variables pour simplifier l'édition et la relecture de votre code, ou créer des "mixins" pour simplifier et automatiser certaines portions de votre code repetitive. Enfin, le plus gros ajout des préprocesseurs CSS est selon moi qu'ils offrent les outils nécessaires à l'algorithmique : for, if, while.
Vous ne savez pas ce qu'est l'algorithmique ? Rendez-vous demain pour un article dédié a ce sujet !