Bootstrap Oh Bootstrap
After a while working on a few projects with Bootstrap, I finally decided that I really don’t like Bootstrap. Okay before you continue reading, I should give a notice that this post might contain rants than reasoning.
…ok so you decided to continue reading anyway…
It’s been a while after Bootstrap became popular when I saw a bunch of nonsensical col-md-6 col-lg-3 col-sm-6 col-xs-12 CSS classes jumbled everywhere on HTML pages. I didn’t get what it means and didn’t have any interest about Bootstrap at first. Those pages are not mine and not part of my work anyway so I was not interested at all. Since my projects usually deals with slicing custom web designs, I always went writing custom CSS+HTML approach. I knew what I did and I knew how the code worked well.
Then recently I joined working on a project as the frontend or UI programmer. And by no surprise it used Bootstrap. Then I tried to kept those funny classes as is while writing CSS to fix some messes and beautify the UI. It was frustrating at first because existing CSS broke my stylesheet here and there, and I need to inspect the page and override those classes. Not sure if it’s caused by Bootstrap or existing CSS.
But as time went I know Bootstrap kept giving problems to the point that I want to throw it all. Just after throwing it all and writing the CSS from scratch, I have to put it back. Because ASP.NET project template includes Bootstrap by default, and all the mockups I had were Bootstrap-centric that throwing it would just made me reinvent the wheel. But on a long-maintained project with a team, using a common frameworks means easier to pass the code to new members, and less time to learn, thus less cost. So it’s a dilemma.
On a new project, I finally gathered my determination to follow Bootstrap’s way. While things worked it made me feel dumb and contradict the common practice of writing a good HTML+CSS.
First, writing the Bootstrap’s way feels like going back to 2006. Yep, that was the time I began learning HTML. At that time HTML and CSS were often mixed, with a bunch of inline styles and redundancy. And now I feel the same again with Bootstrap. With pure CSS, I could write a horizontal form with less HTML classes, but with Bootstrap I must define the column size for each form-group with col-md-4 and col-md-8 or the likes. Then what if later we checked again and decided to resize the label portion and field portion to half and half? Then we must replace all those col-md-XX things again and again on all the form-group containers.
Second, it feels like Bootstrap and CSS is mutually exclusive. Yup, at least if you want to have a smooth website. You choose either to go with Bootstrap or go with custom CSS, but not both. When writing your own CSS on top of Bootstrap, then Bootstrap might becoma a hindrance that you have to override some properties or compromise with it. Oh but if you dare to override, you bear the consequences if the website is not as smooth as it should.
Third, working as a frontend specialist with Bootstrap feels like giving out an instant noodle to a chef. Why hire a chef just to put that to boiling water? Everyone can do that. Oh but this chef could make ordinary things extraordinary by adding some decorations or extras on the serving? Yes and that’s exactly what I would do with Bootstrap-ed sites. Still, it’s not as fulfilling as cooking from raw ingredients, or writing custom CSS in this case.Ok enough of the rants. Time to go back to reality and continue the project with a bunch of Bootstrap bits all over the pages.