Stack
Groups children so they’re spaced as one unit. Blocks already stack their direct children, so useStack when a few pieces belong together and should sit apart from the content around them. A stack
can’t hold another stack.
Row
A line of text with a few small buttons at its end. Use it for a sentence that has its own quick actions, such as a checklist item with Done and Skip. A row holds one or twoText or
AvatarStack elements, then up to three Button or Menu accessories.
Buttons in a row are small accessory buttons that line up with the text. They’re never primary, and
their labels are unique within the row. A row with only one child renders as that child. To put
badges or a time next to text, place them inline in the
Text. Agent text joins the children with
spaces.
Columns and Column
Two or three columns side by side. Use them to place groups of content next to each other, such as two sets of facts.
Columns sit side by side only when every column gets at least 200px, measured on the
Columns
itself: 424px for two columns and 648px for three. Below that, they all stack into one column. In a
conversation thread, two columns sit side by side and three stack.
Columns go at the block, section, tab or form level. A Column can’t hold a Table, Chart,
Prose, Heading or Code, because those need the full width.
Callout
A highlighted note inside a block. Use it for something viewers should notice, such as a warning that a deployment is waiting for review.
A callout holds text only: no buttons, and no callouts inside callouts. When a callout reports an
error, put Retry in the block’s root
Actions. Screen readers hear the tone’s word, such as
“Warning”, before the callout’s text.