{-# LANGUAGE OverloadedStrings #-} module Design.Helper ( clearFix , defaultButton , iconButton , defaultInput , centeredWithMargin , expandBlock , verticalCentering ) where import Prelude hiding (span) import Clay import Data.Monoid ((<>)) import Design.Constants import Design.Color as C import qualified Clay.Display as D clearFix :: Css clearFix = after & do content (stringContent "") display D.table clear both defaultButton :: Color -> Color -> Size Abs -> Css defaultButton backgroundCol textCol h = do backgroundColor backgroundCol color textCol borderRadius radius radius radius radius verticalAlign middle cursor pointer lineHeight h textAlign (alignSide sideCenter) iconButton :: Color -> Color -> Size Abs -> Css iconButton backgroundCol textCol h = do defaultButton backgroundCol textCol h i <> span ? do height h lineHeight h span ? do display inlineBlock marginLeft (px 20) i ? do marginLeft (px 20) marginRight (px 20) hover & i ? transform (scale 1.2 1.2) defaultInput :: Integer -> Css defaultInput inputHeight = do height (px inputHeight) padding (px 10) (px 10) (px 10) (px 10) borderRadius radius radius radius radius border solid (px 1) C.darkGrey focus & borderColor C.grey verticalAlign middle centeredWithMargin :: Css centeredWithMargin = do width (pct blockPercentWidth) marginLeft auto marginRight auto expandBlock :: Color -> Color -> Size Abs -> Css expandBlock headerBackground headerColor headerHeight = do marginBottom blockMarginBottom marginLeft (pct blockPercentMargin) marginRight (pct blockPercentMargin) ".header" ? do defaultButton headerBackground headerColor headerHeight width (pct 100) fontSize (px 18) borderRadius radius radius radius radius textAlign (alignSide sideLeft) position relative paddingLeft blockPadding paddingRight (px 55) verticalCentering :: Css verticalCentering = do position absolute top (pct 50) "transform" -: "translateY(-50%)"