The Grid Before Grid
1994, 19971994EXTINCT
The 216 web-safe colours
A palette designed so images would not dither on 8-bit displays. #CC33FF was a design decision, not an accident.
Outlived by exactly one of its members: #FFFFFF.
The first widely adopted design-token system on the web, born from a hardware constraint that vanished within a decade.
1996EXTINCT
Table-based layout
Before CSS could position anything reliably, the only cross-browser layout primitive was a data table with invisible borders, nested four deep, held together with 1×1 transparent GIFs.
Died of semantics. Survived by <div>, which learned nothing.
Established that layout needs a two-dimensional model. CSS Grid is, in a real sense, the feature people were asking for in 1996, arriving twenty years later with the semantics fixed.
1997EXTINCT
spacer.gif
A 43-byte transparent GIF, stretched with width and height attributes to force whitespace. Every commercial website of the era shipped hundreds of them.
The original layout hack. Replaced by a property called margin.
A permanent reminder that when a platform lacks a primitive, developers will invent one out of whatever is available, and it will be worse.
Structural Experiments
1996, 19991996EXTINCT
<frameset>
Multiple independent documents in one window, each with its own scroll position and its own URL, none of which the address bar acknowledged.
Broke bookmarking, printing, search and the back button. Removed in HTML5.
Every problem framesets caused, deep linking, history, focus management, scroll restoration, is a problem single-page applications had to solve again from scratch.
1999ARCHIVED
Quirks mode
A whole second rendering mode, entered by omitting a doctype, that reproduced Netscape 4 and IE 5 bugs on purpose so older pages would keep working.
Still implemented in every browser you use. It has simply been very quiet for twenty years.
The canonical example of the web's core commitment: do not break existing content. The whole platform's design is constrained by it.
The Plugin Age
1996, 20011996EXTINCT
Adobe Flash
A vector animation runtime with its own language, timeline, audio stack and rendering engine, running inside a plugin the browser knew nothing about. For a decade it was the only way to do animation, video or games on the web.
End of life 31 December 2020. It taught the web what it was missing, then was replaced by it.
Canvas, WebGL, the Web Animations API, WebAudio, the video element and WebAssembly are all, in part, the open platform catching up to what Flash demonstrated was possible.
2001EXTINCT
Internet Explorer 6
Shipped in 2001 with roughly 90% market share, then received no meaningful update for five years. Its broken box model, hasLayout quirk and PNG alpha handling defined a generation of CSS hacks.
Support finally ended in 2022. Several developers held parties.
Produced graceful degradation, feature detection, polyfills, and an industry-wide conviction that evergreen browsers are worth almost any cost.
The Library Era
1999, 20061999MUTATED
XMLHttpRequest / AJAX
Shipped in Internet Explorer 5 as an ActiveX control for Outlook Web Access, then reverse-engineered by everyone else. Google Maps made the technique famous in 2005 and the term AJAX was coined the same year.
Superseded by fetch(), which is the same idea with promises and a sane API.
The single change that turned the web from a document system into an application platform. Everything since is a refinement of 'update part of the page without reloading it'.
2006STILL BREATHING
jQuery
One function that made the DOM tolerable and browser differences invisible. `$('.thing').fadeIn()` did in one line what took thirty lines of branching code per browser.
Not dead. Still running on a large share of the web, quietly, doing its job.
querySelectorAll, classList, fetch and Element.closest are all jQuery features that were absorbed into the platform. Its greatest success is that it argued itself out of necessity.
The Modern Web
2010, 20102010STILL BREATHING
Responsive Web Design
Ethan Marcotte's article combined fluid grids, flexible images and media queries into one idea, and ended the industry practice of building a separate m-dot site.
Not archived, absorbed. Nobody says 'responsive' any more because nothing else is acceptable.
Container queries, logical properties and intrinsic sizing are the same principle applied at component scale rather than page scale.
2010MUTATED
The Single Page Application
Move routing, rendering and state to the client, ship an empty div, and rebuild the browser's navigation model in JavaScript. It solved real problems and created an equal number of new ones.
Not dead, recompiled. Server rendering, streaming and islands are the industry's revision notes.
Every framework since has been negotiating the same trade-off: how much of the application belongs on the server, and how much genuinely needs to run in the browser.
2010EXTINCT
Application Cache (appcache)
A manifest file for offline web apps whose failure modes were so unintuitive that the standard reference article on it was titled after a swear word.
Removed from browsers. Replaced by service workers, which are harder and correct.
Proof that a declarative API for a genuinely complex problem can be worse than an imperative one. Service workers gave developers the event loop instead of a manifest, and offline finally worked.