CodeinWP CodeinWP

CSS4 is a Bad Idea

Over on CSS-Tricks, Chris breaks down what some in the industry have said on the possibility that there will one day be a CSS4. The latest article that Chris references is one by a well-respected member of the community, Peter-Paul Koch (“PPK”).

In brief, PPK believes in initiating some sort of marketing gimmick wherein we basically try to repeat the success of the buzz surrounding “CSS3” by pushing the name “CSS4”.

Chris agrees:

I think he’s probably right. If we all got together on it, it could have a similar good-for-everybody bang the way CSS3 did.

I love Chris but I have to strongly disagree on this one!

The reason “CSS3” worked is because it was real. It was the successor to “CSS2.1”. Everything after CSS2.1 was considered to be under the umbrella of “CSS3”, and the things it included were really cool (as he points out in his post).

So although you can’t find a specific spec document that’s called “CSS3” like you can CSS2, CSS3 was still a sensible version of the language that had boundaries of what was in it and what wasn’t. And it was great for the industry that we had that little marketing boom.

But there’s no real way for us to do that with some imaginary “CSS4”. PPK is way off base on this one and I almost think he’s trolling us by recommending that. Whatever we try to push using the term “CSS4” will be fleeting and pointless and won’t do anything to contribute to the industry like PPK thinks. The irony is that the very fact that PPK is recommending this makes this a bad idea! It’s like a reverse-Streisand effect or something.

In his article PPK says:

I think that announcing a new CSS version will bring desperately-needed attention to CSS.

This is silly. CSS has the exact amount of attention it needs. It solves very specific problems and it does it well. Developers are excited about things that are really powerful. Like React, and Vue, and webpack, and Web Components, and CSS-in-JS libraries, and PWAs, and the list goes on. As for those that PPK refers to as the “torso” or “longtail” (the not-so-in-the-know developers), they too get excited about the tools I mentioned above – as long as those tools are marketed in a way that’s palatable to them.

PPK also says:

Web developers are profoundly influenced by the cult of the new.

Agreed. See the tools I mentioned in the previous paragraph. A superficial CSS4 isn’t going to excite anyone; we are in the midst of a whole new era of web development now and we already have many reasons to be excited about the industry. CSS4 won’t do anything to contribute to that.

Modules are the Better Way

I think the way this has been done post-CSS3 is much more effective than how it was done before. Previously we were wondering “Does this browser support CSS3?” which is a ridiculous question today and was a ridiculous question then too. In his post, Chris tries to determine what should fall under “CSS4” and he can’t really do it, so that poses another obstacle in this. But with the module system, we can break things down and it makes sense when we say “Does this browser support Selectors Level 4?” or “Does this browser support Grid Layout?”

All this being said, if the W3C wants to start dividing a group of CSS modules into something officially referred to as “CSS4”, then they can try it out. But I don’t believe it will have the same effect that CSS3 had. The marketing around CSS3 evolved naturally. Any attempt to recreate that is just living in the past.

We’re much better off with a fragmented language of separate modules. When you think about it, the marketing pushes that have occurred around features like Flexbox and Grid Layout have been just as valuable as the overall marketing that took place for CSS3 before Flexbox was even a thing. And again, those marketing pushes happened naturally – nobody forced them on the industry. They were just the byproduct of an exciting new thing in web development – just like CSS3 was!

PPK further states:

When considering the pros and cons of CSS4, don’t reason from your own experience. Please put yourself in the shoes of someone whose time is limited, or who has never learned to pay a lot of attention to technical evangelisation. Will they be helped?

CSS4 is not going to improve tech evangelization. We already have effective tech evangelization when we push individual modules like Flexbox, Grid Layout, Selectors Level 4, and so on. What PPK is wishing for is already happening and it’s occurring in a more effective way than it would with “CSS4”.

So let’s keep doing what we’re doing and not try to force the industry to relive the past using a present superficiality. CSS4 isn’t a thing and shouldn’t ever be a thing. And it would be silly for us to try to push it as if it was.

