Blaze CSS – Open Source Modular CSS Framework
blazecss.com
blazecss.com
I understand this position for large, dense frameworks (i.e. Rails, Zend, Spring) that you are basing your entire codebase on. Heck, I can even see an argument with Javascript (largely due to Node, React, etc. having a substantial impact you design around).
This is CSS. Pretty much any front end developer can maintain a CSS framework that was dropped by its creator if push came to shove.
Linux is no-longer a 1-man show.
So, let's say that more people and a company don't necessarily equate to better, longer-lasting support.
What's the benefit? The benefit is that you aren't left as the 1-man crew maintaining the project after the other 1-man gives up.
Would I use a 1-man backed CSS framework? Probably. But that doesn't mean melicerte is wrong.
I find the c-button c-button--primary a bit annoying. Why not just c-button primary and define them like this?
.c-button.primary {
…
}
Or namespace it: .c-button.m-primary {
…
}Obviously this is a fairly basic example, but with more chaining comes more levels of specificity which makes for increasingly difficult changes and worse productivity.
One thing bothers me though. Isn't this very WET? You have to repeat the `.primary` rules in every `--primary` thing?
I'm still torn apart about `.button.primary` and `.button--primary`. Also semantic classes vs style bound classes. I'm not completely convinced by any methology.
What's the difference between
.c-button.primary { … }
.c-button.large { … }
and .c-button--primary { … }
.c-button--large { … }
?Like mentioned above, this keeps things simple and prevents the snowball effect of people continually adding classes or selectors to override styles.
<section class="frogs">
<h1 class="headline frogs__headline">Frogs</h1>
</section>
or <section class="frogs">
<h1 class="headline">Frogs</h1>
</section>
So in the second one some sadness happening possibilities of a developer being a jerk:1. Removes the "frogs" class from section. Now the baseline headline applies to the h1
2. Buries this joy somewhere
.frogs h1 { sadness: here; }
3. Wraps the h1 in a div or something clever for some effect or whatever <section class="frogs">
<div class="sweet-slider-plugin">
<h1 class="headline">Frogs</h1>
...
</div>
</section>
and someone wrote the rule as .frogs > .headline
because further down in the section someone else used the .headline class nested in a "frog of the day" sub section.I'm definitely not trying to say BEM is what you have to use. Or if it is good or bad. Just trying to explain that there is an actual point to it.
Here's a good article explaining the idea:
http://csswizardry.com/2013/01/mindbemding-getting-your-head...
How would you enforce that when working in a big project with many contributors? I don't want to risk breaking my component if someone all of a sudden declares a global .primary class. When using --primary I know that won't happen since it's completely bound to my component.
So what you're saying is that BEM is the Java of CSS? Because that explains a lot.
Everything else requires adding classnames or using mixins before bootstrap starts to take effect.
If you don't want the typography stuff you can uncheck it on the customize page. (Or if you're using Less/Sass delete the typography import e.g. delete `@import bootstrap/typography` . from `_bootstrap.scss`).
for those unfamiliar with the customize page mentioned. http://getbootstrap.com/customize/
I do appreciate the additive approach blaze is taking. Add what you want.
Let's be clear, Bootstrap is the most popular CSS framework in the world, whose Github issue threads have been pored over many times more than Blaze's are likely to be for a very long time, and Bootstrap 3 at least never took any power away.
There are some really cool looking elements to Blaze and I'm very interested in using it for some upcoming projects, but to infer that you should ditch Bootstrap for it, on the basis of opt-in vs opt-out is very misleading.
Here is a short clip of it: https://www.freeih.com/tAgTSr