Tune in to the tools and techniques in the Elm ecosystem.
009: elm-ui
July 27, 2020
0:58:49
56.67 MB
Downloads: 0
elm-uipackage- Fewer overlapping ways to express views
Element.padding(no concept of margin)
Previously called style-elements
There used to be a notion of a single type defining all possible styles
Latest
elm-uisimplifies that by using only inline styles. You build your own abstractions with vanilla Elm functions/modules etc.Elementtype is the equivalent of theHtmltype fromelm/html
Escape hatches
Element.htmlworks at leaf nodes, butelm-uiin general doesn’t mix with plain htmlElement.htmlAttributeRefactoring is a huge asset for a team, so much easier than css refactoring
Doesn’t expose all the css tricks directly, sometimes you need escape hatches to access those
Responsiveness
- Pass in window size from your Elm model
- Doesn’t use media queries, so that approach doesn't play well with with pre-rendered html like in
elm-pages classifyDeviceis an optional helper for responsiveness
Semantic html
- Express layout with
Element.row,column,el - Semantic HTML is independent from layout. Set with attributes using the
Element.Regionmodule.
Wrapping
Element.paragraphuses text wrapping
em/rem
elm-uidoesn't expose access toremandemunits to simplify the mental model and reduce overlapping ways to express something
Cookbooks/examples
Lucas Payr's elm-ui-widgets
Alex Korban's elm-ui patterns
)
Debugging elm-ui views
Element.explaingives you highlights around nested elements- Inspecting developer tools doesn't help much with
elm-ui, butelm-uiis much more traceable because it doesn't have layout cascading like CSS
Resources
- Matt's
elm-uiannouncement talk at Elm Europe (was aboutelm-style-elements, but still worth a watch) - Matt's more recent
elm-uiconference talk - Richard Feldman's talk CSS as Bytecode (uses style-elements, but it's a great intro tutorial on
elm-uiconcepts) - #elm-ui channel in the Elm slack