What Exactly is “Modern” CSS?

I was flipping through my RSS feed, noticing how many times “Modern” is popping up in post titles. I have a purdy good idea what that means, particularly when it’s describing CSS. We’ll probably get into CSS Grid, maybe adjust specificity with Cascade Layers, perhaps reach for a conditional pseudo-selector, or even play with a new colorspace. There’s so much modern CSS that there’s never been a more exciting time to be writing about it!

So, when is “modern” not so, you know, “modern” anymore? I can’t help but be a bit pendantic about these things. When the web itself is somewhat transient, it’s tough not to think about permanence and longevity. What’s the famous Billy Corgan Stevie Nicks line?

Time makes you bolder,
Even children get older,
And I’ll get older, too.

Stevie Nicks, “Landslide”

Remember when every blog post made it a point to use “CSS3” when referring to new CSS features when we got things like rounded corners and box shadows? We might enjoy a quick chuckle with those now, but they do provide a lot of context as far as when a particular post was written and what it might be about. We’re probably not getting into grid layouts as much as clearfixing floats, yeah yeah?

We don’t need to go back to that system of anything, but there’s got to be some way to refer to this specific moment in time where CSS has exploded with the richest set of features we’ve seen since… since… since… CSS3. I love that CSS specs are no longer versioned like that but we’re definitely starting to see a challenge with how we refer to releases.

Any ideas?

  • Maybe we refer to things in eras, as in Responsive Design Era, Massive JavaScript Framework Era, Jamstack Era, or whatever.
  • Maybe we make things decade-specific, as in, Whoo boy, 2020’s CSS sure did change the way we write color on the web! The web sure is old enough to count in decades.
  • Maybe we look at things as periods of time. Like Picasso has his “blue period” CSS can have its “Table-Based Layout Period” or its “Clearfix Period” or its “Intrinsic Sizing Period” or its “Logical Property Period” or its…

I’m bad at this. Naming is always hard yet it’s just something we have to do in CSS to properly select things. I think it’s time we start naming things like this, too. It’s only a matter of time before “modern” isn’t “modern” anymore.

✏️ Handwritten by Geoff Graham on October 30, 2023

13 Comments

  1. # November 3, 2023

    I only write post-modern css.

    Reply
  2. # November 3, 2023

    @geoff You should join us in the CSS-Next Community Group :) Working on exactly this https://github.com/CSS-Next/css-next/blob/main/charter.md
    css-next/charter.md at main · CSS-Next/css-next

    Reply
  3. # November 5, 2023

    What’s always bothered me is the implied judgmental tone in a lot of writing about “modern” development methods (especially when people talk about JS). The way it’s often presented, modern = good and anything old = bad.

    Reply
    • # November 5, 2023

      Excellent point! I’ve always been a fan of, “if it works, it works.” One of the things that initially drew me into front-end development is how many possible ways there to create the same thing. Code is poetic like that and dogmatic opinions water it down.

  4. Mojtaba
    # November 8, 2023

    When everything is modern, nothing is :)

    Reply
    • # November 10, 2023

      See also: When everyone is responsible for feeding the cat, no one feeds the cat. :)

  5. # February 12, 2024

    Maybe “Modern CSS” could be defined by the features that are yet to reach a certain percentage of support among all web users? When you can use something without having to worry about a polyfill it stops being modern.

    Reply

Leave a Reply

Markdown supported