Thanks to Bootstrap, I've managed to build some very professional looking websites, coded entirely from scratch, all with my existing HTML/CSS knowledge.
Just a phenomenally useful framework for non-coders like myself.
But it's got a consistent look and feel to all components, and that look is a mile above anything I could design from scratch.
So in the same way you use it to build professional looking websites with limited HTML/CSS knowledge, I use it to build sites with very limited design knowledge and no sense of aesthetics.
Some engineers like to complain about 'yet another bootstrap template' a lot, and I can understand that it gets a bit dull and boring, but that's much better than the alternatives.
Still bootstrap has been amazing over the years.
After having used bootstrap for so long, I understand it's strengths & shortcomings quite well. I feel there's little to complain with bootstrap, and little to gain by ditching it. Would love to be proved wrong.
Basically bootstrap is not composeable. It provides not just a set of styles - but also a severely restricted visual design. People quickly run into elements that bootstrap was just not designed to be placed into. That's why there are so many forks/extensions of bootstrap, like bootstrap-admin and so on.
So its good to start with and follow the official style guide. But doing anything more, and the restrictions immediately bubble up. And then you quickly run into an entirely different set of problems on organizing your own CSS, like using SASS, BEM, etc.
Its not a question of OOCSS vs BEM, but more of how tolerant/accomodative the framework is in using it in different elements and contexts. Bootstrap's tolerance is relatively low compared to most other frameworks.
BS4's modules and components are highly portable and work in pretty much any context. I don't see how offering a theme customization tool results in a "severely restricted visual design", it allows the freedom to make any visual design you want. BS4 is MUCH more than visuals/UI.
Definitely share that pain. Is there a mature framework that solves it ?
For creating a quick and dirty project it's great. But after a while you find you end up using less and less of bootstrap because moulding it to your requirements becomes a burden. That's prob why you rarely see big complex sites using it.
There's nothing worse than using react or angular and then someone pulls in a library to have a bootstrap control that breaks stuff and doesn't work and is hard to style. Spend hours trying to get it working properly beyond the most basic implementation of the control.
I prefer bulma because it focuses more on the basics and doesn't get in the way. Even after you create stuff you can shape and mould t easily.
>"bootstrap control that breaks stuff"
I like the idea of adapter more than having a separated framework like react-material design or react-bootrap.
https://material.io/components/web/docs/architecture-overvie...
What? Lyft, NASA, FIFA? Is there a list of major sites that are using Bulma? By your appeal to the bandwagon this makes it an inferior framework?
A basic grid and some buttons are nice for a pet site, it doesn't appear to be a robust enough framework for any site of significant size. I guess I could write the CSS and JS for a modal from scratch, or I could just install Bootstrap and never think about it again.
I can take the BS source, comment out half of it and end up with Bulma. If I started with Bulma, I'd have to write lots of code to end up with a framework that rivals BS.
All these issues go away with bulma.
No tool to customise theme is great. I don't want a bootstrap looking theme. It gets in the way... bootstrap is structure and styling throwing in the kitchen sink and half the house but not adding any doors or windows and you can't hide a builder to add more without it costing a kidney.
Then don't use the JS parts of BS?
>No tool to customise theme is great. I don't want a bootstrap looking theme.
These sentences are contradictory. The tool allows you to make a theme that doesn't look like everyone else's. Bulma does not have this option. You will end up with a "Bulma-looking" theme.
>It gets in the way
Unlike Bulma's visual styling? If you don't want a default-looking theme, wouldn't you need to customize it then? Doesn't lacking any tools to do so make this harder? I don't understand this argument.
Same with foundation and semantic UI. Bulma and other small libraries are much more flexible in this regard.
I find full frameworks like bootstrap or quasar to be nicer to deal with.
I think people really au fait with CSS prefer to add only what they need rather than serve Bootstrap entirely.
But that's all optional, Bootstrap is modular [1] [2] [3].
[1] https://getbootstrap.com/docs/3.3/customize/
[2] https://github.com/twbs/bootstrap-sass/blob/master/assets/st...
[3] https://github.com/twbs/bootstrap/blob/v3-dev/less/bootstrap...
That's a drawback. For BS3 or 4 I can just comment out what I don't need. If I do need many of the components and JS modules that Bootstrap provides OOTB, I have to write them myself. I'm using a CSS framework to avoid doing that.
Edit: And can be easily customized.
https://github.com/kbariotis/kostasbariotis.com/blob/master/...
I can just include what I need and override what I want.
https://github.com/twbs/bootstrap/issues/20184#issuecomment-...
That still doesn't address the overall point, which is that Bootstrap 3 is no longer maintained, according to its project Owner, and this or any future vulnerabilities may or may not be patched. That seems like a significant risk to me.
<div class="row"> UNESCAPED USER INPUT </div>
or <img src="UNESCAPED USER INPUT">
aren't - escaping user input is up to the developer, not Bootstrap. Being essentially a static HTML/CSS framework with a bit of well-tested optional JS, Bootstrap's attack surface is minimal, making future vulnerabilities a pretty unlikely situation. A quick perusal of Github's issues search for "security" finds nothing significant in the past.https://github.com/twbs/bootstrap/issues/20184#issuecomment-...
If you don't want XSS, don't echo untrusted raw user input to the browser. Not in the title tag, not in a paragraph body, not in a data attribute. It's on you, or your application framework. Expecting Bootstrap to combat it is insane.
Things that I like about bootstrap are : stability, performance, easy custom builds, community support (almost every problem has been addressed on Stackoverflow), ecosystem (themes, extensions, tools). The design out of the box might look cookie cutter, but if you know basic CSS, it is very easy to customize it with minimal effort. Just lookup examples on codepen/stackoverflow.
Some people complain about bloat but this is amazing : https://getbootstrap.com/docs/3.3/customize/ . I have public facing websites with thousands of visitors per day. The performance rating is better than 90% of the websites.
Truly want to thank @mdo @fat @cvrebert and the rest of the team for this amazing project.