Why don't you use Bootstrap?
punkchip.com
punkchip.com
Yet on the web, you are criticized for not being different.
I call B.S.
I don't have to teach my users what a hamburger menu is because they've seen it elsewhere.
My users think my sites look good because I let professional designers do the heavy lifting. Because my sites look like many other sites, they are comfortable, easy to use and not jarring.
The only people who care that you've used Bootstrap are other web developers. And it's probably not because everything looks the same, it's because you did it the easy way. You're supposed to walk up the hill backwards in the snow both ways like all the old-timers did.
Guess what, your clients want you to do it the easy way. The quicker you get the design done, the quicker you can move on to other things that add value to the site.
Also, the "bloat" arguments that I keep seeing are kind of no-op arguments, used against languages, operating systems, applications, etc. when you don't have useful criticisms. "Bloat" means, "it has features I don't use". Which is true of most things that have been in development for a while. It also ignores the ability to roll a custom Bootstrap which is missing the stuff you don't need. Sure there are some inter-dependencies, but nothing too offensive.
I like that we now have a higher level abstraction for UI components. I hate it when desktop application designers throw together their own UI components and ignore the OS guidelines and API. That's not to say there isn't room for innovation and novel UI concepts. Just that if you're building a thing with buttons and tables and forms and crap like that, it probably doesn't need to look completely unlike anything else that has ever existed...and it's probably bad design if it does look completely unlike anything else that has ever existed.
Not necessarily true, even ignoring games (which are a whole 'nother bucket of filth) deviating from Apple's guideline and creating your own aesthetics can work nicely.
It is a huge amount of design and implementation work, especially if you want to match the spit and polish of the built-in solutions, but because iOS applications are "full screen" it can in fact work better than on a desktop: there's no chrome with different aesthetics around.
Tapbots has been pretty successful at building up and using their own non-native aesthetics. They're completely insane though, their attention to detail is even higher than the platform's.
Tapbots has a certain aethetic. But take Tweetbot for example. It uses a navigation bar. It uses a tab bar. It uses a vertically scrolling table view. Tapping a table cell brings you to the next view with same animation every other iOS app uses and the back button is in the top left of the navigation bar like every other iOS app. Design is more than looks. They have made it look great and unique whilst making things work in a way users are familiar with.
Tweetbot 3 has dialed back the custom behavior and aesthetic to match iOS7, but Convertbot and Calcbot have not, neither has Tweetbot/Mac.
> Tapping a table cell brings you to the next view
Tapping a message cell opens an action drawer under the cell.
iOS7, iOS8 didn't change the aesthetics much.
"Innovative designs which defy conventions" are also UX nightmares. Remember the old Jakob Nielsen maxim about how your users spend the vast majority of their time on other Web sites before you get too clever.
Perhaps Bootstrap isn't a good fit for their team (there are many UI frameworks), but if you're developing each of your MVPs from scratch, I'd have to argue that your idea-to-business engine is running inefficiently.
Additionally, the out of box cross browser support that you get from Bootstrap will be a big help in ensuring conversion on an e-commerce site, without spending heavily in testing.
Oh you'd be surprised ...
For example, I am currently working on a project that uses Bootstrap, but heavily customised, but with vanilla CSS. So instead of using less and changing values of variables, they used the vanilla CSS version of Bootstrap and then wrote a bunch of overwrites manually and then ... stuff.
I am not happy with my predecessors on this project.
I'm going to use that term. As someone who's had to maintain Bootstrap/Pure.css sites with:
- styling done half in visual-based classes added to HTML
- massive amounts of unnecessary block element nesting
- hacks to work around browsers we don't support
I've spent a bunch of time in 'reverse development' before we could achieve whatever we needed.
Doing your own styling in 2014 is less work than using bootstrap. Use SASS for mixins and border-box and go for a modern, flat look. Results will look better than Bootstrap and you'll always be moving forward.
1. Use Bootstrap and don't do much customisation, thus making something that looks a lot like a Bootstrap demo site.
2. Don't use Bootstrap because all Bootstrap sites look the same.
There's a third path - use Bootstrap, but only as a foundation. Customise it. Bootstrap can be used to underpin really good design work. You only need to spend 5 minutes on https://wrapbootstrap.com/ to see some things that really don't look 'bootstrappy' but still have all the advantages of a well tested, well understood toolkit.
This is, however, very much a follow the leader industry, where the purportedly innovative designs are all follow the leader. Right now the trend is overwhelmingly for the overloaded scroll, the images that fade in on scroll in, the fixed back images, the hero board (a lot of these came into parlance via the NY Times Snow special feature which was quite innovative at the time. Similar to how AJAX gained broad awareness with Google suggests). These are absolutely cliche at this point, but it is held as the high point of design. In two years it will look positively beginner.
This is the key point: it's all about your users. Most people out there in the real world just want something that looks decent and works reasonably well. They don't know and don't care whether your site was made with Bootstrap or uses Erlang or whatever.
I did this and gave up fairly quickly. The amount of time I was spending adding and removing code was brain numbing. I'd start with it as a prototype, completely stripped down. Soon my clients where asking for things Bootstrap couldn't handle, or didn't come "Stock" as they say. Now I have a foundation (Bootstrap) which needs heavy modification and soon, it's completely bloated.
I decided to just start with a robust set of media queries and then build my site from there. I can control the code, the UI/UX and pick and choose which plugins or design patterns I want to use. For me, this has been the best option. Does it take a little longer? Sure, but in the end, I control all the code and can pivot and modify the code a lot faster to suit my clients. It also saves time having to dig through oodles of documentation to try and find out if some functionality my client requested is supported by Bootstrap and how to implement it.
You can control all the code in Bootstrap. Download it, edit the hell out of it. That's not really an advantage of rolling your own.
Does it take a little longer? Sure, but in the end, I control all the code and can pivot and modify the code a lot faster to suit my clients.
You can modify your own code faster to start with, but really that's just because you haven't learned Bootstrap. Once you know it well it's no harder than changing your own code.
It also saves time having to dig through oodles of documentation to try and find out if some functionality my client requested is supported by Bootstrap and how to implement it.
Digging through Bootstrap's documentation is pretty much always going to be faster than writing your own code.
Building something in-house is very, very rarely a better option than spending time learning something that tens of thousands of people use every day. You simply can't test your own code to the breadth and depth that the community goes to with Bootstrap. This is the same reason why we don't all roll our own jQuery equivalent or SASS compiler. Open source's big advantage is that it's a collective effort that we can all freely build upon.
Lastly, one massive advantage of Bootstrap is that other people know it. Once you get to the point where you're working on projects that need more than one front end developer that is a huge advantage over an in-house library because all the advantages you see for your own code the other developers will see for theirs.
Chrome 38 on OSX: http://i.imgur.com/hegUCFO.jpg
Tweak colors, fonts, border-radius, box-shadow and the like to your heart's content.
Or, set these variables in a SASS file and include it before the main Bootstrap SASS. Bootstrap will happily use your variables instead of the defaults.
The more time and resources you spend and the better the people spending that time are, the better your result will be. Bootstrap, like a vanilla wordpress theme works even with very limited effort, but obviously it's not ideal and it looks like everything else.
If you've got a great designer spending 100 hours on a theme, the result will be much better. He might use bootstrap or something else or nothing. The more time and resources are spent, the less the defaults of the framework impact on the final result.
Comparing Bootstrap with 5 hours of work from someone who isn't great at design to non bootstrap with 50 hours of work from someone who is great at design isn't a useful comparison.
That is why the OP mentioned "Bootstrap is good if you don't have a lot of time or budget to spend on design."
Maybe you should have posted in the root of the thread, instead?
I meant that you can spend a lot of time working with bootstrap and get good results too. This is actually pretty common.
Because my time is important and I can't afford a designer yet.
1. Steep learning curve
2. Technical debt from learning curve
3. Technical debt from code bloat
3. Increased difficulty implementing unique features
But there are others that are even more important. One is that frameworks are often used to avoid learning the underlying technology that is more powerful, universal, and portable. It is falsely believed that time can be saved learning a framework instead of core coding skills. I have not seen any evidence that this is true, but like all snake oil, people believe because they want it to be true.
Also, bootstrap has minor issues that bug me: parents of dropdown menu items aren't clickable, and there is no block-grid class which is an easy way to organize looping content (e.g., blocks of text, images) into a grid.
Controls are to big, looks like they are designed for touch screens by default, nothing wrong with that, is just not what I need.
It says "mobile first" in the tag line.. but this is a trend in front-end design in general. Today it's all controls, fonts and you have to scroll down several pages to read about a paragraph's worth of information.
Almost all of them are browsing on traditional resolutions and displays. In my case, it's mobile last.
Previously for mobile versions of sites they would simply check the user agent and if you had a mobile browser they would display the terrible/broken/useless mobile site (e.g. m.example.com). Most mobile browsers built in "Display Desktop Site" functionality to fix this problem.
However now with Bootstrap instead of using the user agent they use the screen size. So "Display Desktop Site" is ineffective and you're left using the terrible/broken/useless mobile site (which still has missing content, breaking content, and dead links even using Bootstrap).
This type of thing is the main problem: http://ageekandhisblog.com/css-how-to-easily-hide-content-on...
The main issue with Bootstrap is that escaping the mobile version is almost impossible.
If you code using responsive design, not only your site will work on mobile devices and desktop but it will also work in future aspect ratios. Lots of people were doing pixel perfect design on mobile sites for iPhone but when that iPhone 5 came in with the new resolution all those designs broke. Blackberry Passport device uses an rare 1440x1440 resolution, if you do pixel based alignment or fixed layouts you will be in trouble in all those marginal devices that together amount to a large percentage. Specially when dealing with Android devices.
So if you begin from the start using bootstrap the way it is meant to be used which is by following a responsive design paradigm then you can forgot the clunky hack that is "display desktop site".
Instead com arguing for a agent sniffing solution, we should all be coding for resolution and depth independence.
Your main issue about bootstrap and escaping mobile version is antagonist with the way it should be used. There should not be a mobile web and a desktop web. There is only one web and media queries are your friend.
If you know all this I am talking about and that would be pretty normal since I spoke nothing but common knowledge, then you know that user agent sniffing and mobile version of sites are all legacy stuff. Coding with modern practices is much easier and less trivia filled than it used to be.
This is why iOS8 added a "Use Desktop Version" feature to Safari.
The cartoon near the bottom of the page [1] illustrates what I don't think is a common reality. In it, we see the developer adapting a designer's mock-up (rather poorly) using Bootstrap. To me, your full-time backend developers are not the target audience for Bootstrap and aren't thinking in those terms. The designer who's creating mockups in Photoshop is going to handoff that design to the developer whose task is to use their languages to make a design web friendly.
Still a nice article and definitely got me thinking about who uses Bootstrap and how they use it.
[1] - http://www.punkchip.com/wp-content/uploads/2014/10/580-boots...
That statement is false. I'd say Bootstrap is perfect for almost all full-time developers. The only exceptions are the PSD slicing css "developers" trying to implement things like that cartoon.
Most "full-time developers" work on projects where functionality trumps style. Bootstrap's default style is good enough for those projects and it saves us tons of time.
> Our designers strive to create layouts that best fit the business and shouldn’t be limited by what framework we choose to use on the front-end.
Name any framework that doesn’t have an opinion about how to do something. A good developer is also one that sees a design and knows what tool fits it best.
>To use Bootstrap efficiently and understand it well you need to dedicate time to reading through the documentation, digging into the source code and figuring out how to customise it for your requirements.
Again, name a framework that requires 0 documentation reading time on the part of the user.
>Bootstrap doesn’t follow best practices or good semantics
This is an opinion best served by backing up what you feel good semantics or best practices are, because often times frameworks define what those best practices are.
We've found it to be a great framework when used in the right way – Bootstrap SASS (personal preference) makes customising a doddle, and by making sure we only include components that actually get used, deployed code doesn't get too bloated. Supplementing with custom CSS can go a long way to getting rid of the "Bootstrap" look.
Exactly. This is like me, as a back-end developer, writing a blog post explaining why I don't use Squarespace.
What would be useful is if the author offered some more lightweight and semantic alternatives, such as Neat (http://neat.bourbon.io) or Semantic UI (http://semantic-ui.com).
What I like about Bootstrap is that you can change the look by trying out different themes, but regardless of which theme you use, users will recognize the layout and know how to navigate, etc. For me, having a familiar looking web design that users already know how to use is a big win.
BTW, what is with articles about 'Why I don't like technology X'? I like positive articles about what people like and use.
https://kristopolous.github.io/BOOTSTRA.386/
Now the spots where I use it look almost exactly like old-school MS-DOS! Which, for what I use it for, is exactly the look I wanted.Neither option is completely perfect, but I skew towards wanting smaller frameworks that do just what I need.
Some of these "innovative design" ideas are: video as background, overriding/breaking the back button, weird scroll animations, overriding/breaking scroll etc.
I'd rather use pure HTML site than to use something like the above. And I'm speaking as a web developer, people who are not technical are frustrated even more by these "innovations".