mirror of
https://github.com/Orasund/elm-ui-widgets.git
synced 2024-11-22 22:33:33 +03:00
35 lines
1.8 KiB
Markdown
35 lines
1.8 KiB
Markdown
# Elm-Ui-Widgets
|
|
|
|
Usefull Widgets written for Elm-ui.
|
|
These include:
|
|
|
|
* Select
|
|
* Tab
|
|
* Multi Select
|
|
* Collapsable
|
|
* Dialog
|
|
* Carousel
|
|
* Snackbar
|
|
* Sort Table
|
|
* Filter Select
|
|
* Validated Input
|
|
* Scrolling Nav
|
|
|
|
Examples of all widgets can be found [here](https://orasund.github.io/elm-ui-widgets/). For styling, I used my own [Orasund/elm-ui-framework](https://package.elm-lang.org/packages/Orasund/elm-ui-framework/latest/).
|
|
|
|
## 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` to `Html` is easy, the opposite is not always possible (as a lot of styling in Elm-Ui would not be adapted to the `Html` element.)
|
|
* There is 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 boilerplate of a similar reusable view is less than just include the wiring in the package.
|
|
|
|
## 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](https://www.freecodecamp.org/news/scaling-elm-views-with-master-view-types/) 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). |