At the recent GUADEC event in Istanbul, the GTK+ community discussed ways to improve the toolkit's theming system. A particularly exciting project listed among the items on the roadmap is a plan for creating an experimental GTK+ theme engine that will enable developers to customize the appearance of their themes with cascading style sheets (CSS).

GNOME developer Robert Staudinger has already begun working on this task and posted a message yesterday on the GNOME themes mailing list with some additional details, a link to the source code of his prototype implementation, and some exciting screenshots. Although the project is still at a very early stage in development, and only a small handful of CSS features are currently supported, the work done so far shows a lot of potential. To map CSS onto GTK+, he is creating what he calls the CSS Box Drawing Library (CBD). To get a good idea of how this works, check out the border drawing implementation.

A few months ago, we looked at how CSS styling in the Qt toolkit makes it easy to bring impressive aesthetic improvements to applications. It isn't clear yet whether the CSS-based GTK+ theme engine will bring quite the same level of flexibility, but the GTK+ developers clearly think that it could simplify theme creation and make the process more accessible to artists and web developers.

It's worth noting that this is still largely an experiment and that it doesn't necessarily represent the final theming strategy for GTK+ 3. There are many other items on the roadmap that are important, too. For more details and discussion, check out the source code, the discussion thread on the GNOME themes list.