Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bootstrap vs. MUI? #252

Closed
bastislack opened this issue Mar 27, 2023 · 11 comments
Closed

Bootstrap vs. MUI? #252

bastislack opened this issue Mar 27, 2023 · 11 comments
Labels
question Further information is requested
Milestone

Comments

@bastislack
Copy link
Owner

We are mostly using Bootstrap right now, however, we could also use MUI as an alternative.
MUI has a nice slider, which right now we are using from a separate package. The slider does not justify rewriting everything with MUI but we could just think about whether we want to continue with Bootstrap or switch to MUI (or something else like Tailwind CSS).

@bastislack bastislack added the question Further information is requested label Mar 27, 2023
@WaldemarLehner
Copy link
Collaborator

I can vouch for Tailwind, having used it with Vue3 for my Portfolio rewrite and Next.js/Remix for my Bachelor's Thesis.

One thing you need to consider is that Tailwind is not a component library like MUI, but a CSS Utility — which means you would still need some sort of library for Ranges, special input fields, etc...
(PS: I am not sure if I would call Bootstrap a Component or a CSS Library, but I would argue that Tailwind is way more "low-level" than Bootstrap or MUI)

It does not really do anything other than add CSS classes while only importing the ones it finds when searching for strings in the source file.

Styling components is cumbersome in React and I feel like simply being able to add the classes in HTML should get you the desired result fairly easily.

Just beware that most of the HTML will be class definitions:
image

@WaldemarLehner
Copy link
Collaborator

Small amendment: There is also Flowbite. It's a component library build ontop of Tailwind. Flowbite does provide a Range Component which is limited in that you cannot set two values inside the range (as in… there is only one selector). What might work is to import react-range and style it with tailwind for that specific use case.

@WaldemarLehner
Copy link
Collaborator

I also stumbled across this thing: https://daisyui.com/

Apparently it builds upon TailwindCSS and provides classes for common UI Elements. I might give it a try for another project and see how easy it is it work with

@JulianDietzel
Copy link
Collaborator

What would be the benefit to switch away from Bootstrap apart from having a nicer slider? Seems like every single Component would need to be rewritten if we were to switch, which is quite a bit of development overhead.

@bastislack
Copy link
Owner Author

@WaldemarLehner Would it be much overhead for you to change from Bootstrap to something else, while you are rewriting the app in TS?

@WaldemarLehner
Copy link
Collaborator

WaldemarLehner commented Apr 20, 2023 via email

@Dosbodoke
Copy link
Contributor

I also think that Tailwind is the way to go. We can enhance the UI so much. Maybe I can give a try on it

But do you guys don't think that this task and migrating to vue #242 + ts #245 should be different tasks? If the UI will be exactly the same, we can recreate all the current styles on Tailwind. But if we need, for example, to insert or delete components to change the UI behavior, it can be risky whiteout TypeScript

@JulianDietzel
Copy link
Collaborator

JulianDietzel commented Apr 21, 2023

I'd agree with @Dosbodoke that if we do a UI overhaul it should happen separately from the migration to Vite which already is getting tangled up with the migration to TS (for which there might be good reasons, but still the scope is already bigger than it needs to be).

This would a) reduce the scope of the mega commit which is going to be the switch to Vite and b) allow us to collectively figure out a design we like and implement it incrementally.

@bastislack
Copy link
Owner Author

Not at all. In fact I would prefer TailwindCSS. I could copy most of the building blocks from other projects.
Let's go with Tailwind then :)

And I guess it makes sense to keep the UI changes separate from the migration to Vite, except you (@WaldemarLehner) have good reasons to do it all at once.

@WaldemarLehner
Copy link
Collaborator

I can try to not touch the UI all that much.
I will have to change the UI Component's internals as there are some patterns used that aren't that clean and that TS is not all too happy about.

@JulianDietzel
Copy link
Collaborator

This gets addressed in the rewrite. We settled on using TailwindCSS for styling with Shadcn as a component library (#305).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

4 participants