Hacker News new | past | comments | ask | show | jobs | submit login
Twitter's Bootstrap hit 100,000 stars on GitHub (github.com/twbs)
200 points by mosen on Sept 21, 2016 | hide | past | favorite | 84 comments



Bootstrap is a lovely little thing. I use it for all new projects, as it kindly stops me from being nerd-sniped by CSS features and cross-browser comparability quirks. I usually end up needing to supplement it or replace it eventually, but it gives you so much for so little.


This!! All my little dashboards and apps I use bootstrap for them initially. Once they've come to a suitable position where the bootstrap framework gets in the way by being a little clunky/big/not specialised enough in certain ways/just looking boring (:D) I go ahead and rip it out. But that feels like the whole point of a framework called bootstrap right? Like its name is literally its purpose :).


How do you rip it out if half of the HTML code is written only to suit Bootstrap?


I'd like to know, too. I've been using bootstrap in a couple of places and every time we change a page to use it, it feels like it'll be 10 times harder to rip it out later.

Does anyone know of an scss-based UI framework, where I can just call mixins into my css? Or is that even possible with bootstrap?

Adapting html to a UI framework's code feels like a completely upside down approach.


Ok this is an excellent question. The way I do it is by first converting stuff to semantic names. If it's a somewhat serious project I'm likely to have done that from very early on. I use a method similar to https://www.sitepoint.com/sass-semantically-extend-bootstrap... to do this.

Later, I start converting this stuff to be what I actually want in either a custom CSS or by integrating some other framework.

Note though. I explicitly mentioned this is for my little dashboards and apps. When I start this process, pages will look broken from time to time and there might be pages that look Frankensteined. I've never done this on a serious app although I want to do that for one client I'm consulting for. Since I wrote all the code myself, here's my speculation on how I'll do it.

Since I have a fairly structured way of arranging my divs and my forms, I'm going to hack together a parser using beautifulsoup/htmlparser to get the bootstrap stuff out and convert those to semantic names. So it'll be something that goes through a file, and then tells me it found a div.row here (show me the surrounding lines to get me an idea of where it is) and then ask me to input the semantic name. It'll spew out the sass files I want and change the jinja templates.

From there I'm going to attempt to plug in material just because I like it so much :D


That seems like a lot of trouble to go through, to use a UI framework which is supposed to save you time. :/

Do you have any recommendations on a better, leaner scss UI toolkit?


No I'm afraid I don't. You are right that this is a lot of pain for a UI framework that's supposed to save you time. But because I've done this a few times over it's become fairly simple once it's coupled together with some vim macros and snippets. But it's not a very good workflow that someone else can adopt quickly. I just found bootstrap to be super comfortable to get started and I also built some generators that auto generate templates for me when I work on my little projects. When I wrote those I made them to use bootstrap and I can't be bothered going back to change them now


If you download the source, Bootstrap is all Less[0] with an official Sass port[1]. For v4 they're moving to Sass too.[2] :)

[0] http://getbootstrap.com/css/#less

[1] https://github.com/twbs/bootstrap-sass

[2] http://blog.getbootstrap.com/2015/08/19/bootstrap-4-alpha/


Zurb Foundation.

Though it is, literally, a foundation to build your own look-and-feel on.


Bootstrap is bloated and identifiable within a second of opening a webpage, it's eventually removed from every project that goes anywhere. But it's a slow and painful process, because it has hooks in all over the place.

It's better to start out with some very simple css boilerplate, the app is new it doesn't need to look like Twitter... if the app is new it probably shouldn't look like Twitter anyway, it's current-year.


Someone set up a hot or not style web app that asked whether the screenshot was of a bootstrap site or not. It was harder than you give credit for, and interestingly it was hard both because many Bootstrap sites don't look like stereotypical Bootstrap, but also because many non-Bootstrap sites do look like stereotypical Bootstrap.


For anyone who wants to try it:

http://www.bootstraphero.com/quiz


Haven't you heard? It's now a popular trend, to claim that you do things differently just to be different, even though it doesn't make logical sense, and takes a lot of work. We call it the hipster hunger games.


It's an unpleasant process.


Bootstrap is great and I'mma letchu finish, but http://semantic-ui.com/ is my favorite and I think everyone should go take a quick look.

