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.