I've been using bootstrap 3 for most of my public projects for a few years and bootstrap 4 for some internal projects. I make it a point to try new & popular CSS frameworks every few months and ultimately thank God for bootstrap. It has stood the test of time for all these years.
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.
I'm not a programmer nor have I ever taken any HTML/CSS classes. The last time I learned HTML/CSS was back in 2000 when WebMonkey was still popular.
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.
It's also phenomenally useful for non designers too. I mean okay, is it the most pretty framework? Of course not.
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.
Absolutely. I'm a backend/infrastructure guy and spent a lot of time creating internal tools with web interfaces over the past 3 years. Thanks to Bootstrap, they look decent, modern, took very little time and people were happy to use them. Sure, not the most original designs, but that's light years ahead of crappy interfaces I'd have produced otherwise.
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.
Bulma's hoverable dropdown menus don't seem to be accessible via keyboard navigation. One of the nice things about Bootstrap is that the developers have closed more than 15,000 issues, and in the process, have addressed many edge cases that other CSS frameworks haven't.
I've been watching bulma and it's definitely promising.
Would you care to elaborate what are the things that you "can't stand" with bootstrap ?
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.
Unless you're using bootstrap components as-in-the-examples in the same context and elements, they work fine. But try using them somewhere, like an input or button in a table cell, or card in a grid, etc - and you'll spend an eternity of "unsetting".
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.
It's hard to explain. I've used it for many projects in the past and currently use it at work.
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.
I found interesting the architecture of Google material design components, I still didn't try but I wonder if could solve those kind of problems that you mention.
>"bootstrap control that breaks stuff"
I like the idea of adapter more than having a separated framework like react-material design or
react-bootrap.
>That's prob why you rarely see big complex sites using it.
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.
Bulma is severly limited compared to BS4, lacking many major components (I don't even think there are any JS components) and all the best parts are almost identical to BS, in same cases with identical naming. There is no tool to customize your theme, like BS has.
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.
No Javascript is great. Bootstrap requires jquery, some making some events really hard to manage with react or angular. And react/angular bootstrap libraries are restrictive that it makes it hard to extend features of bootstrap.
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.
>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.
There are other toolkits for bootstrap that don't use the jquery based JS.. you can use anything, as long as the rendering uses the correct classes for a given state, etc.
Bulma, and others like it (Milligram is my favourite) have enough functionality to get going:
responsive layout/grid, typography, form styling) but they don't have a huge, heavy set of components and requirements like Bootstrap.
I think people really au fait with CSS prefer to add only what they need rather than serve Bootstrap entirely.
> but they don't have a huge, heavy set of components and requirements like 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.
Agreed, it's been my preferred way to use BS for a long while, first with less, then scss... You can leave a lot behind, and with react/angular there are ui components that don't require all of jQuery.
That’s as much a vulnerability as <script> letting me pipe user input to it. Should I? Of course not. Can I? Yes. Is it a flawed feature for this reason? No.
I am not sure how an XSS vulnerability is considered a stretch. Perhaps the likelihood of it is low. Is that what you meant?
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.
It's not an XSS vulnerability in Bootstrap for the same reasons
<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.
I will echo this person:
"This was found in an application where data-target was based on user input and only passed through standard HTML entities encoding. There is no reason why data-target should interpret HTML so while not impacting many applications it should be fixed in my opinion."
Echoing a wrong statement doesn't make it any less wrong.
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.
I highly recommend UIKit [1] for anyone looking to pick a front-end framework. It solved tons of design problems that I faced with Bootstrap. Here are a few —
1) Every class name is prefixed with "uk-": a wise decision to avoid conflicts and make it easy recognise the framework classes.
2) Useful generic classes: UIKit has many helper classes to avoid adding another rule—for removing padding, introducing a small margin, rounding the borders, adding a box shadow.
3) Clean theme: The default UIKit theme looks an order of magnitude better than Bootstrap's.
4) Additional helpful components: Loading spinner, Cards, Notifications, Sortable list. Shipping them by default saves a lot of time in searching and integrating them in your application.
5) Default Icons Support: The icons look clean and beautiful and because they are SVG, they don't require a font file. (Although, requiring Javascript can be turning off for some)
6) Much better components: Try creating an input box with an icon in bootstrap; with UIKit it only takes a little markup.
Whenever I develop with Bootstrap, I have to spend half the time muting the existing styles and introducing new ones. With UIKit, it never felt like a problem.
If he takes a look at v4 beta than ui-kit creator will ask him to look at the next beta. This is an endless cycle. I think he's comparing against 3 which is valid. And from your replies, it looks to me like he's right on all counts.
Unlike Bootstrap (and Foundation), UIKit has no statement about the accessibility of what it provides. Some of its JavaScript includes ARIA attributes but who knows if they did it correctly; adding ARIA wrong can sometimes make sites less accessible than if it wasn't used at all.
UIKit has many CSS classes with hover states but not focus states and it's not easy to add them to classes like .uk-hidden because it's not a direct declaration but relies on a parent class. It lacks an equivalent to Bootstrap's .sr-only (visually hide but expose content to screen readers); you can always add such a class yourself but it makes the UIKit framework incomplete. UIKit makes it harder to make a site accessible than if UIKit was not used.
CSS Frameworks are supposed to make the job easier by taking care of problems you're not even aware of; UIKit fails to do that in this respect.
1) I don't know if that's a wise decision. To me, BS serves as a "base", my custom classes extend and borrow from BS and everything is knitted together.
2) BS 4 added a ton of helper classes, to the point where I find myself using these rather than writing custom CSS.
3) Ultra light font weight, light gray font color, capitalized text might look great, but I prefer better usability. The point with BS (as of my observations that is) has always been to provide a no-bullshit™ style. It doesn't follow trends, it does what's sane.
4) I half-agree. Not sure how useful it is to have "notifications". I personally never needed that and doubt their usability on mostly document oriented websites.
5) BS used to come with icons, but now there are tons of icon sets to choose from. BS is a CSS framework after all.
6) Besides that, what components does UIKit have that BS can't do? Maybe sticky behavior with a delay would be helpful.
BS is 125 KB vs UIKit 256 KB minified though (that's only for CSS), besides all the accessibility issues.
I really liked ui-kit for my website https://www.itnry.com .It just took couple of days of work to get it going. Huge fan of bootstrap too. For backend engineer who hated CSS and front-end, Bootstrap really helped me build good looking ui's at work where instead of plain old Dev JSP
It’s past midnight by me and I’m heading to bed, but I’ll pop back here tomorrow to answer questions and follow up with folks. Thanks for the kind words so far, and any and all feedback coming our way :).
Huge thanks to the contributors and our team for pushing so hard recently. Feels amazing to have a beta out finally.
A few questions for those who might be using component-oriented CSS-in-JS libraries like styled-components [0] or glamorous [1]:
1. Do you still use a global, class-based, cascading CSS framework like Bootstrap, Semantic UI, etc, to provide baseline styling/theming for your pages and components? And if not, do you just essentially roll your own custom CSS framework in JS? Or are there styling frameworks out there that don't cascade and can compose more naturally with component-oriented approaches to styling?
2. If you do use cascading CSS frameworks in addition to something like styled-components, what are your approaches to limiting the unpredictable side-effects of cascading styles, dealing with specificity and load order issues, and ensuring proper style isolation inside your components?
It seems like using a cascading styling framework could defeat much of the purpose of using a well-isolated component-oriented styling library.
Although on the other hand, the alternative of writing all styling on my own seems like a futile exercise in reinventing a vastly inferior wheel, since so much designer talent has been poured into projects like Bootstrap to the point where an amateur designer like myself could never even approach the same level of polish, flexibility and consistency in their designs.
I'm hoping someone here could enlighten me on a better approach that takes the best of both worlds, or at least share a middle ground they're happy with?
1. No frameworks, but there's an `injectGlobal` escape hatch with styled-components that I use for a CSS reset. We're transitioning from a class-based approach and the two are working together quite neatly.
2. This hasn't been a problem. Most of the global styles are based on tags, and classes are already more specific. The legacy class-based stuff is all hash-based too, so there's been no conflicts.
So far I'm enjoying the component-based approach. Render functions look much cleaner and you abstract logic that might have previously looked like
On one hand I don't think I've done enough to reuse styles across components but on the other hand I know I'm never loading styles that aren't used specifically for the current render.
I have yet to get too involved in CSS-in-JS yet, purely because I am waiting for things to settle a little before I transition to it. With that said I am really excited for it, and I think it is solving a lot of problems I have with CSS.
1. This is one such component based styling framework built on top of styled-components. http://jxnblk.com/rebass/
2. In many of the solutions that exist I have found that they aim to work very well with existing CSS as much as possible. I haven't had to deal with many issues. Hopefully by the time I start switching entire projects over to it, everything will be completely stabilized.
I'm using polymer - so i guess that applies too.
What I personally do is have views that use global styling from bootstrap/material depending on the project, and individual views are built from components that have their own styling, that can be overriden by app-wide one whenever needed.
So far i never had problems with wrong styling caused by top level stylesheet.
I think Web Reflection covers my concerns with Bootstrap more elegantly than I can myself. It's 2017, the browser targets are very modern, so why does it need jQuery at all?
We'll be working on moving on from jQuery. When we finally decided to commit to it, it was too late in the v4 alpha process to really spend significant time doing it. We'll be piece-meal updating our plugins to drop it.
Lots of folks like to shit on jQuery these days, but it changed JS forever. We're still using it while focusing on other things, and you can easily swap it out for something else or use a ported version of our JS for React, Angular, etc.
I don't particularly aim to shit on it, but I've been on the vanilla train for awhile now. So when I see something I'd like to try out to solve a specific problem, having it pull in jQuery for a dependency is kind of frustrating.
Especially when (and I'm sure Bootstrap does more with it) the only reason it's pulled in is to replace document.querySelectorAll and fetch/xhr.
Very exciting! I have been slowly removing jQuery from many web apps over the last several years and its good too hear that Bootstrap wants to get there too :)
Now obviously removing jQuery would be a major revision and break the current API. But are there any particular pain points in removing jQuery as far as features go?
A cursory look at the source code (/js/src/*.js) shows that most jQuery usage is simple $(el).hasClass('foo') or $(el).on(evt, handler) so those ones are easily replaced by the native APIs.
Maybe the harder parts to replace are $.data or $.event?
The browser targets for BS3 were IE8+ and iOS+. BS4 is IE10+ and iOS 7+. IE10 is 5 years old.
If by some miracle you were able to find a website visitor that didn't already have jQuery in their cache, loading it from a CDN is pretty light.
The article answers your question:
>the most plausible answer is that jQuery is very good at plugins integration, and Bootstrap has few of them
Their solution? A 50-line JS snippet paired with a polyfill (the the user is less-likely to have cached than jQ). Er, ok, but I'm using a framework so I don't have to write this stuff.
Another example:
>OK, OK … I got it, you also want the chained $(element).on(type, handler) one
And then another snippet. Sure, I could rewrite more verbose, less-tested versions of all the things jQuery gets me OOTB, but why? To save downloading one file from a CDN once?
> The browser targets for BS3 were IE8+ and iOS+. BS4 is IE10+ and iOS 7+. IE10 is 5 years old.
Sorry, that's my bad for forgetting my audience. My day to day job is to keep things running in IE8 in Quirks Mode. (With a really bad WYSIWYG editor to boot, inside of one of over 30 frames loaded on the page)
So in my eyes, IE10 is pretty modern. Not so to the average HN reader. My bad.
Still, IE10 is definitely close enough to standards that most of jQuery is wasted on it. Not all, and the parts that are helpful are indeed better tested than writing something yourself.
But I find once you start targeting IE10+, most of the time jQuery is a thing to hang pseudo globals off of, and a way to type `$` instead of `document.querySelectorAll`. And in that role, it's not worth the cycles it burns.
EDIT: In particular, the thing that gets me is when I go to look up a library and it is only available as a jQuery plugin. But looking inside the code the only uses of jQuery are for selectors, events, and http requests, all three of which are standardized and easy to use without jQuery.
You know, I had no idea that was a thing... Thanks for the info, I'll go look into that.
Last I looked at jQuery was a few months ago, and all I saw was standard or compat.
EDIT: Just looked it up, it's still pretty big for my tastes, but I appreciate any reduction in size. Next time I need to bring in jQuery I'll see if I can get away with just slim.
Their "solution" is for the holdouts that insist on using a shitty library forever. It's only in your cache because of this stupid argument people like you make. The time for jQuery is long past and it's time to move on.
>"holdouts" that want to use plugins? Such luddites!
Yes. These "plugins" are making your page heavy and wasteful and I hate browsing websites made by these "luddites" because they're slow and annoying and probably selling my information to advertisers.
>It's in your cache because it's useful; at least your concede that it is likely to be in a user's cache, in which case the added page weight is 0.
It's not like the browser caches the entire JavaScript JIT output. There is a performance impact and more importantly there's a cognative impact from having to use jQuery to interact with Bootstrap on top of whatever sane library (or lack thereof) you're using for everything else.
>Seeing as my argument was so terrible, I'd think you'd have an easier time forming a substantive reply, vs the struggle we see here.
What sort of substantiation do you think I'm missing?
>I don't really understand the value added in your personal attacks.
I didn't issue personal attacks, I attacked your argument. I have no commentary about you as a person leaving aside this one issue I disagree with you on.
>All? Everything you notably had to add in this comment?
What, answers to your questions? Cool it down bud. I assumed from the outset that you didn't actually believe jQuery was a good library but rather that you thought it was acceptable for Bootstrap to use it. If we really need to go over why jQuery is a shitty library, well, see the link you responded to in the first place.
>$(div).modal()? I'm ok with that level of cognitive impact.
Not just $(div).modal(), but compounded with the fact that everything else is going to be using something other than jQuery. You're probably using React or Angular or something similarly less stupid than jQuery, and you will have pain points everywhere the two systems have to touch.
>So the "people like you" was entirely impersonal? Forgive my misunderstanding.
Yes, "people like you" who think jQuery is still a good idea in 2017.
You've been thoroughly corrected already. If you insist on receiving every attack on your argument as a personal slight, then that is your prerogative. But please, leave the rest of us out of your nonsense.
>If you insist on receiving every attack on your argument as a personal slight
Compared to this overt oversimplification, I don't. I addressed the attacks on my argument as such. I made no mention of a personal attack until it was presented, and if you scan the rest of my comments on the thread you can see I didn't "receive every attack" that way; your generalization is easily and instantly proved false.
I identified a single personal attack, "PEOPLE like YOU" as such, and the owner of the attack agreed with me ("thoroughly corrected", in your words).
I suspect you know this of course, but tried to misrepresent my objections anyway. Please, leave the rest of us out of your nonsense.
A big thumbs up and thank you to the Bootstrap team.
Building Bootstrap 4 from source (which is what you want to do for your own themes and customizing) requires a somewhat hefty npm install due to babel, autoprefixer/postcss and clean-css, and in particular due to node-sass which is using libsass/node bindings, thus requiring gyp and Python. I'd imagine a leaner setup based on a precompiled sassc binary for SCSS processing could be useful.
It's probably not the right time and place to ask, but have there been considerations for post-Bootstrap 4 yet? I could imagine CSS grid and CSS variables will reduce the need for sass/less in the future. So it might make sense to look into whether the CSS abstractions build into BS 4 will hold up well in the presence of CSS grid/vars, or have their design informed by/aligned with these upcoming features.
Probably gonna stick with some Sass stuff for awhile, tackling components and JS behaviors we haven’t done in the past. There’s some major stuff we’re missing even before CSS grid layout (which doesn’t have super great support today).
To the contrary, CSS Grid Layout has excellent support. All modern browsers aside from Edge. For Edge, IE11, and IE10, you can use the original Grid spec since it's frozen in time and can replicate most of what Grid can do today, albeit it's more complicated and explicit.
Considering Bootstrap does not support the same browsers that CSS Grid does not work in, this argument doesn't stand.
If you look through the stats of every unsupported browser in the list above, almost all of them are %0.x. Adding them all up still gives you single digits. And with Flexbox as a fallback, you're covering virtually all modern browsers.
I really hope you consider adding this last feature to Bootstrap 4 as I truly believe it will be worth the effort.
I think getting bootstrap 4 to this stage will have been quite the task already, the maintainers may want to rest awhile on their laurels once it is released!
If I was going to offer a contribution myself, it might be to work on removing the jQuery dependency.
I cannot recommend Semantic UI enough, and in particular the React port of Semantic. Its a very complete, themable and quality piece of toolkit. After using it I could not understand why I've been using bootstrap before.
I'd recommend neither. CSS has caught up, and the two large problems that these frameworks solved no longer exists: grids, and differences between browser implementations.
Additionally, semantic UI deserves the scorn of a thousand linguists for the most misleading (unsemantic? or even antisemtitic?) product name ever: there is nothing semantic about class="col-xs-12 col-m-3 col-x-1"
semantics aside (hehe), you described the grid class of bootstrap, not semantic ui. In semantic its something like "ten wide column" or "four wide column" etc.
I rarely use semantic for its grid though. Those are now easy problems to solve. I use it because it gets me a clean and pretty UI I can theme later to adjust the specifics (or get someone who is better at design than me to do it).
I used Semantic-UI and was really impressed but its size was a show-stopper for me. Another thing is although it looks good on desktops, mobile often seems like an afterthought and they do not even have a responsive menu, which means you have to write two menus or resort to some hack if you need a mobile-friendly menu. This issue has been open for forever and the authors have yet to come up with a favorable response. I've since switched to Bootstrap 4 alpha and I'm looking to jump to Bulma now due to some limitations.
You can compile it to include only the components you actually use. I don't use stock semantic myself. I use the react port which is a separate project which uses just the CSS of the semantic library (and again can be compiled to include the css/theme you want).
I've never heard of bulma until this post so I will give it a look.
For anyone wondering, the beta is comprised of 392 Github issues: https://github.com/twbs/bootstrap/milestone/41?closed=1 with some more interesting tidbits in this issue here: https://github.com/twbs/bootstrap/issues/21568 - good to see Bootstrap finally leave alpha after so many years, the grid system is fantastic. Congratulations to everyone who contributed to Bootstrap to make this happen, solid work.
I like how minimal Bootstrap 4 is. I also like the SCSS core itself. It's very well written and I learned a lot from reading it.
I worked with Foundation 5 + 6, Semantic UI, Spectre, Bulma and Bootstrap 2 + 3 (and some more lesser known Frameworks) and I must say that the Bootstrap 4 team really nailed it. All the other frameworks are good, but this is just great to work with.
1. It also works for Y
2. how you specify responsive, "small-4 medium-6 large-2" means on small devices 4 wide, on medium 6 and on large 2 wide. This makes layouting responsive much easier.
I don't think they are offering SVG versions of their icons until the next version, and BS4 is moving away from font (non-SVG) icons, thus their exclusion.
I wouldn't really consider it an alternative. It's essentially inline styles.
Useful for marketers or authors without coding experience to build pages within a restricted CMS (they can't edit all the code, but they can add classes to components).
Most of it is not components, though; most classes are just a single CSS property and value. This easily bloats into a maintenance nightmare:
I also love tachyons, it's unfortunate that I didn't "get it" until I had gone through quite a few long !important stylesheets in various web apps, most of them using bootstrap too :(
It has Flexbox!!! Although our team has added additional classes to get some of the UI done, I am sure, we could have done it using only Bootstrap. We get lazy :P.
The primary reason I like Bootstrap is because of the semantics. Columns are col, Tables are table, Cards are etc. Primary is main action, Danger is error etc. etc. As they say in UX, "Don't make me think!"
I heavily used Bootstrap 2/3 in projects before, but the last two years or so i really don't need such a large CSS framework anymore. Especially with all major browser supporting Flexbox grid-like layouts have become so much easier. Nowadays i just use SASS and a really small mixin library (1) and i'm perfectly happy.
You could use Font Awesome with bootstrap, it includes classes for some neat icons and also classes to make them spin; http://fontawesome.io/examples/ see "Animated Icons"
Implementing that .btn-spin yourself wouldn't be too hard either, couple lines of CSS...
That version dropdown in the navbar will change my life: I give lessons for a framework which in the previous version still used v2.3.2, now I’m sure my students will not look at the wrong documentation.
Same for me. CSS grid really eliminates the use for the Bootstrap v3 grid (can speak about the v4 as I do not know it), and since everyone used Bootstrap with any known themes, adjusting the UI parts manually in SASS was always required to not look like "any of those standard bootstrap apps".
Bootstrap is great and I used it on a couple projects. Unfortunately I gave up waiting on a V4 release and started using Semantic UI. This has been a long time coming!
FWIW we have been using Bootstrap 4 in production since early days of rolling out the v4-dev and we have had minimal troubles of upgrading it in various tons of projects.
It being a beta release, I guess it's for collecting feedback on github from a larger community. That said, I think the Bootstrap team really does a great job of ensuring their stated target devices/browsers are covered (more so than other CSS frameworks I know).
Many folks use Bootstrap for its awesome grid system. But now that CSS Grids are finally here and are way way cleaner to use, Bootstrap's days are numbered.
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.