packages feed

blizzard-html-0.1.0.0: src/Text/Blizzard/Css.hs

{-# LANGUAGE OverloadedStrings #-}

module Text.Blizzard.Css
    ( css
    ) where


import Clay (Css, compact, renderWith)
import Data.String (fromString)
import Data.Text (unpack)
import Data.Text.Lazy (toStrict)
import Text.Blaze.Html5 (Attribute)
import Text.Blaze.Html5.Attributes (style)


css :: [Css] -> Attribute
css []     = style ""
css styles = style . fromString . firstLast . unpack . toStrict . renderWith compact [] . foldl1 (>>) $ styles

firstLast :: [a] -> [a]
firstLast []  = []
firstLast [x] = []
firstLast xs  = tail (init xs)