Clay is a CSS preprocessor like LESS and Sass, but implemented as an embedded domain specific language (EDSL) in Haskell. This means that all CSS selectors and style rules are first class Haskell functions, which makes reuse and composability easy.

The project is described on http://fvisser.nl/clay.

The API documentation can be found in the top level module Clay.

0.8 -> 0.9 - Added list-style-type property. - Added some CSS3 selectors and pseudo-classes. - Added some missing HTML5 elements. - Added keyframes support. - Fixed bug in linear in transition. - Added Initial and Unset type classes. - Added animation related styling rules. - Restored old renderer. - Fixed bunch of warnings. - Added :last-child pseudo selector. - Stub test suite Thanks to Sergei Trofimovich, Levi Ad, Ian D. Bollinger, Ben Gamari and Oly Mi!