After about a month of tinkering, I proudly present: Orasund/elm-ui-widgets
Essentially a collection of reusable views (and some components) written in Elm-Ui.
Examples of all widgets can be found here. For styling, I used my own Orasund/elm-ui-framework.
Why create such a package?
After looking at the current packages that implement various reusable views (and components) I noticed two things:
- There are (nearly) no widgets for Elm-Ui, and that’s a problem because while going from
Element
toHtml
is easy, the opposite is not always possible (as a lot of styling in Elm-Ui would not be adapted to theHtml
element.) - There is no collection of widgets, all in one place. A lot of components get reimplemented over and over again. It’s hard to keep track of what package is currently the best.
This package tries to solve both of these problems.
Why does this package also include components?
I wrote a component whenever the wiring of a similar reusable view results in more effort than the boilerplate of the component.
Where will it go from here?
I really would like to write a native material-design implementation in Elm. But after doing this package as a first step, (Which I already wrote while having the material.io docs as reference) I am not quite sure how I can avoid a lot of boilerplating. It seems like a Master View Type would be the solution, but I’m not quite sure how I can ensure the customizability when my entire page can be described as a single type. (I don’t want to know how many parameters such a type would need).