aboutsummaryrefslogtreecommitdiff
path: root/src/server/Design/Helper.hs
blob: 6e2fde3488cb888ae2e858e04c0a8ff380f3f478 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
{-# LANGUAGE OverloadedStrings #-}

module Design.Helper
  ( clearFix
  , defaultButton
  , defaultInput
  , centeredWithMargin
  , expandBlock
  , verticalCentering
  ) where

import Clay

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 height = do
  backgroundColor backgroundCol
  color textCol
  borderRadius radius radius radius radius
  verticalAlign middle
  cursor pointer
  lineHeight height
  textAlign (alignSide sideCenter)

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%)"