Once you know CSS, HTML, and JS well enough, do you find it easier to forgo CSS libraries such as Bootstrap? What size of a project do you feel such libraries become necessary or a hindrance?
Personally, at first I thought, "Oh hey, this Bootstrap is convenient," but then I began to use it and based on certain specifications and the fact that I already sort of know how to create a responsive design, it seems less useful than I initially thought.
What are your thoughts? Can you recommend better CSS libraries?
I would distinguish two main directions. It really depends on your products and skills of your team.
Somebody on your team is a frontend architect, meaning that she/he can implement anything from a visual design producing well structured and clean code. She/he could even reimplement any main features of Bootstrap in reasonable time without any frameworks.
In this case your team should focus on building a deep vanilla CSS/Less/Sass skillset and build the components, layouts and design from scratch.
Your team will be able to build unique components with high quality but will not be efficient when needs to deliver similar websites fast.
Bootstrap, Pure CSS, Material-UI etc.
Your team knows well Bootstrap or any other frameworks, has a pretty good frontend stack skillset and can rapidly customize it to achieve the vast majority of customer requirements.
In this case your team should focus on getting to know with several CSS frameworks and pick one, in which the team specializes itself.
Your team will deliver nice websites really fast but struggle when requirements became more special.
It is always a good question whether to dive deeper or to learn more frameworks. Depends on your products, customers and your team. It is always a good idea to try both directions and specialize in one based on real experience.
I think you should at least use bootstrap reset and grid system, as by doing that you're following conventions, that's been followed all around the world, so it's very easy for any other developer to take your work and pick up from where you left off. not to mention the upgrades, for example, we were using bootstrap 3, and it's using float, now bootstrap 4 is using flex, so we just upgraded the library, and adjusted some classes, and in half an hour we converted our whole grid system.
so, to wrap up, of course you can write your own grid system in 2-3 minified css code, but then the other person taking your work will have to understand those unnecessarily customized code, and that code you'll have to maintain it through the life of the app, but by using Boostrap grid system, you're using the standard.
Alkshendra Maurya
Frontend Engineer | Hashnode Alumnus
If not used properly, these libraries do become a hinderance.
Developers usually opt for frameworks for the ease of development, but end up without using most of the features they provided. Many times a framework ends up becoming a dead weight in the project; which you can neither remove, nor put it to efficient use.
IMO, it is only okay to use a UI framework when:
Except for the above two cases, there's always an other, better way to handle UI in a project. Every developer has his own way of coding and you might not prefer the way a framework approaches something.
Personally, I like to start with just a CSS reset, and some basic styles (which, you could say, is a little framework of my own, in a way).
That said, frameworks can always be taken as an inspiration. They establish good guidelines that'd help you in structuring your markup and CSS.
A good idea is to take parts of these frameworks that are relevant to your project (say, grid system) and leave the rest of it.
Keep the good ideas, and leave the bad/unnecessary ones. ๐