I’ve just released version 7 of elm-mdc. elm-mdc is a port of Google’s Material Components for the Web. We keep the meticulously crafted SCSS, but the JavaScript part is rewritten in Elm.
This makes for a very nice fit with Elm, and far fewer issues when upgrading to newer versions of this library.
The latter one uses the JavaScript, and Elm is only a thin wrapper on top of this. The advantage is that you get exactly the same JavaScript, so the Elm conversion can’t introduce any bugs, but also can’t fix anything.
IMO pure Elm is the way to go. Often you need to build your own components build on top of the library, and having the Elm code handy makes this much more possible.
I get this point, but so much of material design is about little, stateful UI effects. I recall that the original MD ports were really hard to use because Elm imposed a lot of boilerplate on users to handle the state, and the recourse now web components felt like a good idea, although I’ve not tried the end result.
Have you been able to reduce the boilerplate burden?