aboutsummaryrefslogtreecommitdiff
path: root/design/Main.hs
blob: 18688ba1844f6d76d3cc4bed33313b12565aceed (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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
{-# LANGUAGE OverloadedStrings #-}

import Clay hiding (violet)
import Data.Monoid ((<>))
import qualified Clay.Media as Media

fernFrond = rgb 101 114 32
violet = rgb 13 13 81

main :: IO ()
main = putCss $ do

  body ? do
    maxWidth responsiveLimit
    sym2 margin (px 0) auto
    mobile $ fontSize (px 14)
    desktop $ fontSize (px 18)

    "a.header" ? do
      display block
      sym2 padding (px 15) (px 0)
      sym2 margin (px 0) auto
      backgroundColor fernFrond
      color white
      fontWeight bold
      textAlign center
      hover & textDecoration none
      desktop $ do
        fontSize (px 32)
        marginBottom (px 30)
        borderRadius (px 0) (px 0) (px 5) (px 5)
      mobile $ do
        fontSize (px 22)
        marginBottom (px 20)

    a ? do
      textDecoration none
      color violet
      hover & textDecoration underline

    "#content" ? do
      mobile $ sym2 margin (px 0) (px 20)

      (h1 <> h2) ? color fernFrond

      h1 ? do
        desktop $ fontSize (px 28)
        mobile $ fontSize (px 22)

      h2 ? do
        desktop $ fontSize (px 22)
        mobile $ fontSize (px 18)

      (ul <> ol) ? do
        listStyleType none
        desktop $ paddingLeft (px 15)
        mobile $ paddingLeft (px 0)

        li ? do
          marginBottom (em 0.8)
          lineHeight (em 1.6)
          position relative
          paddingLeft (px 20)
          before & do
            position absolute
            top (px 0)
            left (px 0)
            color fernFrond
            display inlineBlock

      (ol <> ul) |> li |> (ol <> ul) ? do
        marginTop (em 0.5)
        marginLeft (px 30)

      ul ? li ? before &
        content (stringContent "•")

      ol ? do
        "counter-reset" -: "ol"

        li ? do
          desktop $ paddingLeft (px 30)
          mobile $ paddingLeft (px 20)
          position relative
          textAlign justify
          before & do
            "counter-increment" -: "ol"
            "content" -: "counter(ol)\".\""

      p ? do
        lineHeight (px 20)

        (".plus" <> ".moins") ? before & do
          display inlineBlock
          width (px 20)
          height (px 20)
          marginRight (px 10)
          textAlign (center)
          verticalAlign middle
          fontWeight bold
          "transform" -: "translateY(-2px)"
          marginLeft (px 10)

        ".plus" ? before & do
          content (stringContent "+")
          color green

        ".moins" ? before & do
          content (stringContent "−")
          color red


mobile :: Css -> Css
mobile = query Media.screen [ Media.maxWidth responsiveLimit ]

desktop :: Css -> Css
desktop = query Media.screen [ Media.minWidth responsiveLimit ]

responsiveLimit :: Size LengthUnit
responsiveLimit = px 800