5 reasons why people aren't using new CSS features

Posted on April 10, 2020

feature-image.png

Although new CSS features and properties are developed and released every year, web developers rarely learn them or use them in their projects.

This is an issue because the CSS Working Group — the team of developers who maintain and improve CSS specs — measures success by looking at the adoption rate of those new features.

This is a chicken-and-egg problem. If the community doesn’t adopt and implement new features, the working group won’t bother maintaining them. On the other hand, if the working group doesn’t work to improve features, users likely won’t adopt them.

But if we can all agree that it’s important to update your JavaScript and React code, why do we tend to think it’s not worth the effort to update CSS? Let’s explore some possible reasons why people aren’t using new CSS features in 2020.

1. There’s a cost to implement new CSS features

In any project, the budget influences what is prioritized during development. Implementing CSS features costs developers time, which impacts the project owner’s bottom line. Your client may deem your time better spent optimizing other features.

You could attempt to find workarounds for features that aren’t supported by the browser, but unlike JavaScript, which uses Babel to do exactly that, CSS affords you no such luxury.

2. CSS needs to be lean, and it’s not a priority

A new project may have just a few CSS rules here and there. But as it develops and expands, your small CSS rules can quickly become a tangled spaghetti monster. CSS needs to be lean and easy to understand, so it’s usually better to go with stable features that are already production-ready.

Most websites don’t even bother with CSS in the early stages because they can just use Bootstrap and call it a day. Only after it gains some traction will stakeholders consider developing a more tailored style that’s consistent with their branding. Even then, there are often more pressing tasks than upgrading CSS.

3. If it ain’t broke, why fix it?

The primary goal of writing CSS is to describe the presentation of your website, rendering it aesthetically pleasing and easy to understand. CSS helps developers achieve that goal by manipulating two things: layout and design. Layout describes columns and rows, while design refers to colors, fonts, spacings, animations, and borders.

I think we can all agree that the current state of CSS handles these well enough. Sure, some parts could be better optimized. But there are only so many hours in a day. When you do have spare time, how likely are you to focus on optimizing CSS instead other things? As long as it’s not broken, why fix it?

4. Keeping up with CSS is hard

React and Vue have regular community conferences. Even JavaScript holds a conference once in a while. But what about CSS? How do you keep up with its development and stay in the loop about new features?

CSS doesn’t have versioning, and it doesn’t need it. Without conferences, there’s no excitement. People simply don’t pay much attention to the development of the tech they use. We’re all too busy building apps for our clients. The only way to keep up with CSS is to read the documentation. But why bother when old technology will suffice?

Unlike frameworks and programming languages, CSS doesn’t have patches for security issues. As for the design itself, most clients only care that their website looks exactly how they imagined it. There’s just not enough incentive for developers to keep up with CSS.

5. CSS is not an attractive investment

Let’s say you did the hard work of mastering new CSS features. How do you show that to potential clients or employers? You can’t put “CSS beyond CSS3” on your resume. CSS3 was a great success in the world of CSS development because it compelled:

  • Browser vendors to implement new CSS support
  • Developers to upgrade their skills
  • Business leaders to update their tech stack

With huge demand comes great opportunity. Books, courses, and tutorial videos were released to help people learn about CSS3. Then there are layout models like Flexbox and Grid, though they are not part of CSS3.

Some developers advocate for putting all new CSS features under the banner CSS4. But then how do we define CSS4? What modules do we include or exclude? If it doesn’t introduce any drastic changes from CSS3, will the community even adopt it? Wouldn’t it be better for developers to spend their time on other things that are more visible and easier to market?

Conclusion

It’s hard for anyone to say how these issues can be resolved. Unlike frameworks and languages, which have a timely release date, CSS just rolls out new features into the wild and waits to see whether browser vendors, developers, and business leaders pick them up.

If you’re interested in diving deeper, the CSS Working Group is facilitating a lengthy conversation on GitHub to define what CSS4 is and how it might help push people to use new CSS features.

You can share this post with a friend:

WhatsAppLinkedInReddit