Published at
Updated at
Reading time
9min
The Web Weekly newsletter keeps you up to date, teaches you web development tricks and covers all things working in tech.

Frohes Neues! 👋

Do you wonder what the final masonry CSS syntax will look like? Do you use the dialog element to its fullest potential? And are you excited about CSS @scope entering baseline?

Turn on the Web Weekly tune and find some answers below. Enjoy!

Mohamed listens to LAW NASYANY and says:

I listen to this song as it has a great soundtrack that makes you move your body without noticing it.

Do you want to share your favorite song with the Web Weekly community? Hit reply; there are six more songs left in the queue.

I've mentioned a couple of times last year that a Web Weekly redesign is in the making. It only took me a year on and off to start from scratch and finally have a landing page suitable for a Frontend newsletter. And here it is!

Web Weekly landing page with the usual character and big and bold headlines.

It ships with view transitions, container queries, popover, @starting-style, light-dark() and many other new'ish Frontend things I share here in the newsletter. I'm no designer, but I must say I'm very pleased with the new look.

For the RSS folks: there are now also two new RSS feeds. One for the actual newsletter and one for quick links. Check them out!

A special shoutout goes to all the people who participated in the new "wall of love" aka the testimonials section. Thank you Louis, Eva, Wojtek, Chris, Josefine, Khaled, Max, Carlos, Jeremias, Paul, Olivier, Sébastien, Michiel, Dominic, Kristina, Dominik, Johann, Jay, Henry, Gustavo, Owen, Eric, Attila, Martin, Marcel, Gabriel, Emre, Károly, George, Thomas, Matthias, Ivan, Oliver, Tino, Barry, Tim, Stefano, Ekrem, Simon, Schalk, Andy, Patrick, Bart, Mirko, Kilian, Matt, Øystein, Paul, Den, Craig, Sachin, Andreas, Torsten, Lars, Bramus, Craig, Amr, Christian, Mohamed, Anselm. You all rock!

If you want to tell your friends about Web Weekly, want to give a testimonial yourself, or have any feedback on the new site, let me know. I'm all ears!

And another huge thank you and massive bag of karma points goes to Jens and Boris this week. Thank you both for covering a small fraction of the cost it takes to send Web Weekly every week! ❤️

If you enjoy Web Weekly, too, join 32 supporters and support indie publishing on Patreon or GitHub Sponsors. It really makes a difference for me!

Something that made me smile this week

Mac OS popup dialog representing writing direction and "default", "right to left" and "left to right" all have the same icon.

Picking icons is tough because they should look good, blend in nicely, convey meaning... and then there's also the question of whether and when you should use icons in the first place.

Tonsky's post is a long rant on the new macOS Tahoe icons and I understand that design for an operating system is challenging and that there are always trade-offs to be made, but this icon macOS dialog (👆) made me laugh out loud.

This UI and icon madness can't be true, or can it?

Be speechless

No code

And a special somewhat "no code" highlight: it's wild that posts like Your job is to deliver code you have proven to work need to be written today but yet here we are. I published my thoughts and commentary about this post on the blog, too.

Attention to detail when building UI components

Preview of the sonner toast component which nicely stacks when there are multiple toasts.

Emil shared all the considerations going into his Sonner toast library and let me tell you that's some quality work. I love it!

Consider the details

However, keep in mind that toasts come with serious accessibility and UX issues and that there are better ways to give updates.

There's a new caching header in town

URLs with different query params and the subline "Can I cache these URLs as one entry or are they all different?"

Caching was and is one of those web dev things that are hard to get right. Especially when it comes to URL caching, things get messy very quickly because the web is full of random query parameters. How can you tell browsers and CDNs that random utm parameters don't matter and that the cached HTML is fine?

There's a new header in town (No-Vary-Search) and Barry explains why it'll be a big deal. It's Chrome-only for now but "should" be safe to use already.

Cache all the things

Side note: this year's Web Performance Calendar was outstanding! Every other post was a banger and I'll definitely plug more posts in the upcoming weeks.

Control the breaks

anti­dis­establishmen­taria­nism

I absolutely loved this post! If you don't know about the wbr element or the ­ character, you should definitely check it out!

Break the words

The fight over masonry is over?

.container {   display: grid-lanes;   grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));   gap: 16px; }

There were many discussions about how and if masonry layouts should come to CSS last year. And it seems the CSS Working Group came to a conclusion? At least, it sounds like it in the Safari release post. We can all now wait for display: grid-lanes to hit a stable browser release or play with Safari's Tech Preview.

Lay things out

You're halfway through!

Wowza! Would you enjoy getting Web Weekly straight to your inbox?

The wonderful weird web – Typatone

A mobile keyboard next to written text.