You might just like it too.


It's kind of ... heavy? Comparing minified files:

Bootstrap [1]: 118 KB

SemanticUI [2]: 537 KB

Don't forget to add the JavaScript. I know GZip is a thing, but still...

[1] https://github.com/twbs/bootstrap/blob/master/dist/css/boots...

[2] https://github.com/Semantic-Org/Semantic-UI-CSS/blob/master/...


If you are using LESS or Sass, it's really not hard at all to only include the parts of Bootstrap that you need. In my experiences, I often need just need maybe half of it and don't bother much with the Javascript stuff. I don't think Bootstrap really has performance or size as a first priority. It's really just a big toolkit, ready to go so you can whip out a functioning app.


This is true of a lot of frameworks. I've honestly not been a huge bootstrap fan, and Foundation 5 and 6 also can be built with SASS and you can easily remove components you don't use.

If you're trying to maximize compatibility while also get designs up quickly, any modern framework is preferable to no framework at all.


I've used semantic UI before and I loved it. But I'd never use it for anything else but a desktop use case. Apart from the css size the render time is very, very slow.


The first time I looked at semantic-UI, I honestly thought it was a joke. "Anything can be a <button>, just throw this class on it!" I see they've toned down their "just use divs and spans" examples a bit, but many of their examples are still terrible from an accessibility standpoint [1] and are anything but semantic.

[1]: http://semantic-ui.com/elements/label.html


Semantic UI author here. The thing I think most important in considering SUI over Bootstrap, is its capacity to be themed/extended.

See our examples of GitHub layout clones in SUI (be sure to hit paint can icon in top right to swap in other themes)

Modern GitHub http://semantic-org.github.io/example-github/index.html

Classic GitHub http://semantic-org.github.io/example-github/index-classic.h...

SUI is designed with 3,700+ variables under the hood, and a six level deep theming system (site default theme -> site packaged theme -> site user theme -> component default theme -> component packaged theme -> component user theme).

It becomes very possible to build large codebases around SUI that can be extended over the course of a startups growth that can build all of the company-specific changes purely in theming variables, custom components and css "override" files. After setting up your core UI in SUI you can simply fork our doc style guide to use as branded style guide for your company.

Deploying a new "on brand" microsite can be as simple as copying over a theme folder, tweaking things like @primaryColor @fontSize, @fontFamily, and changing some button shading to create a new variant.

With regards to the build size, most of why we are larger is that SUI includes 50+ components. With our gulp pipeline you can narrow it down to only the components you want. There's even a PR that I'm looking at which, when merged, will let you specify only the specific parts of a single component you want to include in your build, narrowing down file size even more.


> be sure to hit paint can icon in top right to swap in other themes

I don't see any paint icon.

EDIT: Found it. I thought it was a trash can.


Also, SemanticUI's official React component library is one of the best and well made component libraries I've come across: https://github.com/technologyadvice/stardust


Thanks, the last time I looked there was no real support for React in combination with semantic-ui. I will try out this one.


Seconded. Semantic-UI is for practical work: if you need a reasonably good-looking app/site right now, go with it. You will be laughed at by purists (so many divs! large! suboptimal!), but you'll get the job done quickly, and they won't.

Also, Semantic UI is the most complete library that I've found. If you build an app, that is really important, you don't want to find out one day that there is a gaping hole because a certain widget hasn't been implemented.


How is Bootstrap not quick? They have sample code for basically every possible scenario out there.

I'm basically a novice programmer and I've built web apps with it and Web2py within an hour or two.


It is, but Semantic UI is better because it has a more quality design and more ready made, flexible modules to chose from.

Both are great, but if you can, pick Semantic UI. I love it.


Could you provide some specific examples? That's almost word for word what people say about Bootstrap, too, and it'd be nice to know what shaped your opinion.


Cards: http://semantic-ui.com/views/card.html vs. http://v4-alpha.getbootstrap.com/components/card/

SUI is more compact, aligned and feature rich.

Modals: http://semantic-ui.com/modules/modal.html vs. http://getbootstrap.com/javascript/#modals

Again, here my vote goes for SUI, it's cleaner and better designed.

