Thank you for the great effort. Glad that lots of small but annoying bugs have been closed (like modal shift). Bootstrap is a big relief for those who aren't, can't or don't want to be CSS ninjas.
Update : I dropped it in my project followed by s/bootstrap-3.1.1/bootstrap-3.2.0/g . Nothing broken. That's a delight !
Actually I haven't updated the blog to use that yet. We just include videos with every single release. Don't try to draw a particular conclusion—it's mostly just for fun :).
Actually, to me it screams MVP by a backend focused developer. It signals the exact opposite to me as long as it is a company of only 1-2 people. They know what they are doing but have no design chops...which is much better than the reverse.
I don't like it when people invoke "don't reinvent the wheel". Yes, if you're reimplementing standard library functionality, then you could talk about reinventing the wheel.
But a lot of the time it really means "Let frameworks do everything for you." Don't reinvent the wheel, but feel free to reimplement subsets of the wheel that aren't all too tailored to your purpose. In fact, if you're a programmer, you probably do that all the time.
Particularly when it comes to web design, there is no specific "wheel" to speak of. I'm all for using Bootstrap... as a framework, not as a template you copy and paste.
I can make exceptions for local web applications (like router interface panels) and small, one-trick apps, though.
I'm happy to let a framework do everything for me - assuming the 'everything' you speak of is done well.
Implicit in your statement is an assumption that this will be bad - I'm not disagreeing that there are downsides, but please don't hide these inside implied reasons. Bring them out and let's debate them explicitly.
Letting frameworks do everything for you usually means you're not doing anything interesting.
For many products however, these days an "interesting" interface doesn't sell it unless you are pinterest or something. 99% of the time, users are at your page/app for some level of function. Rarely is the function essentially the form.
There's nothing more loathsome to my eye than an 'innovative' user-interface produced by someone who thinks creativity trumps UX.
The number of times I want to be 'surprised and delighted' by an interface can be counted on the fingers of one hand. Most of the time I'm trying to achieve something other than appreciate the genius of the designer involved.
So how about all those Bootstrap sites that aren't immediately recognisable? Is it Bootstrap per se that causes your bile to rise or merely insufficiently customized Bootstrap?
For example - I think many of the templates here: https://wrapbootstrap.com/ are rather lovely. Do they elicit your disgust?
Thanks for that link. I use bootstrap in all my projects. One of the templates on the landing page had exactly what I was looking to do in an upcoming design. I may just buy it and save my self from some of the time I would need to spend on custom design.
Have a look at the Angular website. It is hardly anything beyond the Bootstrap style. I understand what you're saying. A lack of concern about external presentation can be a warning sign but it's not exclusive nor a reliable indicator as other commentator's have mentioned
You can write a grid system in less than 10 lines of code with Sass. You can also do a typographic mixin in 5 lines of code then customise it as you need. You can also have a icon web font set only for <i> tag in 5 lines of code. What else is there? Forms. You can reset the forms in another 5 lines of code then add stuff for [type=submit] and so on.
Why do you need thousands of lines of code when you can have a pretty nice CSS framework in less than 50 lines of code? This costs you time, money and your site will take more time to render by slow browsers.
So consider all the lines of code in Bootstrap that aren't in your hypothetical framework. They either do something or they don't. Let's assume the former because the latter implies incompetence and there's too many eyeballs on Bootstrap for that to be plausible.
So your question can be reformulated as "Bootstrap contains functionality that I don't think is needed".
If you agree that's a reasonable restatement then you can start a much more fruitful discussion if you could give a few examples and your reasoning behind why each one isn't needed.
What are you claiming the extra "thousands - 20" lines of code are for? I'm curious to know whether I need them or not.
IIRC that's where HTML5 Boilerplate started (H5BP), that developed and was used as the basis for Bootstrap.
H5BP is still available and there's a neat little packager, http://www.initializr.com/, that lets you include the parts you want and preconfigure it.
One reason to use a template system (with version control/plugins so you can modify locally and still merge in upstream changes and such) is that you can spend an awful lot of time keeping track of browser changes, standards changes, security issues, accessibility best practice, wide cross-browser testing and all the other niceties that go in to even a default template.
All this bootstrap hate is mind numbing. The simple fact is, that I was able to build a site in ONE NIGHT after work using bootstrap as the basis for my design. Using anything less featured (and less familiar to me) than Bootstrap would have added enormous amounts of time before I could release. The site in question was able to get some traction because of its timely release and I am iterating on that now and growing.
The idea that using Bootstrap cost me time is objectively wrong, as is that of it costing me money. Currently, my minified CSS and javascript from bootstrap is not affecting the page load time in any significant way. For me, using Bootstrap for MVPs has proved supremely useful, time and time again. I would not be as bold as you and claim my experience is applicable to everyone, but it is obviously very beneficial for me.
Something not often considered by the haters is that most of the time, the customers that the MVP is directed at have no clue about Bootstrap. Unless I'm building something for developers, it's usually not something they have seen before. I've actually gotten many compliments on design, when it was largely just Bootstrap's CSS.
Further, putting some structure in for SASS typography isn't the same as creating good typography. I've found it extremely difficult to create readable, custom typography in the past and I'm quite sure I am not alone.
Your "framework" gives me some kind of grid system, some structure that I can go out and create my own typography system inside of and some kind of functionality to "reset" forms. And then I can add "stuff for [type=submit]". GREAT.
Things I used from Bootstrap 3 in my MVP created in one night:
Because it has been tested on a wide range of browsers and devices and your custom CSS might not.It's exactly the same as"you might not need jQuery stuff".Yeah you might not need that but again,how many of us test our code on 50+ devices ,browsers and browser versions? So yeah you might need any tool that has a comprehensive test suite.
Because it saves time and has been extensively tested across all browsers? And there's vastly more utility to Bootstrap than just a grid, forms and icons.
It's also not an all or nothing proposition, you can simply include the bits and pieces you want to keep the size down.
No bitcoin, no money. You can see the CSS code on my sites. Change .css to .sass for the source. You should have take it as a challenge: a minimal CSS module that can be used from web apps to presentations sites. That's my idea. 50 lines of code is a good start. It should be a bit more than a CSS reset, it will have a basic grid system, one basic form style, etc.
I don't want to learn Bootstrap or any another framework, I know that there are other designers who think like me. Designers like to make their own custom stuff. That's the reason you see millions of WordPress themes out there. Everyone is different and want to see and use something different.
Doing everything with Bootstrap is not efficient. Most of the people here don't have a designer mindset, yet they flag anything that is against their way of thinking.
This particular framework took me less than a day to learn. I am proficient in CSS, but it doesn't matter so much. It is delivered by a CDN and then cached.
So, my code looks like this:
div.container
div.row.row-fluid
div.col-sm-6
[left side content]
div.col-sm-6
[right side content]
That means I can write something like:
.container>.row.row-fluid>.col-sm-6{left content}+.col-sm-6{right content}
as an emmet.io string and be done with layout.
You are welcome to style things anyway you want, but this works well. Moreover, Bootstrap features a module chooser so you can choose to not include the entire framework if that is your choice. And it supports Sass so you can accomplish what you are doing manually today in a framework-supported way.
What is important is that once I am done building my application, I can contract with any number of designers who like to build on top of Bootstrap and change its look and feel instantly. I specifically look for evidence of proficiency styling Bootstrap 3.
This to me means it is efficient.
That means designers like you who advertise "I can make your Bootstrap site look unique" can make even more money.
There is a very healthy marketplace of WordPress premium themes. Businesses build a default site, fill it with content, and apply a theme or contract with someone to build them a theme. Bootstrap is bringing the same concept to web applications.
This is the reality of design in 2014 and it would be in your interests to join the trend.
I agree with the people who disagreed with you below, so I'll try not to reiterate the points they mentioned. For example, the most important feature (to me) of bootstrap is its wide usage/testing/community across many devices. but another salient issue is that I have other things to worry about such as content. I dont want to be fussing around with these 50 lines of code (they are very important but not the bigger picture) when there there is a tried and true framework already available.
Bootstrap isn't a prototyping framework — it's made for production. This fact subsumes the points about (1) testing across browsers, (2) being community-driven (and thus scientific), (3) aesthetic standards, and (4) implementation standards.
Sure you can make your own hammer, and you can even use a non-hammer you find sitting right next to you. But you'll quickly find out that some non-hammer won't accomplish everything you think a hammer ought to accomplish. Bootstrap isn't just an invention/innovation — it is a framework.
Your question honestly is no different from "Why do we need frameworks?" And we just need to stop wasting out time asking these bloated philosophical questions that get us nowhere.
"Why do we need dictionaries?" Well, because if everyone went about their own way, they'd all re-invent the wheel a thousand times over, but we'd never see any cars.