mikestefanello / pagoda

Rapid, easy full-stack web development starter kit in Go
MIT License
2.18k stars 114 forks source link

Switch from Bulma to Tabler? #70

Open mikestefanello opened 4 months ago

mikestefanello commented 4 months ago

Bulma is a great project and I have nothing at all against it, but after coming across Tabler recently, I am very excited to start using it and I think it would be a great fit for this project. It's exactly what I was looking for when this project started. From the looks of it, using nothing more than HTML, you can easily build a beautiful UI for practically any web app. I originally wanted a CSS kit that didn't have a JS dependency, but given the interactivity this provides out of the box, you may not even need Alpinejs (though I do plan to keep that included).

Are there any other good candidates out there?

Jimmy99 commented 4 months ago

What changes would have to be made to accommodate Tabler? I would give it a try

mikestefanello commented 3 months ago

Thanks for offering to help. I actually spent a decent amount of time going down this path. It's quite a bit of work because you'll have to modify all of the HTML. It's also not a straight-forward conversion because Tabler has a ton of different components/layouts/etc to choose from, so there's some design choices to be made. I'm torn because of the Bootstrap and JS dependencies of Tabler, but then again, it does provide a lot right out of the box which is especially useful since I assume most people using this project are Go devs who don't want to spend much time dealing with tons of JS/CSS (if any at all). It also renders Alpine unnecessary for the most part, unless I decided to include something that Tabler couldn't do itself. I did like the idea of including it since it helps to highlight that you don't need React/Vue/Svelte to build out a good UI; which is one reason why so many go the route of using Go only for an API. And if you do include it, then you now have a lot of JS (htmx, bootstrap, tabler, alpine).

Then again, there's so many options out there that I'm curious how many people using this project would and do even keep whatever CSS default is in here. I'm not sure yet what I think is best for this project. Tabler is probably what I would personally prefer if I were using this to build out an app.

Maybe there's other options to consider before changes are made? I haven't looked too much and I know the frontend landscape changes rapidly. If you have any other suggestions, please share.

gobijan commented 1 month ago

Maybe for now just migrate to Bulma v1 wich is a complete rewrite with many refinements.

BeerCSS is also quite mighty and very easy to use.

PraveenGandhi commented 1 month ago

https://adminlte.io/ can be another option.

V4 (built with Bootsrrap 5) is WIP: https://github.com/ColorlibHQ/AdminLTE/releases/tag/v4.0.0-beta2

mikestefanello commented 1 month ago

Thanks for sharing.

I'm really not a fan of material design at all so I don't think I would want to go with BeerCSS.

I would say Tabler is vastly superior to AdminLTE.

rlnorthcutt commented 1 month ago

For what it's worth, I think it is better to go with fewer dependencies, which is why Bulma makes sense. However, perhaps there could be a network of forks that have different frameworks for the UI?

That way, if anyone wants to build/maintain a Tabler version, they can own that part and still inherit all the other great work here.

mikestefanello commented 4 weeks ago

I agree - and that was my original reasoning for choosing Bulma. Let's just keep it at that.

There's endless options out there and they're constantly changing, so I have to assume everyone is going to have a different preference. And even if you happen to like what's included here, you're not going to stick with the example templates so you're replacing those regardless. So, it really doesn't matter at all what's included.. this project just needs something simple that works.

I'll leave this open for now, until the port to v1 is done, and in case anyone has a suggestion for an alternative that should be considered.