Lately some of the most recurrent doubts that arise in the courses of design and web layout that we participate point to CSS4: When will CSS4 come out? What is the departure date? What new features will it incorporate? The quick response disappoints some: “there will be no CSS4.”
But with the long answer we recover the hope: there will be updates, improvements and new features for CSS, but they will not be called CSS4 and will not follow the same process as CSS1 or CSS2 versions.
The web evolves in a non-linear way and the new CSS specifications work according to this evolution, much more natural, divided by modules, where the level of each module (level 1, 2, 3, 4 or 5) does not necessarily corresponds to the CSS version where they were included for the first time, but responds to a control of levels of their own. Let’s look at this in more detail.
CSS1 and CSS2: complete document
The first versions of CSS were included in a specification in the form of a single document. This means that the entire specification (although divided by sections) came into consideration, revision or recommendation at the same time, in a monolithic way.
Therefore, the document did not come out until all the features were ready. If there was something that was delayed, the implementation of all the functionalities was delayed.
For example, in CSS1, the
background-color property goes with
padding, as although they have little to do with it, both are part of the same document and its implementation is coeval.
The same happens with CSS2 and CSS2.1, a single document with all the news in the form of a complete and closed update. The implementation times are extended. Everything has to be ready for these versions to come out.
However, as we have said, the web evolves non-linearly. The browsers are updated following their own work cycles, adding those characteristics that they think are more convenient or urgent.
CSS3: the change to modularization
But with CSS3 the way of working changes. Instead of a single document, each group of homogeneous characteristics is divided into independent modules, so that their implementation is easier and they can evolve and be updated separately.
CSS4: the next non-CSS version
From here, with all the specification divided, each module evolves independently. The timeline is blurred and it will not be possible to establish a common date for all the modules, since there are already some that are published and others that have not yet been started.
This together with the different possible phases of each document (Working Draft, Candidate Recommendation…) makes the evolution of each module independent and more in line with the evolution of the web.
However, it seems that we could still identify common steps to all the modules (everything that takes level 3 would be CSS3, and level 4 could refer to CSS4.) However, this is not the case, because we will also have new modules, which will start with their own version and level control. The clearest example is CSS Grid (In Spanish), the new module for creating grid-based layouts starts with level 1, which is already Candidate Recommendation and has already been upgraded to level 2 in Working Draft.
Does it mean that CSS Grid is CSS1? Clearly not. It is a module whose current own level is 1, but which is not part, like the rest of the modules, of any single document.
Conclusion: There will be no CSS4 but updates
The CSS Grid example is perhaps the most illustrative of how the future of upcoming CSS features and updates will be. Working in modules is always a good idea, it allows you to play with different cycles and working speeds depending on the level of use or difficulty of implementing one or another feature by browsers.
If you are interested in knowing some of the characteristics of the new levels, I recommend you take a look at this article in Spanish on forms or this about reading time with CSS (In Spanish). You will see the things that we can do with CSS.