2020-04-18 15:58:16 +02:00
|
|
|
|
module Overview exposing (render)
|
|
|
|
|
|
|
|
|
|
import Html exposing (..)
|
|
|
|
|
import Html.Attributes exposing (..)
|
|
|
|
|
import Html.Events exposing (..)
|
Responsively size UI
TL;DR: scale down UI for non-mobile devices.
I pulled the screen resolution for my phone, the Google Pixel 4, off of the
internet. I created a device profile in Chrome to develop this application
specifically for my phone. To my surprise, when I opened the app on my phone,
many of elements that looked good in Google Chrome, looked askew on my phone. I
needed to troubleshoot.
Here's how I did that:
I used Tailwind to responsively color the bg for each breakpoint to see if my
device was sm, md, lg, xl (according to Tailwind's breakpoint
terminology). After reading Tailwind's documentation and comparing their
breakpoints with my Pixel 4's width (i.e. 1080px), I figured that my device
would be lg. It's not; it's md, which I confirmed by using ngrok to load
localhost:8000 on my phone and see that the background-color was
"md:bg-green-600".
I'm still unsure why my device is not lg, but knowing that my device was md
was enough to fix many of the styling issues. My current theory is that while
my screen's resolution is 1080 wide, the pixel density affects the media query
for the breakpoint.
2020-04-19 14:05:55 +02:00
|
|
|
|
import Responsive
|
2020-04-18 15:58:16 +02:00
|
|
|
|
import State
|
2020-04-18 20:51:57 +02:00
|
|
|
|
import UI
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
header1 : String -> Html msg
|
|
|
|
|
header1 copy =
|
|
|
|
|
h2
|
Responsively size UI
TL;DR: scale down UI for non-mobile devices.
I pulled the screen resolution for my phone, the Google Pixel 4, off of the
internet. I created a device profile in Chrome to develop this application
specifically for my phone. To my surprise, when I opened the app on my phone,
many of elements that looked good in Google Chrome, looked askew on my phone. I
needed to troubleshoot.
Here's how I did that:
I used Tailwind to responsively color the bg for each breakpoint to see if my
device was sm, md, lg, xl (according to Tailwind's breakpoint
terminology). After reading Tailwind's documentation and comparing their
breakpoints with my Pixel 4's width (i.e. 1080px), I figured that my device
would be lg. It's not; it's md, which I confirmed by using ngrok to load
localhost:8000 on my phone and see that the background-color was
"md:bg-green-600".
I'm still unsure why my device is not lg, but knowing that my device was md
was enough to fix many of the styling issues. My current theory is that while
my screen's resolution is 1080 wide, the pixel density affects the media query
for the breakpoint.
2020-04-19 14:05:55 +02:00
|
|
|
|
[ [ "text-center"
|
|
|
|
|
, "pt-24"
|
|
|
|
|
, "pb-12"
|
|
|
|
|
, Responsive.h1
|
|
|
|
|
]
|
2020-04-18 20:51:57 +02:00
|
|
|
|
|> UI.tw
|
|
|
|
|
|> class
|
|
|
|
|
]
|
|
|
|
|
[ text copy ]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
header2 : String -> Html msg
|
|
|
|
|
header2 copy =
|
Responsively size UI
TL;DR: scale down UI for non-mobile devices.
I pulled the screen resolution for my phone, the Google Pixel 4, off of the
internet. I created a device profile in Chrome to develop this application
specifically for my phone. To my surprise, when I opened the app on my phone,
many of elements that looked good in Google Chrome, looked askew on my phone. I
needed to troubleshoot.
Here's how I did that:
I used Tailwind to responsively color the bg for each breakpoint to see if my
device was sm, md, lg, xl (according to Tailwind's breakpoint
terminology). After reading Tailwind's documentation and comparing their
breakpoints with my Pixel 4's width (i.e. 1080px), I figured that my device
would be lg. It's not; it's md, which I confirmed by using ngrok to load
localhost:8000 on my phone and see that the background-color was
"md:bg-green-600".
I'm still unsure why my device is not lg, but knowing that my device was md
was enough to fix many of the styling issues. My current theory is that while
my screen's resolution is 1080 wide, the pixel density affects the media query
for the breakpoint.
2020-04-19 14:05:55 +02:00
|
|
|
|
h2
|
|
|
|
|
[ [ "text-center"
|
|
|
|
|
, "pb-10"
|
|
|
|
|
, Responsive.h2
|
|
|
|
|
]
|
|
|
|
|
|> UI.tw
|
|
|
|
|
|> class
|
|
|
|
|
]
|
2020-04-18 20:51:57 +02:00
|
|
|
|
[ text copy ]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
paragraph : String -> Html msg
|
|
|
|
|
paragraph copy =
|
Responsively size UI
TL;DR: scale down UI for non-mobile devices.
I pulled the screen resolution for my phone, the Google Pixel 4, off of the
internet. I created a device profile in Chrome to develop this application
specifically for my phone. To my surprise, when I opened the app on my phone,
many of elements that looked good in Google Chrome, looked askew on my phone. I
needed to troubleshoot.
Here's how I did that:
I used Tailwind to responsively color the bg for each breakpoint to see if my
device was sm, md, lg, xl (according to Tailwind's breakpoint
terminology). After reading Tailwind's documentation and comparing their
breakpoints with my Pixel 4's width (i.e. 1080px), I figured that my device
would be lg. It's not; it's md, which I confirmed by using ngrok to load
localhost:8000 on my phone and see that the background-color was
"md:bg-green-600".
I'm still unsure why my device is not lg, but knowing that my device was md
was enough to fix many of the styling issues. My current theory is that while
my screen's resolution is 1080 wide, the pixel density affects the media query
for the breakpoint.
2020-04-19 14:05:55 +02:00
|
|
|
|
p
|
|
|
|
|
[ [ "pb-10"
|
|
|
|
|
, Responsive.h3
|
|
|
|
|
]
|
|
|
|
|
|> UI.tw
|
|
|
|
|
|> class
|
|
|
|
|
]
|
2020-04-18 20:51:57 +02:00
|
|
|
|
[ 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"
|
Responsively size UI
TL;DR: scale down UI for non-mobile devices.
I pulled the screen resolution for my phone, the Google Pixel 4, off of the
internet. I created a device profile in Chrome to develop this application
specifically for my phone. To my surprise, when I opened the app on my phone,
many of elements that looked good in Google Chrome, looked askew on my phone. I
needed to troubleshoot.
Here's how I did that:
I used Tailwind to responsively color the bg for each breakpoint to see if my
device was sm, md, lg, xl (according to Tailwind's breakpoint
terminology). After reading Tailwind's documentation and comparing their
breakpoints with my Pixel 4's width (i.e. 1080px), I figured that my device
would be lg. It's not; it's md, which I confirmed by using ngrok to load
localhost:8000 on my phone and see that the background-color was
"md:bg-green-600".
I'm still unsure why my device is not lg, but knowing that my device was md
was enough to fix many of the styling issues. My current theory is that while
my screen's resolution is 1080 wide, the pixel density affects the media query
for the breakpoint.
2020-04-19 14:05:55 +02:00
|
|
|
|
, Responsive.h3
|
2020-04-18 20:51:57 +02:00
|
|
|
|
]
|
|
|
|
|
|> UI.tw
|
|
|
|
|
|> class
|
|
|
|
|
]
|
|
|
|
|
(items |> List.map (\x -> li [ [ "pb-10" ] |> UI.tw |> class ] [ text x ]))
|
2020-04-18 15:58:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
render : State.Model -> Html State.Msg
|
|
|
|
|
render model =
|
2020-04-18 21:20:22 +02:00
|
|
|
|
div [ [ "container", "mx-auto" ] |> UI.tw |> class ]
|
2020-04-18 20:51:57 +02:00
|
|
|
|
[ 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.
|
|
|
|
|
"""
|
|
|
|
|
]
|
|
|
|
|
]
|
2020-04-18 21:20:22 +02:00
|
|
|
|
, div [ [ "text-center", "py-20" ] |> UI.tw |> class ]
|
2020-04-18 20:51:57 +02:00
|
|
|
|
[ UI.simpleButton
|
|
|
|
|
{ label = "Let's get started"
|
|
|
|
|
, handleClick = State.SetView State.Preferences
|
|
|
|
|
, color = UI.Secondary
|
|
|
|
|
, classes = []
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
]
|