about summary refs log tree commit diff
path: root/website/sandbox/learnpianochords/src/Overview.elm
blob: efcf5f5e1e0a3313668b0dab9ef91cb691e32f3f (plain) (blame)
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
module Overview exposing (render)

import Html exposing (..)
import Html.Attributes exposing (..)
import Html.Events exposing (..)
import State
import UI


header1 : String -> Html msg
header1 copy =
    h2
        [ [ "text-center", "text-6xl", "pt-24", "pb-12" ]
            |> UI.tw
            |> class
        ]
        [ text copy ]


header2 : String -> Html msg
header2 copy =
    h2 [ [ "text-center", "text-5xl", "pb-10" ] |> UI.tw |> class ]
        [ text copy ]


paragraph : String -> Html msg
paragraph copy =
    p [ [ "text-4xl", "pb-10" ] |> UI.tw |> class ]
        [ text copy ]


sect : { title : String, copy : List String } -> Html msg
sect { title, copy } =
    section [] (header2 title :: (copy |> List.map paragraph))


numberedList : List String -> Html msg
numberedList items =
    ol
        [ [ "list-inside"
          , "list-decimal"
          , "text-4xl"
          ]
            |> UI.tw
            |> class
        ]
        (items |> List.map (\x -> li [ [ "pb-10" ] |> UI.tw |> class ] [ text x ]))


render : State.Model -> Html State.Msg
render model =
    div [ [ "container", "mx-auto" ] |> UI.tw |> class ]
        [ header1 "Welcome to LearnPianoChords.app!"
        , paragraph """
                     Learn Piano Chords helps piano players master chords.
                     """
        , paragraph """
                     Chords are the building blocks songwriters use to create
                     music. Whether you're a performer or songwriter, you need
                     to understand chords to unlock your full musical potential.
                     """
        , paragraph """
                     I think that if practicing is enjoyable, students will
                     practice more. Practice doesn’t make perfect; perfect
                     practice makes perfect.
                     """
        , section []
            [ header2 "Ready to get started?"
            , numberedList
                [ """
                   Sit down at the piano.
                   """
                , """
                   Set the tempo at which you would like to practice.
                   """
                , """
                   Select the key or keys in which you would like to
                   practice.
                   """
                , """
                   When you are ready, close the preferences pane. We will show
                   you the name of a chord, and you should play that chord on
                   the piano.
                 """
                , """
                   If you don't know how to play the chord, toggle the piano
                   viewer to see the notes.
                   """
                , """
                   At any point while you're training, press the screen to pause
                   or resume your practice.
                   """
                ]
            ]
        , div [ [ "text-center", "py-20" ] |> UI.tw |> class ]
            [ UI.simpleButton
                { label = "Let's get started"
                , handleClick = State.SetView State.Preferences
                , color = UI.Secondary
                , classes = []
                }
            ]
        ]