Blocks
A block is a named region of a page, assembled out of the components. It ships real CSS, for its own classes only, in @layer ui.blocks — after the components, before the utilities.
Why a third kind
A component is one thing on the page: a button, a field, a card. Ask what element it goes on and there is an answer. A hero has no such answer — it is a heading, a line of copy and one control, arranged. Filed under components it becomes a card with the frame taken off, which is exactly the shape it must not have, and that is not a hypothetical: it is what four sites built before this category existed.
So a block ships CSS rather than advice. Documentation alone would be the one thing in this library that nothing can check — no manifest entry, no classes to cherry-pick, no screenshot to compare — on a site whose whole argument is that its contract is derived from its stylesheets.
What a block may and may not do
It styles its own classes. A block never redefines .btn or .input. It may place one — cap a field's width, space a row of buttons — and @layer ui.blocks is what makes that safe: a rule reaching a component's element wins on layer order, not on which stylesheet the consumer happened to load second.
It ships no layout primitives. A block is one named region, not a grid system. Where it sits on the page, and how wide the column inside it is, are still the page's decisions.
It is not a page template. Nothing here composes two blocks into a “landing page”. A block is the unit; the assembly is yours.