If you're a music nerd, you're going to love this. Typatone transforms your written words into looped tracks. Can you make a song using it? If so, I'd love to hear it!

Type a tone

TIL - Node can load .env files

Screenshot 2026-01-06 at 16.22.56import { loadEnvFile } from 'node:process';  // load .env file with default path ('./.env') loadEnvFile(); // load .env file with a custom path loadEnvFile('../../.env');

Every single project I've worked on included the dotenv dependency to load .env files in development. This week I learned that Node.js has had this functionality built-in and marked as stable since v24.

Remove a dependency

Discover dialog

document.querySelector("dialog").close(); // or document.querySelector("dialog").requestClose();

If you haven't used the dialog element yet or didn't keep up with the latest feature additions (closedBy or requestClose), Sara summarized what you need to know in one piece!

Have a dialog

CSS Wrapped 2025

Screenshot 2026-01-06 at 19.01.54d 2025

Be warned that many CSS features highlighted in this year's CSS wrapped aren't ready for prime time yet because they're Chrome-only, but the site is stunning work and I can't imagine all the work that has gone into building it!

I'll cover most of the new CSS features once they're coming closer to cross-browser support here, but if you're curious about all the countless things coming to CSS, this "short" summary worth a read.

Wrap it up!

However, if things aren't mission critical and you're cool with partial browser support, knock yourself out! I, for example, took Una's snippet to automatically hide/show my fixed headers on scroll and it's already deployed on the new Web Weekly site (only visible in Chrome Canary).

The outline algorithm is officially gone

@namespace url(http://www.w3.org/1999/xhtml);  x h1 { margin-block-start: 0.83em; margin-block-end: 0.83em; font-size: 1.50em; } x x h1 { margin-block-start: 1.00em; margin-block-end: 1.00em; font-size: 1.17em; }

Have you seen this CSS monstrosity before? These user-agent styles are the leftovers of the document outline algorithm that (unfortunately) never went anywhere. If you want to learn more about it, Martin shares all the details.

Understand the outline

Random MDN – document.images

for (const image of document.images) {   if (image.src === "banner.gif") {     console.log("Found the banner");   } }

From the unlimited MDN knowledge archive...

Here's some DOM trivia; did you know that you can access loaded images via document.images? Well, now you do...

Inspect the images

TIL recap – visibility surprises

<!-- Hide the button but still show the span --> <button type="button">   <span>Do something</span> </button>

What happens if you nest elements with different CSS visibility? Can elements be visible while being inside elements with visibility: hidden;? Yes, they can.

I think this is terribly confusing and you can learn more about it on the blog.

Be confused

Find more short web development learnings in my "Today I learned" section.

New on baseline - @scope

<main>   <style> @scope { /* Scope root */ :scope { /* Selects the <main> */ /* <header>/<footer> within scope root */ header, footer { background: rgb(from green r g b / 30%); } } } </style> </main>

With Firefox 146 (released Dec 9), @scope made it into baseline. It's a very complex topic and I can't say I totally get it all, but I'm extremely excited about the ability to use inline style elements to scope component styles (👆).

Daniel gives a good overview of what you need to know.

Scope your styles

Three valuable projects to have a look at

A new Tiny Helper

A dithered image of a knight.

I just realized that I'm super into dithered images and I might check if I can bring them into the new Web Weekly site somehow. With this week's helper, you can create these image effects without opening Photoshop or the like.

Make your images fancy

Find more single-purpose online tools on tiny-helpers.dev.

Thought of the week

I'm more of an AI skeptic because I value human work. I value people who put in the work. And I'm worried. Scratch that, I'm scared. Wherever we're heading and whatever "AI" will mean for us, our jobs, or the world, I'm terrified. And I keep thinking about the well-phrased points Josh makes on his blog.

Today's AI excitement is a matter of privilege.

AI optimism requires you to see yourself and your loved ones as safe from AI.

Did you learn something from this issue?

❤️ If so, join 32 other Web Weekly supporters and give back with a small monthly donation on Patreon or GitHub Sponsors.

This is all, friends!

Loved this email? Hated this email? I want to hear about it!

If you think something needs improvement or something sparked some joy, reply to this email because I want to know more!

And with that, take care of yourself - mentally, physically, and emotionally.

I'll see you next week! 👋

If you enjoyed this article...

Join 6.3k readers and learn something new every week with Web Weekly.

Web Weekly — Your friendly Web Dev newsletter
Reply to this post and share your thoughts via good old email.
Stefan standing in the park in front of a green background

About Stefan Judis

Frontend nerd with over ten years of experience, freelance dev, "Today I Learned" blogger, conference speaker, and Open Source maintainer.

Related Topics

Related Articles