Untreated Bootstrap is so widely used that without extra styling it looks just another UI with no personality. Design is a sensitive, subjective topic however. Sometimes you want that crude industrial look that Bootstrap has :)


That basic modal semantic ui is using is simply fantastic. Large file size or not, this is definitely on my list of frameworks to try now.


Dont't forget that with components turned off and with gzip turned on it can be around 80k.


It's more complete than Bootstrap? I haven't done any research but I'm sceptical as there are so many Bootstrap-compatible plugins.


Yes. Use it with care, file size is indeed more bloatish. If you need plugins for bootstrap, then you are probably not using it properly. Bootstrap is just a scaffolding framework you should replace after a time.

Semantic UI is a production ready app UI framework.

Bot have legit uses, but I think they cover a bit different use-cases.


If I'm building a small in-house intranet with no design resource and a plugin provides a good solution, then why am I using it "wrong"? Isn't that the kind of thing Bootstrap is perfect for? I'm certainly not going to spend much time optimising it.


It was just a general feeling because Bootstrap is intended for scaffolding and getting started fast. Not sure what plugins do you use, but for example Semantic UI has lots of UI already built in that you might find in third party plugins for BS.

> I'm certainly not going to spend much time optimising it. if it's a quick hackish tool for your team then it's certainly fine

Every use case is a bit unique. I've built apps with bootstrap, but I gradually removed it later because I simply rewrote everything I used from it.


There are pros and cons of Bootstrap just like there are with all tools.

As an example, DataTables works out of the box with Bootstrap and Foundation, but not with SemanticUI. Same with Select2, Symfony, JetBrains IDEs.

The more bespoke your application, the more Bootstrap will either be useless or counter-productive. But if you're building a standard UI, Bootstrap is great. It's easy to find junior devs who can use it, and there's good documentation and support.


>Bootstrap is just a scaffolding framework you should replace after a time.

I've never heard this recommendation. Why would you waste time on a framework you are never going to deploy to production?


I've also never heard this. And IMHO this is very wrong way to think about it. Bootstrap is a comprehensive set of well designed and coordinated UI widgets and paradigms. And it's all customizable, so you don't have to get stuck with that "bootstrap look".


Because it's way faster to test ideas and also look reasonably well. However, over time it will get in the way and you'll be better off extracting the stuff you actually use. At least it was my latest experience with it.


That's an impressive set of UI elements, and impressively consistent.

But their use of jQuery in front page examples hardly inspires confidence. I tried to find out in a few clicks whether jQuery is required, and couldn't.


I made the switch about a year ago and love it. There are some edge cases that you run into every so often but on the whole, it works great. I also appreciate that it is more minimalist than bootstrap.


It seems potentially cool, but the propensity for their docs to seem to assume that I'm going to have my inspector open to poke around at their classes and HTML structure is pretty annoying.

Specifically: http://semantic-ui.com/examples/grid.html


Understanding grid on Semantic UI has been very difficult for me. I just couldn't get it to work. And also there aren't many tutorials. Since I was spending lot of time, I gave up and used Bootstrap, whole thing was finished in 2 hours.


semantic-ui has some nice components and their look and feel is nice, but it breaks in a lot of ways when you try to create something yourself. This is the big benefit of BootStrap; it's robust and lets you fiddle.

It's not a big knock on semantic-ui's part; there aren't a lot of products that don't break within an hour or so after I start using them, it is however, a big plus to bootstrap that it rarely does break when I try something.


When it gets real keyboard support, I'll start liking it.


What do you mean by real keyboard support? I'm genuinely curious.


Go to http://semantic-ui.com/ and try tabbing through the page. Here are some things you might notice:

1. The menu button doesn't get focused (or they disabled the style that makes focus apparent). It's not possible to open it with the keyboard either by pressing space or by pressing enter.

2. Tab a few more times until you get past the BEM and SMACSS links. Notice how those three tabs can't be selected with the keyboard?

3. Sign up button has no obvious focus.

4. Dropdown menu cannot be accessed with keyboard nor does it have a focus style. The same applies for the buttons in that area as well.

5. Many of the elements in the "Unbelievable Breadth" section either don't allow you to focus or have styled the focus in a really non-obvious way.

Basically, it looks pretty and you can use your clicker, but Semantic "UI" screams to me "works for me so fuck everyone else"


