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.

Guten Tag! Guten Tag! ๐Ÿ‘‹

Do you know about the new cookieStore browser API? Do you get the most out of Chrome DevTools? And have you built custom layouts with CSS subgrid already?

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

Brandi listens to "River Whyless "Michigan Cherry"" and says:

This song is the most beautiful song I've heard in some years, and it's good for doing design and coding, too.

Do you want to share your favorite song with the Web Weekly community? Hit reply; there is only one more song left in the queue.

I don't have the time for a longer deep-dive intro today... So, let's open this week's newsletter with me saying that I appreciate you for reading Web Weekly. Thank you for following along.

And if you enjoy Web Weekly, share it with your friends and family.

A quick "repost" really helps my tiny indie newsletter reach more people.

Something that made me smile this week

รŸh stefanju@barnard.uberspace.de

Do you know what's going on there? ๐Ÿ‘†

Here's a little party trick: in German we have this strange letter รŸ. The "Eszett" is a combination of an S and a Z, most of the time it sounds like an SS, though. Things are complicated and many Germans get it wrong. Things are so complicated that ssh works with รŸ, too.

No code

Toasts and their poor accessibility (again)

Can you make toast messages accessible?

Two weeks ago, I shared how GitHub decided to remove Toast messages from their UI because they don't provide good UX or accessibility. Of course, people have feelings about this. Adam shared why GitHub is on the right track by countering common pro-toast arguments.

Build good stuff

navigator.install()

<button-install>   <button>Install the app</button> </button-install>

The Edge team is trying out a new web feature in origin trial: the Web Install API. This proposal is pretty exciting to push PWAs forward because installing web apps still isn't as obvious or accessible as it could be.

Jeremy dreams of a native HTML solution, and you know that I'm already a fan!

Install all the sites

Chrome fixes a tiny but evergreen scroll issue

Chrome 144 features a small change to overscroll-behavior: it now also works on non-scrollable scroll containers. It fixes an issue developers have been dealing with for ages: prevent a page from scrolling while a (modal) "dialog" is open.

Do you know the problem of open modals that still scroll the underlying body? To prevent the scrolling, we all needed to fiddle with the body height. Not great. Chrome fixes this behavior now. Hallelujah! It's a tiny change but I can't wait for this to land!

Prevent scroll

Improve your JS debugging game

Chrome DevTools with the label "Jumped to start of the function after restarting frame"

If you're a console.log kinda person (who isn't?), you should check out this post explaining how to get the most out of your Chrome DevTools debugging session. The watch pane is so underrated and I didn't know about the restarting frame feature.

Debug

You're halfway through!

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

The wonderful weird web โ€“ shoulditakeajacket.com

Should I bring a jacket?

You know I'm a sucker for single-purpose domains...

Dress up

TS: Discriminated unions explained

type UserSelectProps = {    onChange:      | ((value: string | null) => void)      | ((value: string) => void)    value: string | null    clearable?: boolean | undefined  }

While I'm fairly confident with TypeScript these days, the TS lingo still doesn't feel natural. I mean, I can't do anything with "just use a discriminated union" without looking things up. Dominik does a good job explaining the term if you're in the same boat.

Get into all the types

TS: satisfies explained

const   person = {     name: "Jerred",     isCool: true, } satisfies   Person;  coolPeopleOnly(  person);

And to stay on the TypeScript train, if you haven't used the satisfies keyword, Jerred explains when and how to use it.

Satisfy!

Magical CSS arrows

CSS arrow reacting to writing-mode and direction

Do you remember the time when we used different border widths to generate CSS triangles? Check this out. Temani uses the new corner-shape CSS property (still Chromium-only, though) to create entire arrows in CSS!

Point at things!

Why you should start using subgrid

CSS grid layout with highlighted columns showing the column distribution.

Josh published another in-depth guide on CSS subgrid and, as always, it's full of demos and cute examples. Have a look, it's worth it.

Share the layout

Random MDN โ€“ userActivation

if (navigator.userActivation.isActive) {   // proceed to request playing media, for example }

From the unlimited MDN knowledge archive...

Did you know that there's a JavaScript API to check if a person is interacting with a site? Now you do!

Activate

TIL recap โ€“ Shorter CSS gradients

Two CSS gradients with hard color steps. Both use a `0` to avoid value duplication.

Here's a little magic trick if you're dealing with CSS gradients with hard color stops.

Tidy up

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

New'ish on the baseline โ€” cookieStore

Group 711await cookieStore.set({   name: 'my-cookie',   value: `sup?`,   expires: Date.now() + 24 * 60 * 60 * 1000 })

I was dealing with client-side cookies the other day and, of course, I used document.cookie. And man, this API is quite something. But then I remembered that cookieStore is a thing today and it makes cookie handling way easier!

It's also cool that cookieStore emits change events. Not sure, if I ever needed to listen for cookie changes, but hey, it's great to have it!

Bake with style

Quick AI side note: I asked Opus 4.5 how to set cookies and of course it also recommended using document.cookie. After nudging it a little, it knew about cookieStore but, of course, recommends the things which are most present in the training data. And that's why it's important to stay up-to-date. LLMs will probably don't give you the most modern solutions.

Level up, learn and support the Web Weekly friends

Do you remember when CSS-Tricks was bought by Digital Ocean and disappeared? To be honest, I'm still bitter about it but luckily other folks stepped up! Today, I'm a regular visitor of the Piccalilli blog. Andy and Set.Studio publish Frontend resources from the community for the community. All free. โค๏ธ

Unfortunately, Andy shared that it's been a tough year and it honestly breaks my heart. So, what can we do?

Piccalilli published three courses last year.

Three courses: mindful design, complete CSS and JavaScript for Everyone.

The courses cover design, CSS and JavaScript. Knowing the Piccalilli quality, I'm sure the courses are high-class, too. And the best thing: the courses are discounted right now!

So regardless of whether you're looking for a Christmas present for your nerd friends, have some education budget left or simply want to support indie publishing, buying one of these courses is a no-brainer!

Three valuable projects to have a look at

A new Tiny Helper

FileMock Video File Generator UI to create video files with a certain size and length

FileMock is super niche but if you're building products that consume audio, video or document files, you'll appreciate it because how else would you generate and test huge mp3, mp4 or pdfs?

Generate

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

Thought of the week

So much this. ๐Ÿ‘‡

It seems so rude and careless to make me, a person with thoughts, ideas, humor, contradictions and life experience to read something spit out by the equivalent of a lexical bingo machine because you were too lazy to write it yourself.

Did you learn something from this issue?

โค๏ธ If so, join 30 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.2k 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