csstools / postcss-normalize

Use the parts of normalize.css (or sanitize.css) you need from your browserslist
Creative Commons Zero v1.0 Universal
816 stars 40 forks source link

Why not use opinionated? #19

Closed niccai closed 7 years ago

niccai commented 7 years ago

I think not including some of the opinionated CSS in this project is not ideal (opinion :). I would think that most consumers of normalize would use the default that includes these. Can you explain the argument in not including the body margin fix for instance? Currently, these projects include it by default:

https://github.com/necolas/normalize.css https://github.com/JohnAlbin/normalize-scss

jonathantneal commented 7 years ago

Hi @niccai, thanks for asking. First, it’s a requirement of the project:

PostCSS Normalize lets you use the parts of normalize.css you need, based on your project’s browserlist.

No one needs opinionated styles, and no browserslist can target which browsers require opinionated styles. Also, requiring developers to add body { margin: 0 } is a fairly small barrier of entry. Also, once browerslists are involved, including them might give a false impression that browsers should receive these styles.

This is why the documentation states:

PostCSS Normalize uses the non-opinionated version of normalize.css.

And it looks like JohnAlbin’s SCSS version removes the opinionated rules or at least only keeps the ones he likes.

niccai commented 7 years ago

Sounds good. I expect I won't be the last person to raise this point. FWIW, I think body margin 0 is expected by most. Perhaps make the line about opinionated styles more prominent in the README? I saw it - but only after I intro'd a bug in development.

jonathantneal commented 7 years ago

Understood. I’m unsure how to include such a note. I’ll see how things resolve in the normalize.css repo. Track what’s going on with the opinionated rules in normalize.css. It seems they weren’t really tested or added back in consistently.