Emil Moe Show me something that bothers putting the emphasis on semantic markup, don't try to use JavaScript to do CSS' job, slop endless pointless classes and DIV in for NOTHING, bothers practicing separation of presentation from content, and implements proper semi-fluid elastic design, and I just might like it.
Sadly HTML/CSS "frameworks" seem incompatible by their very nature with these basic core concepts of using HTML and CSS correctly.
As outright ignorant incompetent asshattery like this:
<body class="bg-light">
<div class="container">
<div class="py-5 text-center">
<img class="d-block mx-auto mb-4" src="getbootstrap.com/assets/brand/bootstrap-solid.svg" alt="" width="72" height="72">
<h2>Checkout form</h2>
<p class="lead">Below is an example form built entirely with Bootstrap's form controls. Each required form group has a validation state that can be triggered by attempting to submit the form without completing it.</p>
</div>
<div class="row">
<div class="col-md-4 order-md-2 mb-4">
<h4 class="d-flex justify-content-between align-items-center mb-3">
<span class="text-muted">Your cart</span>
<span class="badge badge-secondary badge-pill">3</span>
</h4>
<ul class="list-group mb-3">
<li class="list-group-item d-flex justify-content-between lh-condensed">
<div>
<h6 class="my-0">Product name</h6>
<small class="text-muted">Brief description</small>
</div>
<span class="text-muted">$12</span>
</li>
... proves beyond a shadow of a doubt. 90% of the classes there have zero legitimate reason to even EXIST. If they're 'bit enough' to warrant numbered headings they are no longer "short bullet points or selections" from a grammatical/structural point of view meaning they have ZERO business in a unordered list. It is utter and complete GIBBERISH to have a H2 without a H1 preceding it, and since lower order headings indicate the start of higher order headings preceding them, where the blazes are the H3 for those H4 to indicate the start of a subsection of, much less the H5 those H5 are the start of subsections of?!? Much less that cart is CLEARLY tabular data... we have a special set of tags JUST for that purpose -- where are they?
Even their huffing EXAMPLES shows such woeful ignorance of how to use HTML properly that it is painfully clear NOBODY working on even creating bootstrap has any huffing clue what HTML is, what it is for, or how to use it properly!!!
Only negative, same manure different shovel.
By its very nature bootcrap relies on the use of presentational classes -- choosing classes to say what you want things to look like and NOT what things ARE semantically, or grammatically. It is saying "what' and not "why" which is why it is the OPPOSITE of separation of presentation from content; the antithesis of every good practice HTML 4 Strict and the creation of CSS were trying to drive us towards!
The end result is invariably three times OR MORE the HTML needed to do the job whilst starting out with more CSS than an entire page should even have in the first place, writing as much if not more CSS than you'd have without the framework, and often using JavaScript to do HTML or CSS' damned job!!!
How is that "easier"? How does that make you "more productive"?!? EVERY single claim made about bootcrap I've ever heard holds water like a steel sieve. That's the best kind... of sieve... ok, old Smothers Brothers joke, nobody will get it.
As the George Carlin joke about abortion goes, "not every ejaculation deserves a name" -- in that way not every element needs a huffing class on it, much less a half dozen of them. As I'm ALWAYS saying, if you don't know what's wrong with this:
<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark"> <a class="navbar-brand" href="#">Site Title</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarsExampleDefault"> <ul class="navbar-nav mr-auto"> <li class="nav-item active"> <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>or this:
<form class="form-inline my-2 my-lg-0"> <input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search"> <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button> </form>-- do the world a favor, back the hell away from the keyboard, and go take up something a bit less detail oriented like macramé!
The ONLY way you could believe ANY of the propaganda spewed by bootcrap fanboys is a failure to know enough HTML or CSS to have ANY business working on a website. It is a fat bloated train wreck of ineptitude filled with methodologies that REEK of failing to extract one's cranium from 1997's rectum. If you're going to slop classes that way into your markup you might as well go back to writing HTML 3.2 with tags and attributes like FONT, CENTER, ALIGN, BORDER, BGCOLOR alongside tables for layout, etc, etc, as if CSS doesn't even exist!
There's stupid, and then there's HTML/CSS framework stupid. Mind-numbingly idiotic dumbass ignorant half-witted garbage that I cannot fathom how anyone would choose to use by choice. Developers on the whole are dumber for this BS even EXISTING, much less being trumpeted from the rooftops by fanboys unqualified to even be building websites in the first place.
As I often say, "For people who know nothing about websites BY people who know nothing about websites" is not a recipe for success. Hence why I often tell people that when it comes to bootcrap, go find a stick to scrape it off with before you track it all over the Internet's carpets!
Though it could be worse, could be w3.css -- aka proof that the scam artist dirtbags at W3Fools have ZERO damned business telling others how to make sites.