Hacker News new | past | comments | ask | show | jobs | submit login
Bootstrap 4 Beta (getbootstrap.com)
306 points by jdorfman on Aug 11, 2017 | hide | past | favorite | 149 comments



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.


I had been using bootstrap for a while until I found http://bulma.io now I can't stand bootstrap.

Still bootstrap has been amazing over the years.


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.


That's a fair point (issues closed) and is actually pointed out on their comparison to Bootstrap page: http://bulma.io/alternative-to-bootstrap/


They're going to have to drop all their flexbox language once Bootstrap 4 leaves beta.


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.


How is Bulma different in that regard?

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.


> bootstrap is not composeable

Definitely share that pain. Is there a mature framework that solves it ?


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.

https://material.io/components/web/docs/architecture-overvie...


>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 Javascript is great

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.


Sometimes styling bootstrap is Super frustrating.

Same with foundation and semantic UI. Bulma and other small libraries are much more flexible in this regard.


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.


That's a feature and reason for using smaller libruaries because if you only need some pieces why include everything.

I find full frameworks like bootstrap or quasar to be nicer to deal with.


Looks good. I'm going to try bulma for my next project


Why do you prefer bulma?


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.

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...


> 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.


I've just started using Bulma with Angular. I don't need or want any javascript, but a pure CSS framework, which Bulma is.

Edit: And can be easily customized.


It is bloat. Until you meet a CSS preprocessor.

https://github.com/kbariotis/kostasbariotis.com/blob/master/...

I can just include what I need and override what I want.


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.


This.


For me, the bloat isn't as big a problem as the fact the 3.x is unmaintained and has at least one known security vulnerability.

https://github.com/twbs/bootstrap/issues/20184#issuecomment-...


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.


Calling that a security vulnerability is quite the stretch.


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."

https://github.com/twbs/bootstrap/issues/20184#issuecomment-...


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.


<3


Accessibility is another benefit from using Bootstrap. From someone who "hated" bootstrap in the past, this feature is the most significant for me.


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.

[1]: https://getuikit.com/docs/


1) There are tools to do this for you in any project :).

2) Bootstrap 4 includes dozens of utilities like these and more. Still have some to add, but there are tons.

3) Our theme state is busted in the beta it will be there for final. Open to feedback!

4) v4 has cards. Spinners are slated for v4.1. Toasts are slated for v4.2 I think. Peep the project pulls page :).

5) Everyone else does amazing icons. We pulled our icon font out long ago in v4. Use any SVG library.

6) That’s a solid idea. Care to open an issue for it!? :D

Take a look at the new v4 beta docs and let me know what else is missing or cumbersome for you, please. <3


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.


First impression of this: a blank page. Ok, another javascript only website. Let's authorize it to see this the fanciful app we have there.

And nope just text. Grey low contrast text.

Once you change the stylesheet the components look ok. Still lot of let's-replace-icky-tables-with-divs.


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.


What an irresponsibly named package...


Been staring at it for like 20 seconds and I don't see it. Looks like a normal name to me?


The name conflicts with https://developer.apple.com/documentation/uikit

Though IIRC, Apple's UIKit came out a year after the web UIkit.


This seems to have been released in 2013 (correct me if I'm wrong), long after Apple's.


    .uk-list>li::before, .uk-list>li::after {
    	content: "";
    	display: table;
    }
Yikes, it's this mixing class/element/combinator-style styling that BS4 did away with. Granted, some of it was still in 3.


Came here to say this. Just started using UIKit and it's awesome.

Personally I agree with the complaint about BS that all sites built with it look similar and honestly, bland.


2) those classes sound suspiciously presentational in nature. Does that concern you, or have you decided the benefits outweigh the drawbacks?


UIKit offers both Sass and Less versions - if you want semantic classes, build your own, by extending the presentational ones.

A framework really can't offer semantic classes, since it doesn't know the semantics of your app/page.


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


Um, you may want to look at your home page on an iPhone.


Thanks for pointing out. I need to test responsiveness. It's just 2 days of work, so it's still WIP.


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.


Hey there, thanks for your project. I look forward to the release.


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?

[0] https://github.com/styled-components/styled-components

[1] https://github.com/paypal/glamorous


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

  classnames(styles.btn, {
    [styles.active]: isActive
  })
to

  ({ isActive }) => `background: red`

Which lives in a totally different file.

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 use glamorous and with flexbox it was so powerful that I stopped using any CSS frameworks.


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?

https://www.webreflection.co.uk/blog/2016/04/22/about-jquery


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.

In short, yes, and we'll get there in time <3.


That's great news!

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.


> We'll be working on moving on from jQuery.

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.


Bootstrap4 uses jquery slim, so not much bloat.


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!

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.

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.

I don't really understand the value added in your personal attacks.


>"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.


>What sort of substantiation do you think I'm missing?

All? Everything you notably had to add in this comment?

>using a shitty library

>The time for jQuery is long past

Easily-found examples of opinion without substance.

>probably selling my information to advertisers

You think Bootstrap JS plugins are selling your information? I suggest you take a glance at the open source code.

>cognative [sic] impact from having to use jQuery to interact with Bootstrap

$(div).modal()? I'm ok with that level of cognitive impact.

>I didn't issue personal attacks

So the "people like you" was entirely impersonal? Forgive my misunderstanding.


>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.


>If we really need to go over why jQuery is a shitty library, well, see the link you responded to in the first place.

I already pointed out that article's shortcomings. You responded with calling jQuery "shitty" and a personal attack.

>You're probably using React or Angular

Oh sure, I didn't suggest using jQuery with Angular. Please reference the title of the post for the context of my argument.

>Yes, "people like you"

So, a personal attack. I'm glad we now agree.


> So, a personal attack. I'm glad we now agree.

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.


Go back and read it again. I agreed that it was impersonal. Please leave us out of your nonsense.


So the set of "people like you" is exclusive of "you"?


[flagged]


Notably unable to provide a substantive answer, just more petty insults. Let's not.



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.


node-sass uses precompiled binary unless you're on a version of node that hasn't had a published binary or one of the few other reasons.


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.

http://caniuse.com/#search=grid

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.


Yup, Johann is going to slowly tackle rewriting plugins in vanilla JS. That’s a big task, but we’ll do it in time.


it would be cool to have them written in typescript.


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.

http://semantic-ui.com http://react.semantic-ui.com


Semantic UI is not very complete because it still seems to lack good support for keyboard navigation. This has been a long-term issue[1].

[1] https://news.ycombinator.com/item?id=12545727


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"


For a backend developer, I find bootstrap and Semantic UI brilliant.

I mean I can write CSS from scratch and make it responsive, but it generally looks awful without having a designer.

But using bootstrap I can use a default layout, and the default components and it looks respectable.


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.


Switched from Bootstrap to Semantic some time ago. I like it more, but development seems to be very very slow.

Took a look at Foundation, and the new XY Grid is really really nice and much better than the current Semantic grid.

https://www.youtube.com/watch?v=Xl5DjEzKn1g

I especially love

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.


That would be "col-sm-4 col-md-6 col-lg-2" on Bootstrap with similar results.


Didn't know, was that also in bootstrap 2? Perhaps it's time to come back.


I am shocked to see that font awesome isn't even mentioned as a choice for icons considering its popularity:

https://getbootstrap.com/docs/4.0/extend/icons/

Then again I am equally shocked that there are so many competing icon sets that look promising.


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.


Font Awesome is mentioned in the migration notes.


I've been using BS 4 Alpha for a while now, this is great news. A million thanks to mdo and the rest of the team.


    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
The css given in their docs has an invalid integrity hash

This is the correct hash:

  sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M
Edit: someone has already filled an issue, beating me by 3 minutes: https://github.com/twbs/bootstrap/issues/23284


Fixed! Sorry about that :).


We love the alternative http://tachyons.io/

Functional CSS helps us maintaining large scale component-based project fairly easily. You have to know CSS though.


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:

    <footer class="bg-white black-70 ph3 ph5-ns pv5 pv6-ns bt b--black-10">
...it's the reason we moved to modular CSS instead of having a style attr on every element.

It has its place, but something like Foundation is more appropriately considered an alternative to Bootstrap.


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 :(


Have been using Bootstrap 4 on production at https://www.maplenest.com for almost a year now.

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.

1: http://hay.github.io/valenski/


Hey, that's awesome! Reminds me that Bootstrap started over six years ago from a Less variable and mixin library (http://getpreboot.com).


Interesting, i didn't know that! I guess my little library will probably will be a large framework six years from now then ;)


Love the new revamped form layout and possibilities. Can't wait to start using BS4.

Congrats and a massive thanks to anyone who has been working on this fantastic project.


Is the new 'tooltip with HTML' feature SEO-friendly? Wouldn't the HTML markup obscure the text?

  <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-html="true" title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">Tooltip with HTML</button>
https://getbootstrap.com/docs/4.0/components/tooltips/


does bs4 now have an easy way to add spinning icons to a button?

in bs3, there was no easy way, you had to basically use javascript to achieve it.

<button class="btn btn-default btn-spin">Click Me</button>

I been waiting for something like this to be achievable for some time now.

Bulma has this perfected and it really is handy.


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...



Sweet, thank you. Hopefully it is out sooner rather than later.


The advent of utility classes signs the doom of Bootstrap. Going down this road leads directly to universal.css (https://github.com/marmelab/universal.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.


With Flexbox and Grid I found less and less reasons to use Bootstrap.


You'll be happy to learn, as mentioned on the linked page, that BS4 is rewritten from the ground up with Flexbox, then.

I personally don't work on any sites small enough to ignore all the browsers without Grid support yet.


at the moment I'm luckily doing React-Native stuff. Feels like doing web/phone-gap stuff but without the need of (old) safari webviews, he he.


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".


I originally used bootstrap 3 for my food side project. I did have some issues with customizing and sheer size.

I eventually moved over to bourbon.io with the help of one of the core contributors.


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!


+1 to semantic UI, very well designed and more customizable, although their build process is more complicated.


I haven't used bootstrap 4, I've actually kinda moved away from Bootstrap (which I've used in a couple production products) for Semantic-UI.


awesome, congrats to everyone who's worked on this. It's been a long time coming, but I imagine it will be very well worth it.


Anyone got a working requirejs example? does it need a special shim

I'm getting a "Bootstrap dropdown require Popper.js" error


Frequently prototyping sites and always amazed how much value bootstrap adds. Thank you for all the work done!


Is it safe to start using in production?


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).


Personally prefer Foundation but glad to see Bootstrap maturing from the eternal alpha version. :)


Can anyone comment on what is new? What to try in 4?


https://blog.templatetoaster.com/bootstrap-4/

The thing I'm most excited about is the flexbox grid.


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.


You know that BS is much, much more than a grid right?


You're too optimistic. It'll take forever for the browsers to catch up, then the users.


What does HN think about zurb foundation?


$99 for such simple themes is overpriced


Nice redesign! :)


Nice :)


I love how you have ads in the documentation! So helpful!

What's next, ads in the source code?




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: