Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Monadic Haskell DSL for CSS.
Latest commit d51dcdf @chrisdone Merge pull request #2 from dag/patch-2
-ms-filter not -mz
Failed to load latest commit information.
src -ms-filter not -mz
.gitignore First commit.
LICENSE First commit. Add syntax highlighting to README
Setup.hs First commit.
css.cabal First commit.

A very simple Haskell DSL for CSS.


-- | Input style.
inputs :: CSS Rule
inputs =
  rule "form p label" $ do
    rule "textarea" $ do
      width "100%"
      height "20em"
      clear "both"
      margin "1em 0 0 0"

    rule "textarea, input.text" $ do
      border "2px solid #ddd"
      borderRadius "4px"
    rule "textarea:focus, input.text:focus" $ do
      background "#eee"

    rule "span" $ do
      float "left"
      width "7em"
      display "block"


λ> renderCSS $ runCSS inputs
"form p label
textarea{width:100%;height:20em;clear:both;margin:1em 0 0 0}form p
label textarea, input.text{border:2px solid
#ddd;border-radius:4px}form p label textarea:focus,
input.text:focus{background:#eee}form p label

Pretty printed:

λ> T.putStrLn $ renderPrettyCSS $ runCSS inputs
form p label{

form p label textarea{
    width: 100%;
    height: 20em;
    clear: both;
    margin: 1em 0 0 0
form p label textarea, input.text{
    border: 2px solid #ddd;
    border-radius: 4px
form p label textarea:focus, input.text:focus{
    background: #eee
form p label span{
    float: left;
    width: 7em;
    display: block
Something went wrong with that request. Please try again.