This is a tremendous CSS-focused tutorial from Adam Argyle. I really like the “just for gap” concept here. Grid is extremely powerful, but you don’t have to use all its abilities every time you reach for it. Here, Adam reaches for it for very light reasons like using it as an in-between border
alternative as well as more generic spacing. I guess he’s putting money where his mouth is in terms of gap
superseding margin
!
I also really like calling out Una Kravet’s awesome name for flexible grids: RAM. Perhaps you’ve seen the flexible-number-of-columns trick with CSS grid? The bonus trick here (which I first saw from Evan Minto) is to use min()
. That way, not only are large layouts covered, but even the very smallest layouts have no hard-coded minimum (like if 100%
is smaller than 10ch
here):
.el {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(10ch, 100%), 35ch));
}
There is a ton more trickery in the blog post. The “color pops” with :focus-within
is fun and clever. So much practical CSS in building something so practical! 🧡 more blog posts like this, please. Fortunately, we don’t have to wait, as Adam has other component-focused posts like this one on Tabs and this one on Sidenav.
Nice article with lots of information about CSS grid.
The new hack i learned is how we can use transform-style:preserve-3d to solve element placement issue. :)
Beautiful!
I recently achieve a creation of a grid with a maximum number of columns that adapt responsively, using the max() function.