… it doesn’t make sense to draw a line at which all work is stopped on all parts of CSS in order to declare that CSS version finished. Therefore, after CSS2.1 all the things that had been part of the 2.1 specification were broken down into modules.
It’s easy to joke “Maybe we’ll get that in CSS17!”, but that plays into the idea that CSS will be versioned (ala “ES6”), and those days area already over.
CSS3 sorta made sense. Tab Atkins said, of the split:
Some of our modules start out at level 3, if they extend something from CSS2.1.
But not all of them. Mostly, “CSS3” was just good marketing, like “HTML5” was. People really seemed to get it, but it’s not good for the language itself. As Rachel says:
The problem with monolithic specifications is that in order to finish the spec, every component part also has to be finished.
None of us want web standards to move slower. So, we version each module, and kill the monolith:
There has never been a CSS4. There will never be a CSS4. CSS4 is not a thing that exists.