Antony Doyle

The great Bootstrap debate


Since Joomla integrated Bootstrap into the core, everyone has been getting all excited, and then all pissed off, and then all argumentative. I figured I'd weigh in with my views, some of which I know are shared.

When Bootstrap first appeared, my first thought was that it looked cool, but how useful would a pre-built framework really be? Quite useful, as it turns out. But I never really liked Bootstrap.

first test image

I'm not going to go into all the reasons why I dislike Bootstrap. That's for another blog post. If I can be bothered. But basically, it all boils down to bloat, an unsemantic approach and default styling so awkward to override, it, ultimately, led to half the bleeding internet looking like Bootstrap.

Bootstrap in Joomla.

On the face of it, it was a great idea. Log into the admin area on any J! 1.5 site and browse through the extension settings pages. It's fucking hideous. Endless bespoke layouts and styles, conflicting designs and just poor UX in general. It's a nightmare. Since Bootstrap was built in, the admin area is a lot nicer. It's more consistent. Flows nicer. Buttons look like buttons regardless of what screen you're on. All in all, it made a huge, positive, difference.

But then it landed on the frontend.

I have no idea who decided it should also be the frontend framework. But they're an idiot. Maybe not, maybe it was just a moments insanity. But building a template for Joomla with anything other than Bootstrap is a lot more difficult that it should be. I'm fed up of having to unset core "dependancies" to stop it loading two CSS frameworks. test image Even Joostrap, a very popular (and quite excellent) starter template / lightweight template framework, which is built on Bootstrap, turns off the core Bootstrap provision and does its own thing.

What I'd love to see in Joomla! 4 is a step away from dictating what is output on the frontend. That should be left to the template. If an extension NEEDS Bootstrap, they should have the option to turn off the CSS at the very least, allowing template devs, sitebuilders etc, to style it in their own way. I can't see an issue here. There are plenty of Bootstrap based templates for Joomla, so if a user doesn't know enough to style something from scratch, or create their own overrides, then they can use of of the many templates out there with built in support for Bootstrap classes. Or just leave the extensions CSS turned on. For the rest of us, we can do whatever the hell we like through overrides and our own, custom CSS.

Maybe I'm just missing something. Maybe there IS an off switch. Maybe there's even a better way to stop the core stuff from loading without having to resort to sweeping "unset" functions in the template? I don't know. But I do know that we need to address this. The admin area is Joomla's domain; dictate all you want. But the front end? That's mine.