With the help of calc(), clamp() and CSS vars, we can create composable, responsive, and fluid type scales that smoothly adapts to viewport and container widths.
You might be used to toggling classes on elements to handle state styles. What if we could just write CSS that reflected the state of the DOM?
Selecting a previous sibling was for long impossible, but is now a breeze with the has() pseudo-class
Learn how to use A/B-testing as a guiding compass for making product decisions, and how to avoid its pitfalls
With a simple CSS trick, we can get fine-tuned control over how shadows are rendered, and create richer and more realistic 3D effects
You can break to a new flexbox row or column without setting the size of an item: add a collapsed flex item between two flex items
I write about design, CSS, animation, and the projects that are keeping me busy.
Nobody likes to wait… but you can make it less of a pain. I've created SpinKit, an open-source collection of loading spinners animated with CSS.
I created TypeSource as a way to browse web fonts by how they look and feel, rather by their name and attributes.
I work as a Design Engineer at GitHub, working on our brand, GitHub.com, Mona Sans, and more.
As the Experience Design Director at Minecraft I worked with the team at Mojang to overhaul their UI infrastructure and design and iterate on new and old Minecraft games.
Early on at Spotify I lead the UI design for all products and worked with building the design team.