{-# LANGUAGE OverloadedStrings #-} module Design.Form ( design ) where import Data.Monoid ((<>)) import Clay import Design.Color as Color design :: Css design = do let inputHeight = 30 let inputTop = 22 let inputPaddingBottom = 3 ".textInput" ? do position relative marginBottom (em 1.5) paddingTop (px inputTop) marginTop (px (-10)) input ? do position relative zIndex 1 backgroundColor transparent paddingBottom (px inputPaddingBottom) borderStyle none borderBottom solid (px 1) Color.dustyGray marginBottom (px 5) height (px inputHeight) lineHeight (px inputHeight) focus & do borderWidth (px 2) paddingBottom (px $ inputPaddingBottom - 1) label ? do lineHeight (px inputHeight) position absolute top (px inputTop) left (px 0) color Color.silver transition "all" (sec 0.2) easeIn (sec 0) (input # ".filled" |+ label) <> (input # focus |+ label) ? do top (px 0) fontSize (pct 80) ".error" & do input ? do borderBottomColor Color.chestnutRose ".errorMessage" ? do position absolute color Color.chestnutRose fontSize (pct 80) ".radioGroup" ? do position relative marginBottom (em 2) ".title" ? do color Color.silver marginBottom (em 0.8) ".radioInputs" ? do display flex "justify-content" -: "center" ".radioInput:not(:last-child)::after" ? do content (stringContent "/") marginLeft (px 10) marginRight (px 10) input ? display none label ? cursor pointer "input:checked + label" ? do color Color.chestnutRose fontWeight bold