Skip to main content
← 🎨 CSS as a design systemΒ·Module B6 Β· Lesson 8
TaskBuild a 6-card grid that flows without media queries. .cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }. Six .card divs each with padding 16px, background #eef, border-radius 8px.

Auto-fit grid: the responsive card row without breakpoints

100 XP7 min
Theory

You saw this in B3 β€” now apply it as the default responsive layout

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
}

That's a fully responsive card grid. NO media queries:

  • Desktop (1200px): 5 cards Γ— 240px.
  • Tablet (800px): 3 cards Γ— 270px.
  • Phone (375px): 1 card Γ— 375px.

The grid reflows automatically. The minimum (240px) prevents cards from squishing too narrow; the 1fr lets them stretch to fill.

When to use auto-fit vs auto-fill

  • auto-fit β€” empty space collapses; tracks GROW to fill.
  • auto-fill β€” empty space stays; tracks keep their minmax width.

Most card grids want auto-fit (no awkward empty columns on wide screens).

When breakpoints are still useful

For DRAMATIC layout shifts (sidebar disappears entirely on mobile, hamburger menu appears), media queries make sense:

.layout { display: grid; grid-template-columns: 240px 1fr; }
@media (max-width: 720px) { .layout { grid-template-columns: 1fr; } }

For PROPORTIONAL adjustments (card sizes, padding, font), use clamp + auto-fit.

Rule of thumb

If you can describe the change as "scale this number up", use clamp. If "rearrange these elements", use breakpoint. Most projects need 1-2 breakpoints total.

πŸ”’

Sign up to start coding

Theory is open to everyone. The interactive editor, live preview, and check are unlocked with a 7-day free trial β€” card required, cancel anytime.

Sign up β€” free trial β†’

First 10 lessons in each track are free. No card needed for those.

← PreviousNext lesson β†’

Get one Python or web tip a day β€” by email

Short, hand-written, no spam. Unsubscribe in one click.