← notes

normalize.css, and the dependency nobody audits

Apr 15, 2018

An interactive page as a front-end exercise: index.html, app.js, main.css and normalize.css.

The last file is the artifact worth a note, because including it was near-universal then and is largely unnecessary now.

Normalize and a reset are often treated as the same thing and are opposites. A reset zeroes everything (no margins, no font sizes, no bullets) so you start from nothing and rebuild. Normalize deliberately preserves useful defaults and corrects only where browsers genuinely disagreed. It was a curated list of real inconsistencies, not a blanket.

Most entries on that list no longer describe any browser anyone uses. The differences it smoothed over were between versions of IE, early WebKit and Gecko, and those converged. Shipping it now mostly ships a fix for problems the platform solved, which is a very common category of dependency and one nobody audits.

The one rule genuinely worth keeping is box-sizing: border-box on everything, which is not in normalize because it is not a normalization, it is an opinion, and the right one. Padding and borders counting inside the declared width is how people think layout works.

A modern minimal reset is a dozen lines. Everything else can go.