2024-11-10 22:55:49 -06:00
|
|
|
module Config.Theme exposing (..)
|
|
|
|
|
|
|
|
import Element exposing (..)
|
|
|
|
import Element.Background as B
|
|
|
|
import Element.Font as F
|
2024-11-11 18:57:51 -06:00
|
|
|
import Html.Attributes as H exposing (style)
|
2024-11-10 22:55:49 -06:00
|
|
|
|
|
|
|
|
2024-11-11 00:43:03 -06:00
|
|
|
topLevelContainer : Element msg -> Element msg
|
|
|
|
topLevelContainer =
|
|
|
|
el
|
|
|
|
[ width fill
|
|
|
|
, height fill
|
|
|
|
, B.color colourTheme.backgroundColour
|
|
|
|
]
|
|
|
|
|
|
|
|
|
2024-11-11 18:57:51 -06:00
|
|
|
pageList : List (Attribute msg)
|
|
|
|
pageList =
|
|
|
|
[ spacing 40
|
|
|
|
, centerX
|
|
|
|
, centerY
|
|
|
|
, moveDown 60
|
|
|
|
, alignTop
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
type alias Theme =
|
|
|
|
{ nonHighlightedText : Color
|
|
|
|
, nonHighlightedDarkText : Color
|
|
|
|
, highlightText : Color
|
|
|
|
, highlightTextHover : Color
|
|
|
|
, backgroundColour : Color
|
|
|
|
, debugColour : Color
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2024-11-10 22:55:49 -06:00
|
|
|
colourTheme : Theme
|
|
|
|
colourTheme =
|
|
|
|
{ nonHighlightedText = rgb255 212 212 212
|
|
|
|
, nonHighlightedDarkText = rgb255 126 126 126
|
|
|
|
, highlightText = rgb255 204 102 0
|
2024-11-11 18:57:51 -06:00
|
|
|
, highlightTextHover = rgb255 120 60 0
|
2024-11-10 22:55:49 -06:00
|
|
|
, backgroundColour = rgb255 40 40 40
|
|
|
|
, debugColour = rgb255 227 28 121
|
|
|
|
}
|
2024-11-11 00:43:03 -06:00
|
|
|
|
|
|
|
|
2024-11-11 18:57:51 -06:00
|
|
|
transitionStyle : Attribute msg
|
|
|
|
transitionStyle =
|
|
|
|
htmlAttribute <| style "transition" "all .2s"
|
|
|
|
|
|
|
|
|
|
|
|
transitionHighlightedLinkHover : Element msg -> Element msg
|
|
|
|
transitionHighlightedLinkHover =
|
|
|
|
el
|
|
|
|
[ mouseOver [ F.color colourTheme.highlightTextHover ]
|
|
|
|
, transitionStyle
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
transitionNonHighlightedLinkHover : Element msg -> Element msg
|
|
|
|
transitionNonHighlightedLinkHover =
|
|
|
|
el
|
|
|
|
[ mouseOver [ F.color colourTheme.highlightText ]
|
|
|
|
, transitionStyle
|
|
|
|
]
|
|
|
|
|
|
|
|
|
2024-11-11 00:43:03 -06:00
|
|
|
spartanFont : F.Font
|
|
|
|
spartanFont =
|
|
|
|
F.typeface "League Spartan"
|
|
|
|
|
|
|
|
|
|
|
|
imageSpacer : Attribute msg
|
|
|
|
imageSpacer =
|
|
|
|
spacing 20
|
|
|
|
|
|
|
|
|
2024-11-11 18:57:51 -06:00
|
|
|
navBarLinkFormat : List (Attr () msg)
|
|
|
|
navBarLinkFormat =
|
|
|
|
[ F.size 15
|
|
|
|
|
|
|
|
-- , F.bold
|
|
|
|
]
|
|
|
|
|
|
|
|
|
2024-11-11 00:43:03 -06:00
|
|
|
titleFormat : List (Attr () msg)
|
|
|
|
titleFormat =
|
|
|
|
[ F.size 23
|
|
|
|
, F.bold
|
|
|
|
]
|
|
|
|
|
|
|
|
|
2024-11-11 18:57:51 -06:00
|
|
|
nonHighlightedTitleFormat : List (Attr () msg)
|
|
|
|
nonHighlightedTitleFormat =
|
|
|
|
[ F.color colourTheme.nonHighlightedText
|
|
|
|
]
|
|
|
|
++ titleFormat
|
|
|
|
|
|
|
|
|
|
|
|
highlightedTitleFormat : List (Attr () msg)
|
|
|
|
highlightedTitleFormat =
|
|
|
|
[ F.color colourTheme.highlightText
|
|
|
|
]
|
|
|
|
++ titleFormat
|
|
|
|
|
|
|
|
|
2024-11-11 00:43:03 -06:00
|
|
|
paragraphFontSize : Attr decorative msg
|
|
|
|
paragraphFontSize =
|
|
|
|
F.size 17
|
|
|
|
|
|
|
|
|
|
|
|
paragraphLinkFormat : { url : String, label : Element msg } -> Element msg
|
|
|
|
paragraphLinkFormat =
|
|
|
|
newTabLink
|
|
|
|
[ paragraphFontSize
|
|
|
|
, F.color colourTheme.highlightText
|
|
|
|
]
|
|
|
|
|
|
|
|
|
2024-11-11 18:57:51 -06:00
|
|
|
paragraphText : List (Attr () msg)
|
|
|
|
paragraphText =
|
|
|
|
[ F.color colourTheme.nonHighlightedText
|
|
|
|
, spacing 8
|
2024-11-11 00:43:03 -06:00
|
|
|
, paragraphFontSize
|
|
|
|
]
|
|
|
|
|
|
|
|
|
2024-11-11 18:57:51 -06:00
|
|
|
paragraphFormat : List (Attr () msg)
|
|
|
|
paragraphFormat =
|
|
|
|
[]
|
|
|
|
++ paragraphText
|
|
|
|
|
|
|
|
|
|
|
|
paragraphBoldFormat : List (Attr () msg)
|
|
|
|
paragraphBoldFormat =
|
|
|
|
[ F.bold ]
|
|
|
|
++ paragraphText
|
|
|
|
|
|
|
|
|
|
|
|
paragraphWidth : Attribute msg
|
|
|
|
paragraphWidth =
|
|
|
|
width <| px 700
|
|
|
|
|
|
|
|
|
|
|
|
paragraphAlignLeft : List (Attr () msg)
|
|
|
|
paragraphAlignLeft =
|
|
|
|
[ alignLeft, paragraphWidth ]
|
|
|
|
++ paragraphText
|
|
|
|
|
|
|
|
|
2024-11-11 00:43:03 -06:00
|
|
|
paragraphColumnFormat : List (Attribute msg)
|
|
|
|
paragraphColumnFormat =
|
|
|
|
[ spacing 20
|
2024-11-11 18:57:51 -06:00
|
|
|
, paragraphWidth
|
2024-11-11 00:43:03 -06:00
|
|
|
]
|