Skip to main content
← 🎨 CSS as a design systemΒ·Module B2 Β· Lesson 7
TaskBuild a wrapping card row. <div class='cards'> with five .card divs (1, 2, 3, 4, 5). .cards has display: flex, flex-wrap: wrap, gap: 12px. .card has width: 120px, padding: 16px, background: #eef, border-radius: 8px.

flex-wrap: when items overflow

75 XP6 min
Theory

Without wrap, items shrink

By default, flex items SHRINK to fit when they overflow the container. Five 200px-wide cards in a 600px container? Each becomes 120px wide.

.container { display: flex; }

That's often wrong. You want them to keep their natural size and WRAP to the next line:

.container {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

Now items keep their width. When the row fills up, the next item drops to a new line. Classic "card grid" behavior.

The shorthand: flex-flow

flex-flow combines flex-direction + flex-wrap:

.container { flex-flow: row wrap; }      /* same as flex-direction: row + flex-wrap: wrap */
.container { flex-flow: column nowrap; }

Personal preference β€” the unshortened forms read clearer to most teams.

When you want NO wrap (default)

  • Nav bars β€” links shrink, don't drop to a second line.
  • Toolbars β€” buttons stay on one row.
  • Tab strips β€” tabs scroll horizontally on overflow (with overflow-x: auto).

Default flex-wrap: nowrap is correct for these.

When you want WRAP

  • Card grids β€” each card keeps its width, wrap as needed.
  • Tag clouds β€” tags wrap as the container shrinks.
  • Photo galleries.

For card grids in 2026 you'll often reach for Grid (next module) instead of flex-wrap. But flex-wrap is the simpler tool when items don't need to align across multiple rows.

πŸ”’

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.