Bulma CSS Framework has been my choice for a bit longer than two years now. My first introduction was with version 0.9.3, a few months before 0.94 was launched. Version 0.9.4 has been my "go-to" since. Over time, I had to write a few modifications and fixes to better use the package. Modifications are personal preferences, fixes are just that ... wonky stuff in Bulma that needed corrections.
I had to rethink using Bulma when v1.0.0 was launched. I was already disillusioned with the size of the package, lack of javascript, errors, and just plain bad direction. I thought the next version would improve the framework and make load time faster, but nooooo. Just the opposite. Not just more junk, but worse junk.
Were I to time travel and go back a few years, without doubt I would start off with Bootstrap. Bootstrap was, and remains, the leader with 79% of market share. That is 79% of websites that use CSS Frameworks. Bulma was at 0.2% and remains at that market share more than one month past its latest release.
But, I have benefit of more than two years with CSS Frameworks, research and using Bulma. What would my choice be today if starting over?
No package is ideal or perfect ... that's why I am rolling-my-own. Not everyone wants to do that or has the time (or inclination) ... so what's the recommendation then?
Well, Tailwind has the right idea. Start with a good basic CSS Framework core and add components as you need them. With Tailwind, you do not need any pre-processor (Tailwind's recommendation is NOT use pre-processors). You do need a post-processor. There are a number available, you can do a search on Github. I personally prefer to have my own "_loader.css" and use @import to call in the css files I need.
Based on experience and research, today I would not use Bootstrap or Bulma. Stick with something that leaves HTML semantically unchanged ... and let's you participate in the appearance factor. I know that you can do that partially in Bootstrap and Bulma, but there are conditions. If you want to use <h1> semantically (at least partially) in Bulma, it is conditional. You have to use it within a div with the class "content" applied. You cannot use <h1> semantically as a heading tag outside of that - you are forced into using a set of classes to get an appearance other than plain text. Used in <header> the <h1> tag returns plain text. To get it to behave close to semantic HTML, you have to use <h1 class"is-size-1">. That's rubbish, that's not intuitive, that's not good UI.
If you want the benefits of component based CSS, there are two packages I recommend. The first is Chota CSS. Chota CSS has a responsive grid, and various basic components. The second is Simple CSS.
Better yet, roll-your-own. You can learn from looking at the code of Bootstrap, Bulma, Tailwind, Chota, and Simple ... these packages are all "open source" and MIT licensed. You can use parts of the code as you wish for personal use. If you distribute your work, however, keep in mind that MIT license requires that you attribute (and link to) to the source and also have to MIT license your work as a derivative.