What’s Going On in Dark Theme / Light Theme Land

By Chris Coyier on

There has been a fresh round of enthusiasm and writing around light mode / dark mode support for the web lately. I think it’s driven partially by the new light-dark() function in CSS (CSS Color Module Level 5 spec) that makes it easier to declare values that change depending on the mode. Here’s the basic […]

Things That Can Break aspect-ratio in CSS

By Chris Coyier on

CSS has an aspect-ratio property, which has had full support since around 2021. It can be a very satisfying property to use, because it can help match how your brain 🧠 works or what the desired design outcome does better than forcing dimensions does. “I need a square here” or “I need to match the […]

require(esm) in Node.js

By Chris Coyier on

Joyee Cheung made some waves in Node land last month: Since ESM was shipped in Node.js, for many years, it was possible to import cjs, but not possible to require(esm). The frustration of ERR_REQUIRE_ESM has bothered many and probably has been the primary source of wasted hours in the Node.js ecosystem. If package authors wanted to make sure that […]

Document Collaboration (with Comments!)

By Chris Coyier on

There are a million document editing apps on the web. There are so many potential features that they can find customers depending on the perfect set of those features. Markdown supported? Markdown focused, or can you do more elaborate formatting? Collaborative? Realtime collaborative? Does it track history? What formats can it export it? Integrations? There […]

Color Picker with Display P3

By Chris Coyier on

One of my recent moanings-and-groanings is the fact that seemingly no color-picker supports Display P3 colors. Display P3 allows you to use far more vivid colors then we’ve historically had access to in CSS, but now are totally supported in CSS through newer color functions like oklch(). Not even the built-in color picker to macOS. […]

Gap is the new Margin

By Chris Coyier on

In 2020, Max Stoiber wrote the 🌶️ spicy Margin considered harmful. On one hand, it seems silly. The margin property of CSS is just a way to push other elements away. It’s very common and doesn’t feel particularly problematic. On the other hand… maybe it is? At least at the design system component level, because […]

iOS404

By Chris Coyier on

Have you ever heard someone lament about how Safari on iOS is so far behind? Or is missing features? Or heard people talk about how unfair it feels that Apple doesn’t allow third-party browser (engines)? They say that in part because it literally feels unfair, but also because other browsers do actually support the specific […]

500 Mile Email

By Chris Coyier on

Have you heard the story of the 500 mile email? It’s a facinating story about someone on a college campus who could only send an email around 500 geographical miles. It sounds absurd, but it ended up being true! Harley Hicks has started a brand new site/newsletter named after this famous debugging story in order […]

Node.js Debugging in Chrome DevTools

By Chris Coyier on

I was pairing with my co-worker last week. They had a super different debugging style than I do. I’m aware that I can do fancy things in DevTools, like set breakpoints and whatnot right from within DevTools and use well-placed debugger; statements to halt JavaScript execution and inspect things at that point. But I hardly […]

Node.js: The Documentary

By Chris Coyier on

I enjoyed watching Honeypot’s recent Node.js Documentary. Props to Honeypot for taking the time and resources to do these historical dives into some of our industries most major technologies. I like seeing the human side of these things. I feel like if too much more time passed, documentaries like these would get a lot harder […]