A Look Ahead in CSS: Using @media (scripting) for Graceful Degradation

Jude Wei
2 min readNov 25, 2023

--

CSS has always been a cornerstone of web design, and now it’s pushing the boundaries further with the introduction of @media (scripting). This new feature is a game-changer for developers, allowing them to tailor their designs based on the availability of JavaScript in the user’s environment.

Feature Overview

@media (scripting) is a newly released media query feature in CSS3. It gives developers the power to apply different styles depending on the support for client-side scripting, such as JavaScript, in the user's browser.

This feature primarily includes three values:

  • none indicates that scripting is not supported.
  • initial-only suggests that scripts run only at the page load time.
  • enabled means that scripting is fully available and operational.

Where to Use

  • Web Pages with Disabled Scripts: Provide alternative styles for users who disable JavaScript due to assistive technologies or security settings.
  • Progressive Enhancement and Graceful Degradation: Style degradation for browsers that do not support scripts.
  • Ad and Tracking Blockers: Provide content and layouts that do not rely on scripts for users who use ad blockers.

Using Examples

Consider a dynamic content loading area that relies on JavaScript. In an environment where scripting is not supported, we can use @media (scripting: none) to provide an alternative static content display or a friendly message. Here's a code example:

.dynamic-content {
color: blue;
/* other styles */
}

@media (scripting: none) {
.dynamic-content {
color: gray;
text-decoration: line-through;
/* other alternative styles */
}
}

Conclusion

Compatibility, you ask? Ah, let’s just say it’s a topic for another day, lol…

To learn more about me and discover additional insights on web development, cloud computing, and serverless architectures, visit https://weijunext.com. You can also explore my Medium articles by visiting https://medium.com/@weijunext for more in-depth content or connect with me on Twitter @ https://twitter.com/weijunext

--

--

Jude Wei
Jude Wei

Written by Jude Wei

Full-stack developer, sharing Next.js and Node.js knowledge. My twitter: @judewei_dev

No responses yet