Show us the way!
It’s just you need to create an initial set of primitives such that those higher level entities can be formed as a composition of the initial set of primitives.
So maybe not even start with html. Create the set of primitives such that I can create custom tags that does exactly what html does.
Like react is the sort of a framework that allows for composition of tags. But the problem is we have too many primitives.