Compare Web Animation Techniques

By Chris Coyier on

Looks like the nice folks at Sparkbox put this animation comparison page together a few years ago. I love how extremely comprehensive it is. Of course we can animate things on the web with CSS, and there is a whole JavaScript API for it, and loads of JavaScript libraries all with different characteristics, but don’t […]

2023 JavaScript Rising Stars

By Chris Coyier on

JavaScript Rising Stars is interesting to look at year after year because of the simple methodology of measuring how many more GitHub Stars a project gets year after year. A project like React with a massive amount of star-based popularity isn’t guaranteed to top the list, and in fact this year clocks in at #7. […]

Basic Dialog Usage and Gotchas To Watch For

By Chris Coyier on

The <dialog> element in HTML is tremendous. We’ve got support across the board now, so using it is a smart plan. Just with basic usage, you get a centered modal dialog experience that comes up when you call it, a dimmed background, focus trapped within it, closes with the ESC key, and focus returning where […]

A UX Review of Letterboxd

By Chris Coyier on

I found this review of Letterboxd onboarding, ostensibly about the “Jobs to be Done” theory, really nicely done. If you’re going to critique something, this is an awfully helpful way to do it. These guys Dan Benoni and Louis-Xavier Lavallee have a bunch of these “story format” things.

How to Favicon in 2024

By Chris Coyier on

Andrey Sitnik does a good job each year investigating what websites actually need in terms of doing the best we can for site favicons. The 2024 edition is out, and it looks like this: It’s worth knowing what you actually need, as there are quite a few “favicon generator” websites out there that spit out […]

A Scroll-Driven Animation… with a Duration

By Chris Coyier on

Ryan Mulligan digs into a Jhey Tompkins Pen and discovers a neat little trick involving two @keyframe animations. The first is a “trigger” animation that triggers when a certain element comes into view, and flips a –trigger custom property. Via a Style Query, that triggers the actual animation. Why bother? Scroll-driven animation durations are, well… […]