En passant, note that I witnessed the birth of ExtJS, before it became coorporate and unfortunately YUI is dead.
What has happened over the past few years was that developers decided that they partially didn't need graphic designers and use pre-written collections of HTML code (and the css that come with them). This creates stuff like Bootstrap, or its sexier sister: Google's Material Design, which was code named "Quantum Paper" to try and hide the fact that it's still the same Gutenberg paper based thinking of the past centuries applied to graphical app development.
This morning, I decided to write my own experimental UI library. So now, you are going to say "Aren't there already easy to use ones on the internet ?" Well, not like the one I want. I need something that allows me to think abstractly about the elements without ever seeing any markup. Let me give an example. We start with the most boring HTML document ever.
Which renders like this
What I want is simple. I want that when I click on the text (note that there is no visual indication that the text is clickable) it is replaced by an text input with a commit button and then when I commit, what I have written is alerted. Let's do that in two steps. First I am going to alert when I click on the text. Easily done with
Easy, simple, no fuss. (nb: I like delegate, you can use them before $(document).ready() and also on elements which haven't yet been rendered.) And now the second part....
With this, when I click on "Pascal" the page becomes
And then you enter something, click on [Done] and it is alerted.
Another non trivial characteristic of this kind of library is that you can add it to any existing project (or simple web pages) and start to use it right away. I started to write it today, so it's like 0.001% done, but if you want to see it growing up, it can be found here.
As I said, it's experimental, but I have some UI work to do today, want to focus on workflows and not representations and there is no way I am going to annoy myself and waste my time with markup, This library will grow as new features are needed (but I will never break it, and it will always be backwards compatible).
Last but not least: if anybody actually got my point and can recommend a JS Widget Library which doesn't need existing markup because the widgets generate it as part of being instantiated, and also where behaviour can be passed as parameter, please let me know...
ps: What really prompted this whole business this morning is that I will be using a lot of this... (it does _exactly_ what you think it does.)