Web Weekly #148
- Published at
- Updated at
- Reading time
- 8min
Do you know why Node.js didn't add complete TypeScript support? Do you use the new baseline feature scrollbar-gutter
? And what's the difference between HTML attributes and DOM properties?
Turn on the Web Weekly tune and find all the answers below. Enjoy!
Antoine listens to "Furniture - Slow Motion Kisses":
I discovered this beautiful song in the closing set of a French music festival! And the clip is super cool, too!
Do you want to share your favorite song with the Web Weekly community? Hit reply; there is one more song left in the queue.
This Web Weekly is jam-packed, so I'll keep it short... 🫣
Still, I want to thank everyone who reached out last week! All the resulting conversations make this entire "newsletter project" more than worthwhile for me. 💙
But a special thanks goes to the new Web Weekly supporters Sam, Brian, Jeff, Robert, Mathias, knoefel and Ingo! Sending the over 5k emails costs me $80, and these costs are now covered by twenty people with subscriptions on Patreon or GitHub Sponsors. Thank you! 🫵
If you want to support Web Weekly on social media, reshare this edition on Linkedin, Mastodon or Bluesky.
Tired of building schedulers, calendars, and Gantt charts? Bryntum’s web component library handles the hard stuff so you can skip the debugging nightmares and deliver polished apps with amazing UX faster.
Web Weekly is open for sponsorships. When you want to reach 5k developers, you know what to do!
There's nothing to see here but a Kirby doing its thing, inhaling some juicy paragraphs.
- The W3C released Ethical Web Principles in December.
- Heydon published Principles Of Web Accessibility.
- A
<ViewTransition />
component is coming to React.
This post is one for your bookmarks: Ben shared how to use aria-label
and aria-labelledby
and explains why slapping ARIA onto generic elements like div
and span
just the solution.
Last week, Node.js v23
added support for running TypeScript files. However, the TypeScript code is neither type-checked nor compiled. The included types are simply stripped out, and the resulting JS code will be executed. But why's that, and why couldn't we just add tsc
to Node?
Of course, it's not that simple because Node.js is a massive and heavily-used project. Let me try to give you a quick tl;dr, though.
- Node prioritizes stability. Adding type checking via
tsc
could lead to unpredictable breaking changes in the Node.js version. It would make everything way more complicated. tsc
relies on atsconfig
file for type checking. Enforcing this file or shipping a default config in Node.js seems messy because it's such an individual configuration..json tsc
is simply 22MB of additional code. 🤷
If you want to read more, this post describes the decisions fantastically.
Understand technical decisions
While it looked like a Chromium-only thing, view transitions are really happening now. Safari recently shipped them, so most modern browsers can render easy-to-use eye candy. If you're still confused about view transitions, here are common misconceptions.
And if you want to see some demos, open up Chrome or Firefox; Bramus collects demos at view-transitions
.
I barely use JavaScript classes these days, so I missed this ECMAScript feature from 2022. Have you seen this "unnamed" static
block in classes before? I haven't! 😅
Wowza! Would you enjoy getting Web Weekly straight to your inbox?
Guess what you'll find at sometimesredsometimesblue
?
I really wonder how this site came to be...
Adam shared a pattern he thinks isn't used enough in the wild. And I agree because these hover effects make the web more enjoyable.
There are only a few evergreen blog posts on my blog, and "Say goodbye to resource-caching across sites and domains" is one of them. It reappears on social media at least once a month.
What's it about?
In a previous web developer life, reusing the browser cache across sites and domains was possible. jQuery, Google Fonts, or any Frontend asset could be loaded once and then served for every site.
However, this hasn't worked since 2020 anymore.
Addy also covered the topic of double-keyed caching if you want to read more about it.
As a regular Web Weekly reader, you're probably aware of most of the things Chris shares in this post about frontend features to use in 2025. Here are some of my favorites:
- the
popover
attribute - the
search
element - JS Import Maps
inert
If any of these are news to you, this post is for you!
Oldie but goldie; there's been some chatter about HTML attributes, DOM properties, and their differences. But what are the differences? Let me name a few:
HTML attributes serialize to HTML. Not all properties do.
HTML attribute values are always strings. Properties can be anything.
HTML attribute names are case-insensitive. Property names are case-sensitive.
Jake covered this topic not too long ago, and it's still the best read out there if you want to learn more!
From the unlimited MDN knowledge archive...
Do you know there's a very well-supported JavaScript animate
function? Yep, and maybe you don't need to reach for an animation library next time...
Building somewhat complex applications might require a pub/sub pattern to react to data changes. And while you could always reach for a library, what if I told you that there's a web-native solution out there?
Find more short web development learnings in my "Today I learned" section.
With the release of Safari 18.2, new scroll bar styling options made it into the baseline. scrollbar-gutter
lets you "block" space for scroll bars that could be shown when content grows to avoid layout shifts. Handy!
- chaqchase/lla – Blazing fast
ls
replacement with superpowers. - thomasschafer/scooter – Interactive find and replace in the terminal.
- zachleat/snow-fall – A web component to add snow (or emojis) to your web site.
If you're looking for a tool to create nice and custom easing functions, the Easing Wizard might be it. It's a stunningly looking site that receives bonus points for providing linear()
easing functions.
Find more single-purpose online tools on tiny-helpers.dev.
Roma shared some thoughts about publishing things online and I kept nodding along!
Don’t be afraid to publish something just because you’re afraid that someone in the past already did so.
But there is no such thing as a “too small to share”.
Maybe this post motivates you to start a blog. If it does, let me know! I'm always looking for new RSS feeds.
💙 If so, join 20 other Web Weekly readers and give back with a small monthly donation on Patreon or GitHub Sponsors.
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! 👋
Join 5.5k readers and learn something new every week with Web Weekly.