Orient "Press to practice" button
Rotate the "Press to practice" copy to ensure that it is readable in landscape mode.
This commit is contained in:
		
							parent
							
								
									f0803547e4
								
							
						
					
					
						commit
						720d727d64
					
				
					 2 changed files with 58 additions and 22 deletions
				
			
		|  | @ -98,7 +98,7 @@ init = | ||||||
|             Theory.allPitchClasses |             Theory.allPitchClasses | ||||||
| 
 | 
 | ||||||
|         keys = |         keys = | ||||||
|             [] |             [ { pitchClass = Theory.C, mode = Theory.MajorMode } ] | ||||||
| 
 | 
 | ||||||
|         practiceMode = |         practiceMode = | ||||||
|             KeyMode |             KeyMode | ||||||
|  | @ -386,7 +386,7 @@ selectKey model { relativeMajor, relativeMinor } = | ||||||
|             { label = buttonLabel relativeMajor relativeMinor |             { label = buttonLabel relativeMajor relativeMinor | ||||||
|             , handleClick = ToggleKey relativeMinor |             , handleClick = ToggleKey relativeMinor | ||||||
|             , classes = [ "flex-1" ] |             , classes = [ "flex-1" ] | ||||||
|             , toggled = active relativeMinor |             , toggled = active relativeMinor || active relativeMajor | ||||||
|             } |             } | ||||||
|         ] |         ] | ||||||
| 
 | 
 | ||||||
|  | @ -464,7 +464,7 @@ practiceModeButtons model = | ||||||
| openPreferences : Html Msg | openPreferences : Html Msg | ||||||
| openPreferences = | openPreferences = | ||||||
|     button |     button | ||||||
|         [ class "w-48 h-48 absolute left-0 top-0 z-20" |         [ class "w-48 h-48 absolute left-0 top-0 z-40" | ||||||
|         , onClick (SetView Preferences) |         , onClick (SetView Preferences) | ||||||
|         ] |         ] | ||||||
|         [ Icon.cog ] |         [ Icon.cog ] | ||||||
|  | @ -502,30 +502,20 @@ preferences model = | ||||||
| practice : Model -> Html Msg | practice : Model -> Html Msg | ||||||
| practice model = | practice model = | ||||||
|     let |     let | ||||||
|         classes = |         ( handleClick, buttonText ) = | ||||||
|             [ "bg-gray-600" |  | ||||||
|             , "h-screen" |  | ||||||
|             , "w-full" |  | ||||||
|             , "absolute" |  | ||||||
|             , "z-10" |  | ||||||
|             , "text-6xl" |  | ||||||
|             ] |  | ||||||
| 
 |  | ||||||
|         ( handleClick, extraClasses, buttonText ) = |  | ||||||
|             if model.isPaused then |             if model.isPaused then | ||||||
|                 ( Play, [ "opacity-50" ], "Press to practice" ) |                 ( Play, "Press to practice" ) | ||||||
| 
 | 
 | ||||||
|             else |             else | ||||||
|                 ( Pause, [ "opacity-0" ], "" ) |                 ( Pause, "" ) | ||||||
|     in |     in | ||||||
|     div [] |     div [] | ||||||
|         [ button |         [ openPreferences | ||||||
|             [ [ classes, extraClasses ] |> List.concat |> UI.tw |> class |         , UI.overlayButton | ||||||
|             , onClick handleClick |             { label = buttonText | ||||||
|             ] |             , handleClick = handleClick | ||||||
|             [ text buttonText |             , isVisible = model.isPaused | ||||||
|             ] |             } | ||||||
|         , openPreferences |  | ||||||
|         , Piano.render |         , Piano.render | ||||||
|             { highlight = model.selectedChord |> Maybe.andThen Theory.notesForChord |> Maybe.withDefault [] |             { highlight = model.selectedChord |> Maybe.andThen Theory.notesForChord |> Maybe.withDefault [] | ||||||
|             , start = model.firstNote |             , start = model.firstNote | ||||||
|  |  | ||||||
|  | @ -114,3 +114,49 @@ textField { placeholderText, handleInput, classes } = | ||||||
|         , placeholder placeholderText |         , placeholder placeholderText | ||||||
|         ] |         ] | ||||||
|         [] |         [] | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | overlayButton : | ||||||
|  |     { label : String | ||||||
|  |     , handleClick : msg | ||||||
|  |     , isVisible : Bool | ||||||
|  |     } | ||||||
|  |     -> Html msg | ||||||
|  | overlayButton { label, handleClick, isVisible } = | ||||||
|  |     let | ||||||
|  |         classes = | ||||||
|  |             [ "bg-red-600" | ||||||
|  |             , "absolute" | ||||||
|  |             , "top-0" | ||||||
|  |             , "left-0" | ||||||
|  |             , "h-screen" | ||||||
|  |             , "w-screen" | ||||||
|  |             , "z-30" | ||||||
|  |             ] | ||||||
|  | 
 | ||||||
|  |         extraClasses = | ||||||
|  |             if isVisible then | ||||||
|  |                 [ "opacity-100" ] | ||||||
|  | 
 | ||||||
|  |             else | ||||||
|  |                 [ "opacity-0" ] | ||||||
|  |     in | ||||||
|  |     button | ||||||
|  |         [ List.concat [ classes, extraClasses ] |> tw |> class | ||||||
|  |         , style "background-color" "rgba(0,0,0,0.30)" | ||||||
|  |         , onClick handleClick | ||||||
|  |         ] | ||||||
|  |         [ h1 | ||||||
|  |             [ style "-webkit-text-stroke-width" "2px" | ||||||
|  |             , style "-webkit-text-stroke-color" "black" | ||||||
|  |             , class <| | ||||||
|  |                 tw | ||||||
|  |                     [ "transform" | ||||||
|  |                     , "-rotate-90" | ||||||
|  |                     , "text-6xl" | ||||||
|  |                     , "text-white" | ||||||
|  |                     , "font-mono" | ||||||
|  |                     ] | ||||||
|  |             ] | ||||||
|  |             [ text label ] | ||||||
|  |         ] | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue