🤓 Your usual editor Chris is away enjoying the Caribbean heat this week, so I, the editor of JavaScript Weekly, get to step in and nerd things up a bit! I always love catching up with things browser-side, let's see how it goes!
__
Peter Cooper, your temporary editor

Together with  Frontend Masters logo
🚀 Frontend Focus

#​680 — February 19, 2025 | Read on the web

Launching Interop 2025 — This year’s Interop project (an ongoing cross-browser effort to increase interoperability of key web platform features) features 19 focus areas including CSS anchor positioning, Core Web Vitals, the View Transition API, and WebAssembly. You can see the full list, with explanations, in the Interop repo and monitor progress on this dashboard. The WebKit team has shared a blog post going into even more depth and the Microsoft Edge team gives its take too.

James Graham

Write CSS Like a Pro — Kevin Powell shares how to create a responsive website from scratch using modern CSS features (such as nesting, utility classes, custom properties, and more). This detailed video course also dives into adding additional polish via animations, view transitions, and more.

Frontend Masters sponsor

Three Approaches to the & Selector in CSS — The & selector in vanilla CSS, now supported via CSS Nesting, allows nesting styles within a parent selector without needing preprocessors like Sass. Here’s a look at some of the nuances behind its use.

Preethi Sam

⚡️ IN BRIEF

📙 Articles, Opinions & Tutorials

Learning How to Build Modern Web Extensions — It’s easy to run into outdated docs when building extensions. Lucky for us, Hui has been through the process recently and shares some tips.

Hui Jing

Testing 10 JavaScript Frameworks on Their HTML Defaults — Using a JavaScript framework is now ‘the way’ for many Web site developers, but how do the popular options fare at producing valid, error free HTML?

Jens Oliver Meiert

Protect Against Bots, Fraud, and Abuse in Real Time — WorkOS Radar protects your app with advanced device fingerprinting — stop fake signups, free tier abuse, bot attacks and brute force attempts today.

WorkOS sponsor

Decoding CSS Selectors: :has(:not) vs :not(:has) — When you combine CSS functions, the nesting matters - a lot.

Polypane

Using the step and pattern Attributes to Make Number Inputs More Useful
Cassidy Williams

Using Intl.DurationFormat for Localized Durations
Raymond Camden

Understanding the Tradeoffs of Using Tailwind CSS
Scott Boyle

The attr() Function in CSS Now Supports Types
Amit Merchant

How I Migrated from WordPress to Astro
That LadyDev

🧰 Tools, Code & Resources

StyleObserver: A Library to Observe CSS Property Changes — An exhaustively tested JS library from Lea Verou, designed to observe any changes to CSS properties, and deftly deflecting a mass of relevant browser bugs along the way. Project homepage.

Lea Verou

Run GitHub Actions Up to 2x Faster at Half the Cost — Blacksmith runs GitHub Actions up to 2x faster at half the cost. Trusted by 250+ companies like Ashby and Clerk.

Blacksmith sponsor

LaLoka Layouts: 30+ Useful Components Built with Tailwind — Includes components not normally included in these types of component sets. For example, various fixed position elements, input add-ons, along with standard options like avatars and cards.

LaLoka Labs

Heat.js: A Heat Map Visualization Library — Think like the GitHub contributions heat map. No dependencies, small, responsive, and themeable. There’s a live demo or its GitHub repo.

William Troup

scroll-snap 5.0: A Customizable Scroll Snap Implementation — Uses requestAnimationFrame() for 60fps scrolling performance and doesn’t have any dependencies. Try it here.

Luca Falasco

tailwind-merge 3.0: Efficiently Merge Tailwind CSS Classes without Conflicts — Provides a way to merge Tailwind CSS classes from JavaScript without style conflicts. v3.0 is notably Tailwind CSS v4 only so don’t upgrade if you haven’t upgraded Tailwind CSS first.

Dany Castillo

dash.js 5.0: JS Implementation of MPEG DASH Playback for Browsers — A reference client implementation for the playback of MPEG DASH (Dynamic Adaptive Streaming over HTTP) via JavaScript in browser based environments that support the Media Source Extensions. GitHub repo.

Dash Industry Forum

ts-audio: Simple API for AudioContext and Playing Audio Playlists — Here’s a demo.

Evandro Leopoldino Gonçalves

📰 Classifieds

Choosing the wrong PDF SDK will slow you down. Bugs, missing features, and poor support cost months of dev time. Try out Nutrient’s PDF SDK in your environment and compare. Trusted by 10k+ developers.


Design Meets Development: Amir Shalev shares his unique journey bridging the gap and seamlessly collaborating with developers using Bit.

🔎 A focus on WebGL and shaders

  • We've spotted a handful of great WebGL and GLSL articles, tutorials and demos over the past few weeks. So, if you've ever been wowed by some striking visual effects or 3D experiences on the Web, this section is for you:

How to Set WebGL Shader Colors with CSS and JavaScript — Nicolas shares how we can use CSS (and some JS) to control WebGL shader colours in real-time via the canvas element.
Nicolas Mattia Tutorial

VFX-JS: A JavaScript Library to Add WebGL-Powered Effects to Websites — Allows you to easily add effects to regular image, video, and even div elements by means of a set of components exposed by the API.
Jun Yuri Library

Particular Drift — A neat browser-based tool for turning images into flowing particle animations. The end result is rather awesome.
collidingScopes Demo

ThreePipe: 3D on the Web Made Easy — A layer that sits atop Three.js for making it even easier to create 3D web experiences and work with 3D scenes and objects. Tons of examples.
Repalash Library

How to Create a WebGL Rotating Image Gallery using OGL and GLSL Shaders
Oluwaseyi Oluwadare Tutorial

Tip: If you're into the more visually striking side of Web design, Codrops is worth following generally – they've had a fantastic run of GLSL/shader, Three.js, and similar content recently.

Ipx.