Skip to main content

Responsive Layouts with Flexbox and Grid

Responsive layouts adapt to available space rather than one device size.

Flexbox navigation

.navigation {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

Grid cards

.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr));
  gap: 1rem;
}

Media query

@media (max-width: 40rem) {
  .page-header {
    align-items: stretch;
  }
}

Allow text to wrap and avoid fixed heights. Test zoom, long labels and real data.

Check

  • Layout works at narrow and wide widths.
  • Reading order remains logical.
  • Keyboard order matches visual order.
  • Tables have a deliberate small-screen treatment.
  • Controls remain large enough to use.