The History of CSS: From CSS1 to Today’s Modular Spec

CSS’s evolution from a simple styling proposal to today’s sprawling, modular specification tells the story of the web itself growing from static documents into full application platforms.

CSS1 (1996): The Basics

Håkon Wium Lie’s original CSS proposal gave the web fonts, colors, spacing, and basic text alignment — a huge step up from HTML’s own presentational attributes, but extremely limited by modern standards.

CSS2 (1998): Positioning Arrives

CSS2 added position (absolute, relative, fixed) and media types, but inconsistent browser implementation (especially Internet Explorer 6) made using its features reliably a genuine minefield for over a decade.

CSS3: The Modular Split

Rather than one monolithic CSS3 spec, the W3C split CSS into independently-evolving modules (Selectors, Flexbox, Grid, Animations, each with its own version number) — the reason there’s technically no single “CSS4,” just individually maturing modules like Grid Level 2.

Today: A Living Standard

Modern CSS (custom properties, Grid, container queries, native nesting, :has()) ships incrementally across browsers rather than in big versioned releases — CSS today evolves closer to how a programming language does, with features landing individually as they mature.