🔥 In my projects, I use a handful of “hidden gem” NPM packages. These club-ready bangers have really helped me out, but aren't super well-known. I thought it'd be fun to share some of them. 😄
There are lots of packages for converting between color formats, but none are as comprehensive and well-thought-out as this one. Been using it in [REDACTED] and it's delightful.
This is a tool for responsive conditional rendering in React.
Unlike other packages like react-media, it's SSR-safe, so it works with Next/Remix/Gatsby. Super clever implementation, incredible DX + UX.
(I need to write a blog post that explains why artsy/fresnel is so good.
The short version: in other packages, every user (mobile AND desktop) will see the same initial thing for a brief instant, until the JS kicks in and the UI redraws. Fresnel fixes this problem.
This is a *phenomenal* set of accessibility-focused UI primitives. All of the really-hard-to-get-right stuff like dialogs, accordions, menus, scroll containers. Bring your own styles.
The team is wonderful, too!
The GIF shows styled and lovely components, but the library is really focused on the functionality, making sure that everything works well across platforms and for all users.
It's also a collection of individual modular NPM packages. Pick the components you need in your project.
There are lots of accessibility-focused "primitives" component libraries, and I love it.
Here are some others I've used / heard good things about:
These packages have helped me to be more productive, and made for a better developer + user experience. With the exception of artsy/fresnel (which I discovered recently), I've used all 5 packages in real-world projects. They're all 🔥🔥🔥🔥.
Hope they help you too!
(Also, I know not all of these are actually that obscure; Immer is apparently *super* popular if the NPM numbers are to be believed! But I haven't seen much discussion of these packages on Twitter. Hopefully they're new to you!)
• • •
Missing some Tweet in this thread? You can try to
force a refresh
I'm in the process of trying to rent some office space and my god, I've never seen an industry in such need of disruption 😅
Today's challenge is finding a company that will issue business liability insurance, a requirement for commercial leases. Unlike every other kind of insurance I've ever purchased, it can't be done online. You need to call and talk to people. LOTS of people.
I've learned that different insurance companies insure different kinds of businesses. The company I just spoke with, after being redirected 3 times, told me they can't do it because I sell products internationally, and they don't work with international businesses (??).
PSA: Web browsers only understand pure, unadulterated CSS. All of the fancy tools we use — Bootstrap, Tailwind, Sass, CSS-in-JS libs — produce vanilla CSS for the browser.
If you want to be productive with these tools, you *need* to understand how CSS works.
I think a lot of developers think that these tools are shortcuts, as though you can learn them instead of learning CSS. But that's not actually true.
These tools are meant to *amplify* your CSS skills, not replace them!
Here's one big reason why: when things go awry, and you need to debug an interface that isn't right, the browser devtools will show you the CSS that has been applied. Not the Material UI components / Tailwind classes.
Even if you don't *write* CSS, you still need to *debug* CSS.
I feel like there's a lot of hype about web3 on Twitter, and it might give folks the impression that they *need* to switch gears and start learning this stuff if they want to stay relevant.
I wanna push back on this a bit. I think you'll be just fine if you ignore the web3 hype.
I have no idea whether web3 will become the new standard. I would be surprised if it does, but I've been surprised before. 🤷♂️
But even if it does, it won't happen overnight, and the eventual technology will look very different from what people are learning today.
Let's imagine it's 1999, and you're bullish on this new "web 2.0" craze. You want to build a rich interactive web application. So you decide to learn the most bleeding-edge language of the era, Java.
Most "web 2.0" sites today are not built using Java.
I picked these lessons specifically because I think they have good standalone value. I bet you'll learn a thing or two from them!
(Also: these lessons have never been publicly available before! I did a similar “Open House” thing during the launch, but w/ different content.)
In Lesson I, “Hello Flexbox”, we talk about Flexbox's origins, why it's still relevant today, when to use Flexbox vs. Grid. We also look at a quick example, and see how the layout mode works.
For most of the web, the text is the most important thing on the page.
🧵 Let's look at some of the stuff I've learned for keeping our text readable + accessible for everyone.
For folks with poor vision, larger text will help them be able to read.
There are two primary ways to increase font size: 1. Using the browser "zoom" controls (cmd/ctrl +, cmd/ctrl –) 2. Picking a larger default font size in the browser settings
Browser zoom works with most units, including px, em, and rem. It doesn't work with viewport units (vw/vh).
Scaling the default font size only works with em/rem/%.
So, while it's not as bad as it used to be, we still shouldn't use px for typography.