I updated node-red-contrib-component-dashboard quite significantly.
Before the update, all widgets have been written with polymer 3. Since this framework is not developed any further, I have rewritten all widgets from scratch without any library (the app layout is an exception), i.e. as native web-components. This is actually one advantage of the design of this dashboard, one can mix different libraries to create web-components or not use one at all. Therefore, in the long-term, as long as Node-RED will exist, one does not have to worry about front-end libraries being deprecated.
The loading time now is very fast, since not large libraries have to be loaded (the gauge widget with justgage is the biggest part of the bundle size)
The back-end has not changed much, but was also cleaned up a bit.
Furthermore, I added a few more widgets, like the gauge and a slider.
If you have never heard of this project, the basic idea is to create a dashboard as normal HTML/CSS, but dashboard widgets are web-components, i.e. custom HTML tags, which communicate with Node-RED.
This gives you the flexibility of designing your dashboard as you want, but still being able to have an own node for each widget.
There is an update guide in the git repo if you have used the project before.
Pleas don't hesitate to answer questions, also if you are interested in creating your own widgets.
Creating widgets as native web-components is fine for simple things like buttons, if you want to do more involved things, I can recommend lit-element, which is not a framework but just a library that helps you to create web-components more easily (it handles property/attribute management and rendering). Interfacing the web-component with Node-RED is then very simple through the helper functions node-red-contrib-component-dashboard provides.
It is not yet published on npm, since I hope to get some feedback.