Introducing "Learning Patterns": patterns.dev - a free 435+ page book on JavaScript + React design & performance patterns from @lydiahallie and I. On the web, ePub & PDF.
There's a lot here from @a_sandrina_p that shows why disabled buttons often need more than the `disabled` attribute to maximize inclusiveness. css-tricks.com/making-disable…
The <img> element now supports lazy-loading, async decoding and many other features: bit.ly/img-cwv I wrote about how to optimize UX & the Core Web Vitals with it.
Sneak Preview: JPEG XL decoding working in Chrome - 65% smaller than a JPEG at comparable quality.
JXL aims to offer better image quality at low sizes, progressive decoding, lossless JPEG recompression and more: goo.gle/jxl-cl
A few tips that improved First & Largest Contentful Paint on my site by up to 50%
🔗 Preconnect to key domains (e.g CDNs)
👕 Preload the hero image
📜 Preload critical .css & scripts
🗜 Use modern compression (Brotli)
🐢 Optimize backend lookups
Happy Halloween everyone! As promised, here is 'The Caretaker'. A no JavaScript, pure CSS horror / puzzle game. Play it here codepen.io/jcoulterdesign… on @codepen. Thanks to all the people who tested this before release. You know who you are :) Enjoy!
The time has come: we're officially announcing the deprecation of LibSass and all its wrapper interfaces, including Node Sass and SassC. We recommend all users make plans to move onto Dart Sass. sass-lang.com/blog/libsass-i…
🆕 Svelte for Sites, React for Apps.
At @chriscoyier's behest, I finally wrote down the "hot" take that has been cooking in my head all year.
dev.to/swyx/svelte-fo…
Today we celebrate @SvelteSociety's first birthday with #SvelteSummit 🏔️ and it feels like a coming of age.
Today I discovered "inputmode"! 🥳
Now we can "hint" the browser what virtual keyboard we want to show on mobile devices without forcing the browser to change the visuals of the input. (unlike with input="number" for example)