Couldn't agree more, this framework seems like a misnomer. How can you call it "semantic" without making it accessible at even the most basic levels? Bootstrap runs circles around this framework in this regard.


Agreed, semantic has helped two electrical engineers I know ;) throw together a somewhat decent website and demo a few times. It's really nice.


My personal favourite is Susy. http://susy.oddbird.net/


Susy is nice, but note that it's just a very fancy CSS layout calculator. Bootstrap, Foundation, and SemanticUI are full-fledged frontend frameworks. They're incomparable.


It looks nice, but that website is making my laptop sweat, so no thanks...


Bootstrap? No one uses it any more, it's too popular.

-- HN whenever Bootstrap comes up (paraphrasing Yogi Berra).


While we're plugging our favourite Bootstrap alternatives, I just want to give a shoutout to Bourbon: http://bourbon.io/

I find it a lot more flexible than Bootstrap, but equally useful for fundamentals and cross-browser support. It is also less opinionated about the HTML markup and styling, at the cost of requiring more setup (rather than just, say applying classes) than Bootstrap. But with the additional modules of Neat, Bitters, and Refills, you can get the same sort of UI suite going quite easily.


This is apples vs. hammer comparison. Totally different tools for different purposes.

Bootstrap is for copy-paste website/app sketching and bourbon is for speeding up SASS coding. I tried it, but I ended up using 1-2 functions of it, so it got dropped.


Please, stop referring to it as "Twitter" Bootstrap. The "Twitter" part has been ditched since - idk - 2014


In fairness, the Github org is still called "twbs".


It's not "still" called "twbs".

It was called "twbs" when they moved the project out of the "twitter" organization as a way of saying "hey! we love our past at twitter!" :)


Loved it, but doesn't it look like development has stagnated with version 4 still being in alpha?


There was a discussion about this a couple of weeks ago https://news.ycombinator.com/item?id=12435425


Well deserved!

I remember that before BootStrap came to the scene, we used to work with BluePrint CSS. BluePrint gave a nice canvas and concealed all the IE6 related issues. However, once Google Chrome became mainstream, it was time to move up to the next level. BootStrap emerged to the scene and completely won over so many hearts. The world is a better place because of BootStrap! Many many thanks for the team that put this together.


Is this number 1? I remember there was a rankings page but I can't seem to find it.


Second (in terms of stars); "FreeCodeCamp" has over 170k, because part of its onboarding encourages you to star the repo.


That's more than double the stars jQuery has: https://github.com/jquery/jquery


Wait, are we talking about SemanticUI or Bootstrap here?


Bootstrap - was this meant as a comment thread reply?


Bootstrap is awesome, but initial loading of my apps was taking a while. I reconfigured to use the Skeleton framework. Not nearly as feature packed, but works amazing well at a very tiny fraction of Bootstrap's size.

http://getskeleton.com/


I just like the neat and intuitive column block classes. I would have never done something so organized myself.


Which project has most stars? Is there a list?



I'm surprised how many stars Font-Awesome has. If you consider that using fonts for icons is an anti-pattern the fact that a font icon is so popular is mind boggling.

p.s. don't get me wrong I use it myself


Unfortunately styling SVGs is still not particularly convenient yet.



Foundation 6 > Bootstrap 3. Especially if you need easier customizability.


Any chance you could provide some details?


Doesn't Foundation require jQuery? Seems like it's a non-starter for anything written in the past 2 years. Maybe Bootstrap does too, I haven't used it in ages.


Really? I've subscribed to a few web SAAS apps recently and they all seem to have most of their requisite jquery (in one case, quite a bit of the whole thing) compiled into their app.js.

What are people doing? Going commando?


Using React, other frameworks with virtual DOMs. jQuery isn't as useful for managing vDOM's :)


Fair enough. I don't do a lot of event dispatching (well, bubbling), so I haven't found it a clear win for my use case, but it's only 10k more than jQuery (gzipped), so I can see that it would be good for a lot of them. As I move to something more componentized instead of the goulash I have now, I suspect that this will change.


Well deserved, congrats!


Love it. Just gave it the 101120th star.


I'm also one of 100,000


Well, NOW I'll use it


1 star for every KB it takes up?




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

Search: