I put that question into a Google search. Well, partial. My question was actually "Is a CSS Framework really necessary". Some of the hits were answers that I wasn't expecting at all.
Let me point out that I am pretty much retired. I am not peering forward at a career or considering direction. Career is something I look backwards at.
One of the hits to that question let to a discussion group where several younger people were discussing the merits of adding CSS Frameworks to their skill sets vs plain vanilla CSS. I'll add my two cents here.
You need both. You absolutely need skills in plain CSS. And you need to have proficiency in CSS Frameworks.
Let's discuss the CSS Frameworks first. Here's the two (three actually, one not usually considered):
- Bootstrap. By far, and I mean by a wide margin, Bootstrap is the leader in market share of CSS Frameworks. Bootstrap has a commanding lead of 79% market share of the websites that use CSS Frameworks. You'll eventually get frustrated using Bootstrap. There are no classifications in CSS Frameworks, but Bootstrap falls into my definition of "kitchen-sink" category. That is they take over everything and intertwine with HTML in a fashion that is disgusting. You can't write HTML without considering the impact Bootstrap will have on any particular HTML element. Bootstrap started life as a Twitter project, was released as an "open source" project in 2011 (at 32Kb) and has bloated since then to well over 200Kb today.
- Tailwind. Tailwind is an "open source" project launched in 2020. It has surpassed other frameworks with its "utility-first" concept. Rather than take over all aspects of a website, Tailwind offers several options for each possible feature you want to display in a website. For example, it doesn't take over the HTML and display of a button, it offers a group of classes that you can use to display the button you create. Think of it as a series of code snippets that you can draw from ... a typical way for a developer to work. The developers of Tailwind, according to their own version of history, were all Bootstrap (disillusioned).
Here's the hidden one: Roll-Your-Own. This actually dovetails into building your knowledge of CSS. I can't emphasize this enough ... it doesn't matter which CSS Framework you choose (including Tailwind), you will find flaws and "opinions" that you can only overcome with an understanding and knowlege of vanilla CSS. By using a CSS Framework, you will also develop a sense of strategies needed to come up with the only ideal CSS Framework: your own. You'll get to know HTML intimately. You'll get to know CSS3 (and, hopefully, it's history) intimately. And you'll get to understand the need for Javascript. And Javascript is required.
#3 is important. That will develop your skills in vanilla CSS – but should also get you to get a basic understanding of the different CSS Frameworks already available. It's not defined, but there is a vast difference between the "kitchen-sink" types (Bootstrap) that take over every aspect of HTML and CSS and the class-less CSS Frameworks (like Simple CSS) that are closer to a "normalize" with a few appearance classes. Somewhere in the middle is where you want to end up with your own effort. I'd suggest you have a look at Chota CSS Framework. My own opinion: I think Chota CSS Framework is the right direction. It's sort of an amalgam of Simple CSS and a fairly good responsive grid system. The most difficult part of creating your own CSS Framework is the responsive grid. Unless you are specifically designing for mobile use only, you don't have much of a choice about CSS supporting touch devices (mobile, tablets), desktops, and HD (or wide format) like TV and large display panels.
I've only named a few CSS Frameworks in this post. There are hundreds. The vast majority are just blatant knock-offs of something else. It's easy to understand how that happens. A developer ends up using a CSS Framework and likes it, for the most part. A new release comes out that turns the project into something unexpected. The Tailwind history is something like that. The main developer had been using Bootstrap and pleased with it to that point. Out came another version and a switch to a different CSS pre-processor. An unwanted change ... a change that ultimately led to the development of Tailwind. It's rarely a single feature (or feature set) that cause dissatisfaction, it's usually a poor choice in direction or issues of "control".
A bit off-track here ... the answer to the question "Is a CSS Framework really necessary?" is simply yes it is. If you are looking to develop your career in front end development, you need knowledge and skills in plain vanilla CSS to be able to do it right. And you need one or two CSS Frameworks to be able to rapidly prototype and get projects done quickly. Over time, do your own CSS Framework and you have the best of all worlds.
PS. Don't get sucked into the hyper of the other has-beens or wanna-be css frameworks. Other than Bootstrap, there isn't a single CSS Framework that has broken the 1% market share barrier yet (or likely ever will).