Skip to main content
← 🎨 CSS as a design systemΒ·Module B2 Β· Lesson 4
TaskBuild a vertical stack of three items with 16px gap. .stack uses display: flex + flex-direction: column + gap: 16px. Each child .item has padding 12px, background #eef.

flex-direction: row vs column

75 XP6 min
Theory

Four directions

.container { display: flex; flex-direction: row; }            /* default β€” left to right */
.container { display: flex; flex-direction: row-reverse; }    /* right to left */
.container { display: flex; flex-direction: column; }         /* top to bottom */
.container { display: flex; flex-direction: column-reverse; } /* bottom to top */

When column flex is the right answer

A vertical stack of items where you want flexbox alignment tools (gap, justify-content for top/bottom, align-items for left/right):

.sidebar {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

You can't use gap between block elements (it's a flex/grid property). flex-direction: column + gap is the cleanest way to spread vertical items evenly.

The axes flip

When you switch to flex-direction: column:

  • Main axis becomes VERTICAL.
  • Cross axis becomes HORIZONTAL.

justify-content now controls vertical placement. align-items now controls horizontal placement. Watch out β€” the same property names mean different visual directions depending on flex-direction.

row-reverse for RTL languages

row-reverse flips the order of items visually without changing the DOM. Useful for RTL languages (Arabic, Hebrew) or "newest first" feeds.

πŸ”’

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.