Why I’ve Changed My Mind About CSS Frameworks (but Not Javascript)

Last year, when I was brushing up on some of my web development skills, I wrote:

But, a lot has changed with both CSS and Javascript that I missed out on. CSS flexbox and grid are now vastly improved layout techniques. New versions of Javascript starting with ES6 were huge leaps forward. And most importantly, browser support isn’t such a big challenge anymore. Consolidation in the browser market along with auto-updating browsers and more advanced mobile browsers have led to more or less every browser working the same. This has huge implications on development, rendering jQuery and even frameworks like Bootstrap less of a requirement and more of an option. It’s now a reasonably logical choice to use vanilla CSS and Javascript.

At the time I was working on a now abandoned/delayed project where I chose not to use any frameworks. It was invigorating, to an extent, but also overwhelming, because every single pixel needed to be styled.

When we conjured up the idea for Notify My Team, things were different. Time was of the essence because we didn’t know what the future held for Detailed Image and e-commerce in general. I needed to develop rapidly, at least at the start during the most uncertain times, and the best way to do that is with a framework. I’m also not a designer by nature. I enjoy UI/UX, but am better working within a framework and not completely on my own.

I chose Materialize, which I think is a nice sweet spot between larger, more bloated and complex frameworks, and super simple frameworks. It checked all of the boxes for what we needed, and as we approach our launch day, I’m still quite happy with the decision. In a future post, I’d like to break down what frameworks I would use in what situations, because I think this is a fascinating topic. The decision you make when you start a project can have long term benefits, long term consequences, or (in most cases) both.

When it comes to javascript, I’m less inclined to add jQuery to a project these days. I’ve been writing almost exclusively vanilla JS over the past two years, and I’ve yet to come across a situation where jQuery would have saved much time. And with browser compatibility a non-issue these days, it doesn’t seem like a good fit for anything I’m working on. I’m sure there are projects with teams or involving jQuery plugins where it still makes sense. I just don’t see myself using it anytime soon.