Quickly render HTML in Elm.
The HTML part of an Elm program looks something like this:
import Html exposing (Html, button, div, text)
import Html.Events exposing (onClick)
type Msg = Increment | Decrement
view : Int -> Html Msg
view count =
div []
[ button [ onClick Decrement ] [ text "-" ]
, div [] [ text (String.fromInt count) ]
, button [ onClick Increment ] [ text "+" ]
]
If you call view 42
you get something like this:
<div>
<button>-</button>
<div>42</div>
<button>+</button>
</div>
This snippet comes from a complete example. You can play with it online here and read how it works here.
You can play with a bunch of other examples here.
Definitely read through guide.elm-lang.org to understand how this all works! The section on The Elm Architecture is particularly helpful.
This library is backed by elm/virtual-dom which handles the dirty details of rendering DOM nodes quickly. You can read some blog posts about it here: