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

Bulma, step up your game #3074

Closed
LoopsGod opened this issue Aug 5, 2020 · 7 comments
Closed

Bulma, step up your game #3074

LoopsGod opened this issue Aug 5, 2020 · 7 comments

Comments

@LoopsGod
Copy link
Contributor

LoopsGod commented Aug 5, 2020

This is about Bulma.

Description

I am opening this issue to help on improving the Bulma CSS framework. We currently use Bulma in production, but we've had several issues which we ended up having to solve by going to great wavelengths, which could be just easily fixed by merging a Pull Request.

How is it that a lot of popular issues do not really get addressed despite being very popular & being open since early 2018-2019, but I'm seeing sponsoring options everywhere?

I'm not trying to bash on Bulma or anything, we use it in production, but we've had tremendous amount of work in customisation and basic things Bulma does not provide out of the box (which, in my opinion, it should). I've also seen plenty of issues (which were great ideas) being quickly disregarded by the author, instead of being properly addressed.

In my opinion, it seems as though more work is being put in the sponsoring/commercialising of Bulma (which is everywhere, for some reason) than there is in actually improving the framework by useful features and optimizations. Bootstrap (and Buefy), for example, rarely or never even ask for sponsoring of any kind of financial compensations.

I am not against sponsoring or helping out, but community help such as issues & recommendations like these are worth much more than a couple sponsors (in my opinion).

@jgthms If you need to make a revenue in order to sustain Bulma, I'd recommend creating/building themes, like Bootstrap does, https://themes.getbootstrap.com/ -- and selling them in order to also provide value to end-users who would like to financially contribute by getting a theme & saving time in the process.

Again, great work on Bulma, but I've seen a lot of nearly instant negativity on issues being opened that actually contain great feedback & solutions. I've seen plenty of people having to create custom CSS in Bulma issues because the issue got disregarded and was never even closed as well.

Examples (Issues)

Search

Docs

Plenty of people complain about the documentation having too many clicks, difficult searching & just lacking behind in terms of other documentation sites / options (such as, Vue.js, Bootstrap, etc.).

Examples (Pull Requests)

Search

PRs mentioning the docs: https://github.com/jgthms/bulma/pulls?q=is%3Aopen+is%3Apr+docs -- contain plenty of pull requests with documentation improvements, not being merged.

There's way too much pull requests opened, with no response and nothing. Issues & feedback requests as well.

Disclaimer

I didn't have time to list everything here, but if you just look thoroughly through every issue & Pull Request in this repository, you can see a lot of issues being quickly disregarded + pull request criticism & after that; no response.

Instead of focusing on sponsors @jgthms -- you can improve the community, which would eliminate the need for financial support? I'm not very understanding of the desperate need for sponsors, if this is a community based / open source project anyway. No harm to you, but Bulma is the most commercialised repository / open source project I've ever seen on GitHub, or anywhere for that matter. I'd suggest making money some other way, like I mentioned (using Themes).

Proposed solutions

Try getting new people / managers on board, move to a 'bulmacss' GitHub Teams, invite people and get more people in the repository.

@jgthms
Copy link
Owner

jgthms commented Aug 5, 2020

Hi @LoopsGod and thanks for sharing your thoughts.

I understand your concerns. There is still new features being built. The last release had margin and padding helpers which the community really wanted. It took a while because I wanted to get it right. There was also RTL support which wasn't easy to add because I don't personally use it.

For all these things, I need to move slowly to avoid breaking things, and do too many changes. The key point is that it's easy to add features, much harder to maintain them. And while creating a PR is straightforward, there is no responsibility to maintain; I'm the only one who has that, so I need to be careful.

In terms of sponsorship, it helps but it's not enough to be sustainable on its own. It does seem it's being done more often than anything else, but sponsors change every month (and sometimes every 2 weeks), so it needs to be updated regularly. It does however take much less time than coding, so the frequency isn't really reflective of the time spent.

