| 1 | display: flex changes the children, not the box | Making a flex container | Teaching step | Easy |
| 2 | flex-direction: column swaps which axis is which | Main axis vs cross axis | Teaching step | Easy |
| 3 | justify-content is the main axis, align-items is the cross axis | Alignment | Teaching step | Easy |
| 4 | align-items: stretch is the default | Alignment | Teaching step | Easy |
| 5 | align-self overrides the container | Alignment | Teaching step | Easy |
| 6 | justify-content distributes free space — and sometimes there is none | Distributing space | Teaching step | Easy |
| 7 | flex-grow distributes the surplus, not the container | Sizing | Teaching step | Easy |
| 8 | flex-shrink: 0 is defensive CSS | Sizing | Teaching step | Easy |
| 9 | gap spaces items without touching them | Gap | Teaching step | Easy |
| 10 | flex-wrap: wrap turns one line into many | Wrapping and the align-content trap | Teaching step | Easy |
| 11 | The mystery gap under an image | The famous WTFs | Explain the wtf | Easy |
| 12 | The whitespace between inline-block elements | The famous WTFs | Explain the wtf | Easy |
| 13 | Centre the brand mark in the masthead | Alignment | Build it | Easy |
| 14 | Centre the hero card — in a container that runs downwards | Main axis vs cross axis | Build it | Easy |
| 15 | Centre the unread count inside its pill | Alignment | Build it | Easy |
| 16 | Centre the empty-state message in the results panel | Alignment | Build it | Easy |
| 17 | Centre the glyph in the round action button | Alignment | Build it | Easy |
| 18 | Sit the editor tools in the middle of the rail | Alignment | Build it | Easy |
| 19 | Float the pinned tag to the front of the list | Order | Build it | Easy |
| 20 | Hold the terminal output at the bottom — in the order it was written | Distributing space | Build it | Easy |
| 21 | Newest activity at the top, list still hugging the top | Main axis vs cross axis | Build it | Easy |
| 22 | Flip your own chat messages to the right | Main axis vs cross axis | Build it | Easy |
| 23 | Reverse the wizard steps — and keep them on the left | Main axis vs cross axis | Build it | Easy |
| 24 | Drop the chips so they stack up from the floor | Main axis vs cross axis | Build it | Easy |
| 25 | The same dialog footer, and now they have to sit at the bottom | Alignment | Build it | Easy |
| 26 | Send the destructive button to the far end of the toolbar | Distributing space | Build it | Easy |
| 27 | Pin both team badges to the edges and centre the clock | Distributing space | Build it | Easy |
| 28 | Push the close button to the far edge of the modal header | Distributing space | Build it | Easy |
| 29 | Move the whole dialog button row to the trailing edge | Distributing space | Build it | Easy |
| 30 | Render Cancel before Save without touching the markup | Order | Build it | Easy |