nabekou29/elm-context-html/2.0.0

ContextHtml

ContextHtml

type ContextHtml ctx msg

Html with context

applyContext : ctx -> ContextHtml ctx msg -> Html msg

Apply context to ContextHtml

view : Html msg
view =
    let
        context = ... -- make Context
    in
    applyContext context viewChild


viewChild : ContextHtml Context msg
viewChild = ...
withContext : (ctx -> Html msg) -> ContextHtml ctx msg

Create ContextHtml

view : ContextHtml ctx msg
view =
    withContext <| \ctx -> Html.div [] []
wrapHtml : Html msg -> ContextHtml ctx msg

Wrap Html to ContextHtml

view : ContextHtml ctx msg
view =
    div [] [ wrapHtml <| viewCommon "Text" ]


viewCommon : String -> Html msg
viewCommon = ...

useContext

useContext : (ctx -> a) -> (a -> ContextHtml ctx msg) -> ContextHtml ctx msg

Use a context value

type alias Context =
    { text : String }


view =
    useContext .text <| \text_ -> div [] [ text text_ ]

When Context is Opaque type

-- Context.elm
type Context
    = Context { text : String }


-- Expose Selector accessing context value
textSelector (Context { text }) =
    text


textWithPrefixSelector (Context { text }) =
    "prefix_" ++ text


-- Main.elm
view1 =
    useContext textSelector <| \text_ -> div [] [ text text_ ]


view2 =
    useContext textWithPrefixSelector <| \text_ -> div [] [ text text_ ]
(ctx -> a)
-> (ctx -> b)
-> (a -> b -> ContextHtml ctx msg)
-> ContextHtml ctx msg

Use context values

type alias Context =
    { text : String
    , color : String
    }


view =
    useContext2 .text .color <| \text_ color -> div [ style "color" color ] [ text text_ ]
(ctx -> a)
-> (ctx -> b)
-> (ctx -> c)
-> (a -> b -> c -> ContextHtml ctx msg)
-> ContextHtml ctx msg
(ctx -> a)
-> (ctx -> b)
-> (ctx -> c)
-> (ctx -> d)
-> (a -> b -> c -> d -> ContextHtml ctx msg)
-> ContextHtml ctx msg
(ctx -> a)
-> (ctx -> b)
-> (ctx -> c)
-> (ctx -> d)
-> (ctx -> e)
-> (a -> b -> c -> d -> e -> ContextHtml ctx msg)
-> ContextHtml ctx msg
(ctx -> a)
-> (ctx -> b)
-> (ctx -> c)
-> (ctx -> d)
-> (ctx -> e)
-> (ctx -> f)
-> (a -> b -> c -> d -> e -> f -> ContextHtml ctx msg)
-> ContextHtml ctx msg
(ctx -> a)
-> (ctx -> b)
-> (ctx -> c)
-> (ctx -> d)
-> (ctx -> e)
-> (ctx -> f)
-> (ctx -> g)
-> (a -> b -> c -> d -> e -> f -> g -> ContextHtml ctx msg)
-> ContextHtml ctx msg
(ctx -> a)
-> (ctx -> b)
-> (ctx -> c)
-> (ctx -> d)
-> (ctx -> e)
-> (ctx -> f)
-> (ctx -> g)
-> (ctx -> h)
-> (a -> b -> c -> d -> e -> f -> g -> h -> ContextHtml ctx msg)
-> ContextHtml ctx msg

Primitives

text : String -> ContextHtml ctx msg
String
-> List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
map : (a -> msg) -> ContextHtml ctx a -> ContextHtml ctx msg

Tags

Headers

h1 :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
h2 :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
h3 :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
h4 :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
h5 :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
h6 :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg

Grouping Content

div :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
p :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
hr :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
pre :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg

Text

List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
a :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
em :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
i :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
b :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
u :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
sub :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
sup :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
br :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg

Lists

ol :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
ul :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
li :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
dl :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
dt :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
dd :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg

Embedded Content

img :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg

Inputs

List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg

Sections

List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg

Figures

List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg

Tables

List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
col :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
tr :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
td :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
th :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg

Less Common Elements

Less Common Inputs

List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg

Audio and Video

List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg

Embedded Objects

List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg

Text Edits

ins :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
del :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg

Semantic Text

List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
dfn :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
var :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
kbd :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
s :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
q :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg

Less Common Text Tags

List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
rt :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
rp :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
bdi :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
bdo :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
wbr :
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg

Interactive Elements

List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg
List (Attribute msg)
-> List (ContextHtml ctx msg)
-> ContextHtml ctx msg