http://maquettejs.org https://github.com/nextorigin/gulp-pug-hyperscript
For a small framework, I've been using SpineJS for years. https://github.com/spine/spine/
Example with Maquette:
https://github.com/nextorigin/maquette-mapper
Using focused, quality components has let me upgrade my stack piece by piece over the years while retaining backwards compatibility.