It is an optional starter kit; you are free to build your own application from the ground up using your choice of CSS framework
Using Tailwind instead of Bootstrap with Breeze defies logic.
Why was Breeze created using Tailwind, which is used by 1.2% of sites worldwide, instead of Bootstrap, which is the most popular web framework of any kind for any purpose on the planet? It makes no sense.
Does anyone know if a Bootstrap 5 version of Breeze exists?
Thanks
it's Taylors framework, why shouldn't he use tools he enjoys using
Please see my longer comment below. Thanks.
@dwoosley if you really want to use bootstrap then use Laravel UI instead: https://github.com/laravel/ui
Also, check out this Laravel Breeze Bootstrap package: https://github.com/khadegd/laravel-breeze-bootstrap
Thanks for your input. I am aware of that. There is also Jetstrap, which does the same thing for Jetstream. The issue with those is that they are distributed with the blatant caveat that there is no guarantee that they will keep abreast of future distributions of the core Breeze and Jetstream modules. The X-to-Y conversions are a good start for ~exactly~ what is published today by the core modules. Granted, that is better than nothing, and I may use one of the conversion packages to get the ball rolling. --David
First, thanks for your comments, and my original post is the result of frustration. I applaud Breeze because it provides the user interface components and Laravel code that deliver a top-notch authorization module.
That said, major sanctioned modules that are introduced into a huge ecosystem such as Laravel should be done so using the lowest common denominator in other regards. In this case, the CSS choice should be Bootstrap or no specific framework or, for that matter, virtually no CSS at all. It makes more sense to distribute an un-styled or minimally styled version of the user interface -- albeit ugly -- than to implement a sanctioned module in which the user interface components must be ~extracted~ from a CSS library that is used by such a tiny slice of Laravel developers.
I fully understand that there are other options: The legacy Laravel/UI, Fortify alone and Jetstream/Fortify. But that does not, in my opinion, justify publishing such an impressive module as Breeze in such an inconvenient manner. Ditto for any impressive sanctioned module for any ecosystem.
--David
the CSS choice should be Bootstrap
There are many, many developers who will disagree with this.
What you are maybe missing is the fact that Breeze is entirely installed into your project, not buried in the vendor directories; you can change everything structural/presentational about views that it puts into the project. What is "inconvenience" for you, is not necessarily for another.
Breeze could use, in alphabetical order, Bulma, Foundation, Milligram, Pure, Semantic, Skeleton, Susy or Tacit, all of which would be convenient for someone yet a poor choice for the overall Laravel community, which I presume is who he is trying to help in the most straightforward way possible. If not Bootstrap, then nothing.
yet a poor choice for the overall Laravel community
In your opinion. Your preference for Bootstrap, I would argue, is less representative (now) of the Laravel community; so to say it defies logic is unfair.
If not Bootstrap, then nothing.
Again; everything Breeze provides is in your project for you to customise to your preference.
For what it's worth, this part of a recent livestream gives you some insight into the thought process for Jetstream (and by extension, Breeze).
Yes, this is my opinion regarding Tailwind. And it's likely the opinion -- by a long shot -- of the plurality (if not outright majority) of other developers who wish to use Bootstrap or nothing in particular. I'm not necessarily endorsing Bootstrap 5. I'm just disappointed that the user interface components* of Breeze must be extracted (or re-styled in place, which is even worse) from Tailwind. Using a more common denominator would have made a great module even better. That's all.
I can't believe that I'm complaining about something as good as Breeze. Let's call it a strong suggestion for the manner in which sanctioned modules might be implemented in the world's most popular PHP framework.
- I understand that I can create the user interface from scratch. But Breeze already has the user interface components in place, which is a great head start. Needing to backtrack from that head start is a bummer, I think.
@tykus "There are many, many developers who will disagree with this." Without giving any figures about the amount of developers who would prefer tailwind or bootstrap or any other (css) framework, it is a great, great disapointment and wil lead to a lot of frustration if migrating to a modern php framework comes with also a hugh migration path migrating from e.g. bootstrap to tailwind, just because a (small) starterkit like Breeze happens to be using tailwind. So, such a starterkit is completly useless
I don't think its as much a contrast as you suggest with your 1.2%
Bootstrap stagnated for about 8 years, and there was not really any alternative, but this is about what people will use in the future, not what they used in the past.
I reluctantly and grumpily agree with you.
@snapey -- Oddly enough, I had read that article before starting this thread. The 1.2% I quoted was found elsewhere and, as I recall, based on what is actually deployed. Not preferred. Not trending. Not being adopted. Deployed in production.
@Snapey just 1 article, already 5 years old... and Bootstrap is still actively developed on. feels like developers who prefwr bootstrap for very good reasons are discriminated by this. (it's like the apple lovers against the windows lovers)
@dwoosley I set up one with Breeze, I turned around and restyled the views with regular CSS and Bootstrap. It doesn't really take that long.
With laravel you are free to use any CSS and JS you wish.
For js, I use Fetch js.
Thanks.
I could have restyled Breeze in less time than I spent on this thread. Thanks to everyone.
Hi, dwoosley, I have read the entire thread, and honestly, I don't understand what is so hard to understand about your comment that there are so many users rambling. I totally agree with your point, and I would like to do the same as you, take benefit of the features of Breeze but removing all vestiges of Tailwind, and using Bootstrap 5. Could you please explain how you have done it?
I would appreciate it very much.
Well, I just spent two hours explaining what I tried with Breeze, but the page expired and it's gone.
Attempting to un-style the Breeze user interface was much harder and more time-consuming that I expected. Moreover, the Breeze interface without the Breeze CSS isn't worth much, in my opinion. Although I'm confident that the Breeze back-end authentication is awesome, that's not the issue here.
I did this instead: I created a barebones front end for Fortify. No Bootstrap, no Tailwind, no CSS whatsoever. And it's ugly. It has one layout, nine views and zero components, and two of those views are blank home and dashboard pages. It could not be any simpler, in my opinion. I'll gladly send the source code to you.
Like you, I wish that we had a minimalist CSS-agnostic version of Breeze. But we don't. If I had the time to create one from scratch and maintain it, I would because others, presumably like you, might use it.
--David
I like this alternative of using only Fortify, I think I will give it a try. One doubt, do you know if Inertia can be used with Fortify? I get lost with Laravel combinations, but I would like to be able to work without an intermediate API between VUE and Laravel, which is what Inertia allows (of course, without Breeze or Jetstream or Tailwind). Thanks!
I don't know. I've never used Inertia. Sorry.
Woah, a lot of opinions here. soo I thought I'd give tailwind a shot on my latest Laravel build since it's baked in. And I've been trying to drink the tailwind Kool-Aid. But IDK. I can write CSS lighting fast and the use of my own component camp feels waayyy cleaner in the markup. Id challenge 'Bootstrapping' a site is faster too because you don't have to wade thru ten miles of classes...
<button class="flex items-center hover:border-gray-300 focus:outline-none focus:border-gray-300 transition duration-150 ease-in-out hover:opacity-90 hover:-rotate-3">
REALLY?
</button>
Tailwind feels like it's driven from a backend developers' standpoint. I get you can export components and make @apply but it seems like long are the days of purest HTML and clean CSS. I remain open-minded...
I made a mistake
My suggestion to use Bootstrap instead of Tailwind is a bad idea. And selfish. No CSS framework should be used in this scenario.
Continuing ...
The more I think about this, the more I believe that the creators of Breeze and Jetstream have done a disservice to the Laravel community, and here's why:
If a company wants to implement one of those improved and endorsed authentication packages into an existing application, what's the probability that the user interface decisions -- mainly widespread styling -- that those creators implemented will match what the company already uses? The answer is this: 0%. Moreover, no sane company would want the creators of Breeze and Jetstream to set ~any~ styling standards for a new, non-trivial Laravel project.
The creators of Breeze and Jetstream have, in effect, said this: We are providing an awesome authentication framework and making it more inconvenient than necessary for most of you to use.
Unstyled versions of Breeze and Jetstream should be readily available, in my opinion. That is all I'm suggesting.
--David
@dwoosley , with that said, I 100% agree with you. They should not force a frontend framework on us. We're here for laravel and the powerful libraries that further its functionality. The rest, we will choose. Laravel is making the horrible mistake of making an officially endorsed "starter kit" achieve the opposite desired of a starter kit. The plethora of errors I have come across trying to run npm install is just madness. I was on the verge of moving to django. Good job laravel authors. Imagine the number of developers you have lost after they get stuck 10 mins into your documentation (because of node, which in just sad for a php dev).
@khatau I have one app with breeze, and I never installed node.. I re-did the css (tailwind) to custom css I like.
I will say that apps after that I have decided to not use any of the starter kits, rather I do manual authentication as per documentation:
https://laravel.com/docs/8.x/authentication#authenticating-users
Just makes things easier for me.
@jlrdw -- Same here. And it's somewhat sad.
@khatau -- Whoever created Breeze was so thrilled and proud of the styling that they simply didn't care about how it affected others. It made them look good in their mind, which was obviously more important than providing at alternative unstyled version. Making themselves happy was more important than inconveniencing others by failing -- and failing is the correct word -- to provide a bare-bones interface.
@dwoosley I think you’re missing a key point. Jetstream and Breeze are starter projects. They’re not meant to be used in existing, mature projects. So your statement of:
If a company wants to implement one of those improved and endorsed authentication packages into an existing application
…is a complete non-issue because Breeze or Jetstream are not intended to be used in existing applications.
However, if you do want to use the back-end logic of Jetstream and no front-end styling then you absolutely can do so. That’s what Fortify is. It gives you the controllers etc that you need, and then you build your own UI on top of it. Be that Tailwind or Bootstrap or Bulma or whatever CSS framework you do or do not want to use. Fortify is what you would use for existing Laravel applications.
So your frustration seems to stem from a lack of understanding that Breeze and Jetstream are starter kits and supposed to be used in new applications only, hence their opinionated styling and choice of Tailwind; and that you would use Fortify instead in existing applications to achieve exactly what you’re asking for: all the functionality but none of the opinionated styling.
@martinbean -- I appreciate your feedback.
I am not missing the point. I understand the purpose of starter kits, and I understand the hierarchy and relationships between Breeze, Jetstream, Fortify and Laravel/ui.
I am currently using Fortify. And please note that I changed my mind about publishing Breeze with Bootstrap or any CSS framework. Unstyled is better, in my opinion.
"Let's use the styling of the Breeze starter kit as the starting point for the styling of our new website," said no front-end designer on Earth. The ~functionality~ of the user interface of the starter kit is great, but the ~styling~ makes using Breeze more difficult than necessary. Breeze was created by very smart people who made assumptions about things that have no relationship to authorization. Authorization modules deal with function, not form.
Thanks,
David
@dwoosley They‘re starter kits. Not authentication packages. They’re meant to be opinionated. They’re there to give someone a leg-up on starting a site. If they don’t want to use the opinionated UI that these starter kits come with then they’re not forced to. I don’t understand your problem.
Don’t want the Tailwind UI? Don’t use Jetstream/Breeze, and build your own UI on top of Fortify.
@martinbean -- I switched to Fortify months ago for the reasons you mention. I get it.
The Breeze developer(s) could have used the Bulma, Susy or Spectre CSS framework too, I guess. Whatever gets the ball rolling.
The Breeze developer(s) could have used the Bulma, Susy or Spectre CSS framework too, I guess. Whatever gets the ball rolling.
@dwoosley Yes. And then people will have moaned it used Bulma/Susy/Spectre instead of Tailwind. So I don’t understand what you’re moaning about?
You’re not forced to use Tailwind, and solutions are there if you don’t want to use Tailwind.
This is a pointless discussion
If a quick starter kit is going to be provided, that many will say thats great to get going with for proof of concept, then it has to be based on a SINGLE css framework (alternatives are available)
Truth is, tailwind is by far and away the best choice for now and the future. Bootstrap has had its day.
@Snapey I have nothing against tailwind probably the best css framework, but I would say regular css is still better than anything. One of the problems is, someone brand new doesn't understand they have to write their own media queries.
But (and you already understand this) once you have a bunch of regular css accumulated, you basically have a library to use, just needs some tweaks, i.e., a color change.
I have done forms, tables, etc with existing css classes, just tweaked a size, color, etc.
But I agree this is a pointless discussion, because no matter the starter kit, a person can change the css to bootstrap, regular css or whatever.
Folks the css used has nothing to do with the authentication. It took me only a few minutes to change tailwind to a combo of bootstrap and some regular css in a breeze app.
Bootstrap has had its day.
@Snapey Nah 😄
It’s not one or the other. Bootstrap still has its place. The projects I work on, Bootstrap is a better fit where it has pre-built components that I can change the appearance of by tweaking a handful of Sass variables. If working on app-heavy things, then I want components like buttons, modals, etc out of the box. I don’t want to have to start building them all up again and using ~20 classes just get a bloody button again.
Tailwind (and utility-based CSS) is great for custom designs, but not every website and web app needs a design with as fine fidelity as that.
it's an unfortunate fact that i inherit a lot of projects that started out with bootstrap and now have 3x the volume of css compared to bootstrap (as well as) because the developers that have worked on it in the past have satisfied the client's needs by piling on more and more css. Most of my days seem to be spent hunting the right css class or fighting specificity wars! Hence my distaste with bootstrap
@Snapey I sum up that your disgust with Bootstrap is due to incompetence, that of the previous devs and probably yours too. I therefore take your opinions as null and void.
If we really had our ducks in a row, we'd create utilitarian, built-in styling and eliminate CSS altogether.
Input elements would automatically be styled the same way for everyone. Submit buttons would be green, delete buttons would be red and so forth. Page titles? Fonts? Breakpoints? All the same. Granted, it would stifle all creativity, but we'd save a ton of money on front-end designers.
It truly would have some advantages, none of which overcome how boring and depressing it would be.
I'd volunteer to set the standards for everyone, though. Couple of days, max.
:)
@dwoosley input fields are already standardised.
submit buttons would be green, delete buttons would be red
@dwoosley Congratulations. You’ve just made the web inaccessible for colour blind people.
@martinbean -- We'd spend a couple of hours on usability testing to work out the kinks.
One popular solution is black and white with blue and yellow for aesthetics. Like Walmart and Best Buy. If everything on the page is readable by anyone, it's readable by everyone. Someone with color blindness could design the pages.
Tailwind all the way. Bootstrap websites look all the same (i'm an ex fan of it, not saying it lightly).
Bootstrap websites look all the same
@maned3v So do Tailwind sites. Same font stack. Same colour palette. Same layout.
@martinbean Tailwind is an utility oriented framrwork, it helps you to build the layout, when you add a button, it has no color or style, all of that is up to you. Same layout how? In columns? Like 100% of websites?
@maned3v Thanks. I already knew Tailwind was a utility framework, though? I mean, I even said as much myself, so not sure why you thought you needed to chip in after two weeks to point out what I already knew? 🤷♂️
@martinbean oook
@maned3v I can tell you that I recognize "TW" websites from miles away... A little skill and Bootstrap is so easy and fast. TW is a waste of time that only agencies with dedicated staff can afford, and for your info, Laravel is made for ARTISANS, Taylor shouldn't forget it!
This is a great conversation and I'm probably a little late to the show but here it goes because I have been thinking on this lately as I've been building a proof of concept and have run up against the same thing.
I think the "issue" that best describes this is not actually one CSS framework vs another. I think it is the lack of alternative solutions to breeze and then by extension, Jetstream. A good example of this is back end authentication - there is at least 3 ways to do this in Laravel currently: passport, fortify, and socialite. All are "starter kits" but do it a slightly different way. However all three gives someone options.
Same with local development - horizon or sail. On and on. One of the great things about Laravel.
However, when it comes to the (UI) starter kits that is not the case. Laravel UI will (I assume) be retired sooner than later - it says to use Laravel Breeze on github and is not even listed in the official Laravel documentation as a package or starter kit. That then leaves Breeze and then by extension, Jetstream. However, they are both built using same technology stack from a CSS perspective.
To those that would point out "just use fority" that isn't exactly fair. Yes, you can use fortify to get the API endpoints you need but that does not give you any UI - which is the purpose of Foritfy of course. The problem is that Breeze does give you some UI and so you cannot fully compare them or suggest one can just replace the other.
This I think is where the opinions, suggestions, comments, etc come from. It's the fact that unlike a lot of the other realms of Laravel where there is at least a couple of options, there is none here. it is either use Tailwind or do it on your own. Of course you can replace Tailwind with whatever you want in Breeze and Jetstream but that defeats some of the purpose of the kit then. Breeze you can use react or vue, in jetstream liveware/blade or interia/vue but there is no option to the CSS.
This is where I think the suggestion of having a CSS less option would be great - then the UI could be installed without the CSS part but the rest of the benefits could still be used.
This comes from an experience software engineer who has worked in both retail and corporate environments. For retail, the uses of things like Tailwind are great. However, when you start getting into corporate software the advantages of some things like Tailwind become less so because what is important to those systems are not the same. Corporate is more about stability, consistently, ease of use, and almost as important - speed of development and support - the budget. This is where tools like component libraries become of great use, such as vuetify or bootstrap vue or any of the other well established ones. However, I see far less for Tailwind and many have far less features and so are far less beneficial to use.
Breeze and Jetstream is great and one the great uses of Laravel is that you can do whatever you need to. I love it and use Laravel for many things.
I just think it came as a head scratcher to many when the move was made to Tailwind with no plan to offer an alternative CSS option , even for a bare one, when options for other things were kept.
@robertldeboer -- Good feedback. Thanks, David.
@robertldeboer you don't have to use tailwind for the rest of the application if you don't want to. you can install any component library and use that for the rest of the ui, or write your own css
@krisi_gjika Yes you are corect and again, one of the great things about all of this. But it as I pointed out earlier that strategry is left entirely to the developer to do themselves where other parts of the kit, such the javascript framework where you can choose between react or vue, at least gives you an option of using something different out of the gate.
Please or to participate in this conversation.