I have actually had plans to do official premium thems. Like everything else with Bulma, I don't want to simply get it done, but get it right. I wouldn't want to create half-baked that users wouldn't like, and that I wouldn't be proud of.

For that to work, I first need to finish adding CSS variables to Bulma. I've been working and thinking about it for the past year. There are different approaches to do it, some more straightforward than others. I could even add it tomorrow, but I need to think about maintainability and backward compatibility. I cannot ship a feature and remove it the next week. Here again, caution is key.

In any case, I'm still working on Bulma. Probably slower than what would be expected, but I think a lot of users do like the stability of the framework.

@MuhAssar
Copy link

MuhAssar commented Aug 8, 2020

@jgthms thanks for your wonderfull work, bulma is impressive.

And I'd like to personally thank you for adding RTL support, I'm an Arabic and RTL support is a must for me, even bootstrap doesn't have an official RTL support till now.

And about CSS variables I was just about to open an issue, asking for it, but knowing that it is already WIP is relieving, you may contact ionic-framework as they transitioned from scss (in v3) to css variables (in v4) and I used both and honestly css variables are far superior to scss variables!

@Tofandel
Copy link

Tofandel commented Aug 13, 2020

Funny you should mention css variables...Yet you didn't even review #2981 ... Which "doesn't just get it done, but gets it right" as you said.

For all these things, I need to move slowly to avoid breaking things, and do too many changes. The key point is that it's easy to add features, much harder to maintain them. And while creating a PR is straightforward, there is no responsibility to maintain; I'm the only one who has that, so I need to be careful.

Your comment just reinforces the fact that you need maintainers and not just sponsors, anyways you've made it clear you don't want help from any maintainers, shame.

Yet even RTL support was rushed and did break things see #2995 and it wasn't even done 100% properly (#3005, #2981 (comment)) and added 4 very similar mixins that are a pain to maintain when it could have added only one

But trust me if you're not willing to just take 1hours to review a PR and approve it, request changes, or close it altogether and instead like to spend 20hours, 3 weeks or 2 years of your sponsored time developing that feature yourself, this project will never make any sustainable progress and it will slip of your god ownership and I believe a truly open source version will rise to address all the problems you haven't been willing to solve in the past 5 years when the community did at their cost and effort in usually a short amount of time. An anti-team spirit like this has no place in an open source project

You seem to think none of the PRs are perfect so you don't even review them, not to mention how disrespectful it is for the person who put a lot of work in it and is being blatantly disregarded.
Yet you seem to think all of your work is perfect and better than ours, no wonder why this library is so opinionated, guess what nothing is perfect, so you should slightly step down on the perfectionism that tremendously hinders productivity of this great project and start changing things now

This is not just an opinion but also a warning, it takes only one or two highly motivated persons to start a community version of bulma.
Disclaimer, I am a very motivated person and will have some free time next month.

So, Bulma, step up your game!

@connorshea
Copy link

I don't want to start a fight or anything, but I felt like I had to at least defend Jeremy a bit here. I maintain a handful of small open source projects and getting motivation to work on them isn't trivial. I don't want to merge something that'll cause headaches for users if it doesn't work, but I also don't have as much time/interest in devoting hours and hours into the projects right now. I imagine the stress about merging PRs and breaking things is 100x worse when maintaining a project of Bulma's scale.

I understand it's frustrating not to have your work merged - I've been on that side of things as well (and actually found this issue specifically because I was looking for news on CSS variable/theming support in Bulma) - but Bulma is being made for free - or with fairly minimal donations - and I think it's important for all of us to be respectful of each other's time and energy here.

@Tofandel
Copy link

Tofandel commented Aug 23, 2020

@connorshea I completely agree with you, and I'm trying my best not to be disrespectful but it's hard when you are being ignored, the problem we are discussing here is the complete lack of interest of Jeremy in his community and the management issue of bulma when you see sponsorships everywhere, not just my work not being merged. If breaking things was really a concern he would have merged #2995 a long time ago (edit: he finally did after 2 month..). Trust me I'm not the only person feeling that way. I can gather way more than 10 person who had the exact same problem here. See: #547, #1325, #2374, buefy/buefy#2090, Have you ever seen those kinds of issues from the community in any other well maintained project?

