main {
  display: flex;
  flex-flow: row wrap;
  gap: 1rem;
  max-height: 80vh;
  overflow: scroll;
}
article {
  flex: 0 0 auto;
  width: clamp(14rem, 25vw, 22rem);
}
main {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
  grid-template-rows: auto;
  gap: 1rem;
}
main {
  display: grid-lanes;
  grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
  gap: 1rem;
}
main {
  display: grid-lanes;
  grid-template-rows: repeat(4, 1fr);
  gap: 0.75rem;
  overflow-x: scroll;
}
main {
  display: grid-lanes;
  grid-template-rows: repeat(4, 1fr);
  gap: 0.75rem;
  overflow: scroll;
}
main {
  display: grid-lanes;
  grid-template-rows: repeat(4, 1fr);
  gap: 0.75rem;
  overflow: scroll;
}

First website goes live

Mosaic browser released

HTML gets a specification

W3C founded

Netscape Navigator ships

JavaScript is born

Internet Explorer 1.0

CSS Level 1

QuickTime brings video to the web

The browser wars rage

The Web Standards Project

Netscape goes open source

KHTML renders the web

Apple forks KHTML

CSS Zen Garden

Firefox 1.0

WebKit goes open source

jQuery released

WebKit passes Acid3

Safari ships native video

Google Chrome ships

Safari ships CSS Animations

Thoughts on Flash

CSS 2.1 ships

Responsive web design

WebKit2 architecture

Safari content blockers

Intelligent Tracking Prevention

CSS Grid ships

Safari ships Web Extensions

Container queries arrive

Mozilla proposes masonry-style layouts in CSS