9 Responses

  1. Chris responded briefly to my article::

    When an idea takes hold, basis in truth or not, it has tremendous power and money follows. See: politics and pet rocks.

    And that’s yet another reason why we shouldn’t promote “CSS4”. We shouldn’t stoop to that level. Let the marketing happen naturally, let the discourse be organic. Organic marketing, not forced phony marketing, is what led to the popularity of CSS3 in the first place!

  2. Frank(ly) just another dude says:

    My opinion? Just this:

    Stop labeling the toolbox! – No one really cares about the label anyways

    Just keep on improving the tools in it, adding new tools to it and throw out the obsolete junk in there!

    You know – the good old “keep calm and…”

    • Yes.

      Just call it CSS not CSS3.

      Also HTML not HTML5.

      • Jack says:

        I have to agree. Versioning here causes all sorts of headaches elsewhere.

        OP speaks of the long tail Dev. That Dev doesn’t need another jargon word coming from clueless managers or sales people telling them that this project needs CSS4 when the project in question actually doesn’t. Similarly, that long tail Dev doesn’t need to have to fight with HR hacks who want 10 years experience with CSS4 when it has only been around for a year but they don’t understand that.

  3. I agree with you that the particular name “CSS4” is meaningless. However, people repeatedly keep expressing the need in a clear way to differentiate the “old CSS” from “modern CSS” from “experimental future CSS”, and neither calling everything “just CSS” nor referring to modules individually seems to satisfy this need enough.

    There are just too many modules, especially for people who only starts learning CSS. There are modules of different levels, but in the same status, last updated in the same day (like CSS Cascade 3 and 4). There are modules that have been in CR status for years but then were reverted to WD due to some minor clarifications, despite being well-supported in browsers (like CSS Multicol 1). There are modules describing old stuff, like CSS Tables 3, but still in the early WD phase. It’s too hard to find out which one is closer to “actual standard” and what to compare the actual browsers behavior with.

    Regarding the “Does this browser support Selectors Level 4?” question, it also not always as helpful as we hope. For most modern browsers, the answer would be “yes, and no”: no browser still supports the :has() pseudo-class, but nearly all of them support e.g. :focus-within. Waiting for the whole module to become supported might keep devs back from using useful stuff available today.

    But since 2007, there is a real thing that is successor to CSS2.1, has a short and clear URL, and contains the section literally called “CSS – the Official Definition”. It’s the so called “CSS Snapshot” (, updated every year or two and labeled after the publication year. The latest snapshot is CSS-2018. It’s the 5th update since CSS2.1 (so, if CSS definitions were named after edition number, like EcmaScript editions prior to ES6/ES2015, we could call it “CSS7”!). It lists all the spec modules (and even sections, not superseded with something newer yet) that form “the modern CSS” as for the given year, and also the things that are widely in use and thus can be considered “nearly ready” despite their spec has not reached the enough maturity level.

    Unfortunately, these documents are more focused on implementors, not web authors. But I believe that web authors also deserve an entry point to the world of the CSS specs like this. There is a proposal to make the upcoming CSS-2020 spec something like this, and I deeply believe that it’s a good idea:)

  4. Alejandro says:

    Guys, you don’t get it, it is CSS4rever!

  5. Comment from Johan Ronsse:

    As a teacher of sorts, I for one don’t want to explain the difference between CSS3 and CSS4 to junior web devs. There is simply no point. CSS is just CSS. We should be happy that it’s stable. We should be happy that we dropped the 3.

    What would one hope to achieve with marketing and putting attention on something? Especially when from the start it’s clear that the marketing is insincere…

  6. John Campbell says:

    I’d be happy with a CSS4 if it were like SCSS. That would be awesome.

Leave a Reply

Comment Rules: Please use a real name or alias. Keywords are not allowed in the "name" field and deep URLs are not allowed in the "Website" field. If you use keywords or deep URLs, your comment or URL will be removed. No foul language, please. Thank you for cooperating.

Markdown in use! Use `backticks` for inline code snippets and triple backticks at start and end for code blocks. You can also indent a code block four spaces. And no need to escape HTML, just type it correctly but make sure it's inside code delimeters (backticks or triple backticks).