Once again if maintaining a big project is such a concern why not recruit volunteer maintainers, even just to triage issues and review PRs not necessarly merge them? Jeremy's response in a separate issue was that maintainers were basically useless, as they would merge things that they shouldn't (Obviously not paraphrasing it was better formulated and way more respectful, but just giving one edge case example to make his argument nonetheless) and that finding the perfect one is hard (I don't think he even looked for one BTW, but who am I to blame)

My only frustration is that he makes people believe he has been working on css variables for years now, and regularly says he is working on it, but looking at the css branch there is nothing worthwhile, and what people are asking is exactly the lib I did for myself, but instead he decided to work on his own on it, without asking for any feedback or help, and it's going nowhere, the adopted strategy is way off, the work needed to refactor the entire project is easily in the years range, the variables are deeply scoped and so they can't be optimized at all (the complexity is NP, so I wouldn't talk about the engineering skills required to make something to optimize them), overriding them is also very hard because of how nested they are in the properties, you also have a new css variable for every darken/lighten/alpha modification, the size of the bundle is as such doubled (if not trippled) and gzip doesn't help, the variables are also not optional so that means either force everyone on css variables or having a separate code base, since I'm pretty sure he doesn't want to force that kind of change that would mean a separate branch for css variables, and I'm really scared of maintenance of the separate branch when you already see the lack of it in master, there is also no utility to automatically generate the css variables for a theme so you need to override them all by yourself after bulma... So yeah, css variables implemented like this is doomed to fail

But I see no point in arguing and fighting with a person that doesn't even bother replying (though still following the subject as I see)

So for my part it's decided, bulma will be forked

@rubjo
Copy link

rubjo commented Sep 2, 2020

Just wanted to chime in and say thanks to @jgthms for creating this excellent framework, and to support @connorshea in his plea for respect and as civil a tone as possible.

@Tofandel CSS variables support like implemented in your PR is something I've been waiting for in Bulma a while. It indeed seems like the project could benefit greatly from more maintainers – to an outsider, anyway. If you are able to pull it off like it sounds you might, I'm really eager to try out your fork.

@Tofandel
Copy link

Tofandel commented Sep 2, 2020

There has finally been some movement in this project on the most pressing issues and I appreciate it @jgthms

However my point regarding css variables and lack of maintainers still stand and I don't believe the general problem we are recurringly seeing will go away on it's own unless more maintainers are added and community feedback is taken into account.

On that note I started Bulba which is a fork of bulma trying to stay as compatible as possible so that it can almost be a drop in with the help of @LoopsGod (More maintainers are welcome as well), there is quite a lot of work to do before I can release it publicly with a new and improved documentation and theme builder

A few list of improvements planned or already implemented:

  • Sass linter to automatically lint all merged pull request, there is originally a guideline on bulma regarding code style but it never was enforced
  • SCSS mirror of the SASS code automatically deployed
  • Themeable support with CSS variables (my PR with some more improvements)
  • RTL support using css variables and the dir attribute (so we don't have to include a separate stylesheet for ~40 lines of css)
  • New breakpoint system using css variables as well (still in the brainstorm process)
  • Vuepress documentation (yes with a search 👀)
  • Live theme builder on the documentation
  • Theme sharing with votes on this same documentation

You'll notice that I am also trying to automate as much process as I can to avoid a maximum the need for manual deployment and other processes subject to human errors (No I am not a 🤖, though sometimes wondering since I am doing all this while having a very time consuming full time job as a software engineer and CTO of a small company)

I already have plans with buefy to have it integrate Bulba

So I'd like to thank everyone for the moral support 💪 and @jgthms for initially creating and improving this hugely amazing project ❤️ which I'm now building upon

I'll keep you posted

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

No branches or pull requests

6 participants