_emailmd_
Directives

Columns

Multi-column layouts that stack on mobile.

Columns place content side by side. The outer columns container uses four colons; each column inside uses three:

:::: columns
::: column
![Product](https://picsum.photos/seed/product/600/400)
:::
::: column
**New in July**
Fresh features you'll love.
:::
::::

Columns are equal-width by default, render correctly in Outlook, and stack vertically on mobile automatically.

Inside a column you can use text, images, buttons, tables, dividers, and spacers, along with the chart, progress, and breakdown directives; everything keeps its position within that column. A chart image beside the rows it explains:

:::: columns
::: column width=40 valign=middle
![Revenue by channel](https://example.com/ring.png)
:::
::: column
::: breakdown swatches=true
1. Checkout: $4,210 (+12%)
2. Search: $3,980 (-3%)
3. Product page: $2,104 (+4%)
:::
:::
::::

Column Parameters

Width

A bare number is a percentage; width= accepts a percent or pixel length:

:::: columns
::: column 30
Narrow sidebar
:::
::: column 70
Main content
:::
::::

Widths are proportions of the row, not exact percentages of it. A row written to add up to 100 still fits on one line when a gap between bg cards needs room of its own — the widths shrink to make room and keep their ratios.

Alignment

left (default), center, right align the column's text, images, and buttons. valign= controls vertical alignment (top, middle, bottom) when columns have different heights:

:::: columns
::: column center valign=middle
Centered, vertically middled
:::
::: column
Taller content...
:::
::::

Background

bg= gives a column a card-style background with inset padding (presets compact/spacious work like callout):

:::: columns
::: column bg=#eff6ff compact
A card cell
:::
::: column
Plain cell
:::
::::

Text Color

color= overrides the text color for the column.

Container Parameters

Set on the outer columns container:

Gap

Space between columns, in pixels (default 16):

:::: columns gap=32
...
::::

When columns stack on mobile, the gap between bg cards becomes vertical spacing. Use gap=0 for flush cards.

Mobile Stacking

Columns stack on small screens by default. Keep them side by side with stack=false:

:::: columns stack=false
::: column
🍎
:::
::: column
🍊
:::
::::

With stack=false, use percentage widths only.

Notes

  • Other directives (callout, stats, sparkline, …) can't be nested inside columns; their content renders as regular text, with a warning.
  • In the plain-text version of the email, columns flatten to sequential content, left to right.

On this page