Layouts can be a pain in the ass.
On bad days, they seem like energy blackholes that suck you in — before you know it, you’ve spent way too much time fiddling with CSS properties when you know you should be building a feature.
When you notice this, you pull back. But it’s already too late. You’ve lost track of what you were building — and you have to recall the context again, often from the beginning.
This is agonizing and it feels ineffective and inefficient.
“Is there a better way of doing this”? You might ask. But you also think “no”, because you just need to get better at Flexbox and CSS Grid and that should solve your problem.
Except… it didn’t — you still fiddle with layouts and you still lose context of what you were trying to do.
Maybe you blame your own discipline and focus. “I should know better than that. I shouldn’t mess around with CSS when I want to build features”. But you still end up messing around with CSS anyway.
I’ve been beating up myself over this issue for a long time. But recently, I recognize that people like us make great frontend developers:
- We’re meticulous
- We have a great eye for detail
- We want to do great work
- We don’t let anything get in our way
- And we care about providing an amazing experience for our users
But… losing track of what we’re doing is extremely frustrating. All of the thoughts we’ve built up over the last couple of hours is gone, just like that. And it’s just because we want to fix a simple CSS problem! (Haa…)
We know this isn’t right because we have bigger fish to fry, but we also know this is right because the craft is so dang important. And sweating the details makes us better at it.
I didn’t want to get caught in this dilemma forever. So, without making myself wrong, I tried to find a way to satisfy my desire for good craft and yet still be able to make layouts fast.