SAFE-Stack / SAFE-template

dotnet CLI template for SAFE project
MIT License
280 stars 87 forks source link

Tailwind for an app already built out with Bulma? #588

Closed geysernrd closed 5 months ago

geysernrd commented 5 months ago

Just a "Discussion" question here, if someone can add that label, but I figure there may be others with this question, so...

My app is built and running in production in SAFE v4. I'm about to upgrade to .NET 8 (hooray for nested field updates!) and SAFE v5. I see that the stack has abandoned Bulma for Tailwind, but I have thousands of references to Feliz.Bulma types in my web app, including to a version of Feliz.Bulma.DateTimePicker that I modified myself to have a month/year-only picker.

I've never used Tailwind, but I assume it must be a significant upgrade for the SAFE team to have chosen to make this switch. I'm curious which of these options someone might recommend? --

  1. Stick with Bulma; it's working fine.
  2. Install Tailwind, start using it in new modules, and perhaps slowly migrate existing code.
  3. Take the plunge and upgrade those thousands of lines of code. (Either because it's that much better or because it will become harder and harder to stay compatible with SAFE upgrades.) Also, is there a rapid, replace-all sort of method for doing this?

Any thoughts would be appreciated. Thanks!

mattgallagher92 commented 5 months ago

That's a good point. We probably could do better with addressing that in the docs too.

You can find some explanation of our motivations in the announcement blog post. Briefly: Bulma is great but makes precise control of styling difficult; Tailwind is also great and makes precise control easy.

Tailwind is what we prefer to use when creating a new app. However, the migration of existing view code is not trivial. In addition, because of CSS resets, mixing Tailwind and Bulma is not easy (would love to be proven wrong on this).

My recommendation would be to stick with Bulma, but experiment elsewhere with Tailwind to see if you like it. If you do, then consider option 3 at a time that suits you.

Because it's limited to the rendering code, it seems unlikely to me that sticking to Bulma will cause any compatibility problems with future upgrades.

Would love to hear other opinions too.

geysernrd commented 5 months ago

Thanks Matt, that's helpful info. Given my own lack of artistic sensibilities, the Bulma sandbox has worked fine for me, so I'll probably stick with what I've got, and perhaps experiment with Tailwind elsewhere, as you suggest. (In the meantime, my V4-to-V5 upgrade is struggling with with an unrelated issue stemming from the other big switch, from Webpack to Vite. I've reached out to Compositional IT, because I may need some help getting it working.) Feel free to close this "issue" whenever you like, e.g., once it seems clear nobody else has thoughts. Thanks again!