wtf(css)layout you can see happening

CSS, with the layout showing

Forty steps through flexbox, twenty-two builds that fail unless several concepts are right at once, and the famous wtfs underneath — margin collapsing, stacking contexts, and the invisible wall inside every flex item. This is the one subject where the output IS the picture, so every problem is rendered rather than described.

Problems

79 problems
#titletopictypedifficulty
31A float-only parent has no heightThe famous WTFsExplain the wtfMedium
32Block formatting contextsThe famous WTFsExplain the wtfHard
33z-index: 9999 doesn't workThe famous WTFsExplain the wtfHard
34Vertical centring before flexboxThe famous WTFsExplain the wtfMedium
35The box does not grow for youThe famous WTFsExplain the wtfMedium
36Percentage padding resolves against width — even verticallyThe famous WTFsExplain the wtfHard
37The mystery gap under an imageThe famous WTFsExplain the wtfEasy
38The whitespace between inline-block elementsThe famous WTFsExplain the wtfEasy
39line-height: 1.5 vs 150%The famous WTFsExplain the wtfMedium
40em compounds; rem doesn'tThe famous WTFsExplain the wtfMedium
41!important is not a specificity boostThe famous WTFsExplain the wtfMedium
42display: contents removes the boxThe famous WTFsExplain the wtfHard
43Centre the brand mark in the mastheadAlignmentBuild itEasy
44Centre the hero card — in a container that runs downwardsMain axis vs cross axisBuild itEasy
45Centre the unread count inside its pillAlignmentBuild itEasy
46Centre the empty-state message in the results panelAlignmentBuild itEasy
47Centre the glyph in the round action buttonAlignmentBuild itEasy
48Sit the editor tools in the middle of the railAlignmentBuild itEasy
49Float the pinned tag to the front of the listOrderBuild itEasy
50Hold the terminal output at the bottom — in the order it was writtenDistributing spaceBuild itEasy
51Newest activity at the top, list still hugging the topMain axis vs cross axisBuild itEasy
52Flip your own chat messages to the rightMain axis vs cross axisBuild itEasy
53Reverse the wizard steps — and keep them on the leftMain axis vs cross axisBuild itEasy
54Drop the chips so they stack up from the floorMain axis vs cross axisBuild itEasy
55The same dialog footer, and now they have to sit at the bottomAlignmentBuild itEasy
56Send the destructive button to the far end of the toolbarDistributing spaceBuild itEasy
57Pin both team badges to the edges and centre the clockDistributing spaceBuild itEasy
58Push the close button to the far edge of the modal headerDistributing spaceBuild itEasy
59Move the whole dialog button row to the trailing edgeDistributing spaceBuild itEasy
60Render Cancel before Save without touching the markupOrderBuild itEasy

44 of 87 catalogue topics are authored, with 37 drills rehearsing them. Every one of them is judged: each carries a starter that has been shown to fail, at least two different correct answers that have been shown to pass, and a set of near-misses and cheats that have been shown to be caught. Nothing reaches this list until all of that holds.