Normally he talks about crazy and creative stuff. Now he’s got something more important to talk about, according to himself :-)
Most programming languages make sure you can write nice and clean and clear code. CSS does not. Here are some issues with css:
He asked for a show of hands: half of the audience already used a css preprocessor. There are two main preprocessors:
The features of both are more or less equivalent, both are a superset of css. He recommends scss. He likes the syntax more. And there’s a python css compiler for it.
Some good things about such a preprocessor (some points are scss-specific, though):
Variables. Handy especially for specifying colors. $main_color: #123456;.
Math and functions are available:
$totalWidth = 120px;
$padding = 10px;
width = $totalWidth - $padding;
Hierarchical nesting:
#sidebar {
some-rule: 10px;
ul {
another-rule: 2em;
}
}
CSS hacks. You can do all the hacks with a simple mixin. Same with vendor prefixes.
Single line comments. Small feature, but way nicer than /* ..... */
p {
// A comment
width: 200px;
}
SCSS has a sprite-map function for automatically creating a sprite out of a folder full of PNGs with a handy syntax to use them in your (s)css.
You can organize files and import them. Yes, importing css :-)
He then gave a demonstration. For that he used the following python packages:
There are also some drawbacks, however:
Conclusion: preprocessors solve common problems. They allow you to focus on writing clear and meaningful css. Try it and you’ll never want to go back. (Note by Reinout: very, very true. I use less myself, btw.)

My name is Reinout van Rees and I work a lot with Python (programming language) and Django (website framework). I live in The Netherlands and I'm happily married to Annie van Rees-Kooiman.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):