One of the key differences between even modern web SPAs and traditional desktop GUIs is that there&#x27;s no unified look, and often not even a unified feel. Actually, having something that looks exactly like something else is often seen as a detriment, just read some discussions about how &quot;bad&quot; Bootstrap is... (and if it isn&#x27;t a webview, the same is often true for Material Design)<p>So a lot of the work that traditionally went into widget&#x2F;VCLs&#x2F;etc. is immediately not necessary and probably even unwanted. You basically have to reivent large parts of the wheel anyway. The rest is often largely component-independent, mostly event handling and data binding. So a very generic component often wouldn&#x27;t help you that much, which is why a lot of the MVC libraries and frameworks available often seem to &quot;skip&quot; that part.<p>One noticeable exception is ExtJS, which seems the single remaining major toolkit aiming at desktop-like applications. There you&#x27;ve got your standard FormPanels, GridEditors and AbstractSelectionModels. There the tables turn, and HTML&#x2F;CSS is often just used as the totally abstracted away presentation layer, and you just arrange widgets in JavaScript.
That means a considerable payload, and more problems if you actually need to have something more &quot;web-like&quot; (boy, the horror of XTemplate).<p>For enterprise&#x2F;intranet apps this matters less, of course. Which is why Ext is still rather common there and why they can afford to actually demand money for their library, despite all the competition.<p>But again, you probably wouldn&#x27;t build gmail&#x2F;instagram&#x2F;facebook with Ext.