Skip to main content
The columns element holds a row of columns for side-by-side content. Each column can set its own styling, width, and content. The type value is "columns", and each child must be a "column" element. When to use:
  • Create side-by-side layouts (e.g., product images with descriptions)
  • Build responsive multi-column grids
  • Organize content in structured layouts
  • Display data in tabular-like formats
Email client compatibility: column styling uses MJML patterns. Borders and border radius render correctly in most modern email clients and degrade gracefully in older ones. The gap property inserts spacer columns between content columns to get the spacing right.
Basic example
Columns element fields
CourierColumn[]
required
An array of column elements. Each must be of type "column". See the Column element section below.
string
Background color for the columns container. Any valid CSS color value (e.g., "#f5f5f5", "rgb(245,245,245)").
string
Border width for the columns container (e.g., "1px", "2px").
string
Border color for the columns container (e.g., "#cccccc", "rgb(204,204,204)").
string
Border radius for rounded corners on the container (e.g., "5px", "10px").
string
Spacing between columns. Automatically inserts spacer columns with exact width (e.g., "10px", "15px").
string
Inner padding for the columns container. CSS shorthand works (e.g., "10px", "20px 10px").
string
Alignment of columns within the row. One of "top", "middle", or "bottom". Defaults to "top".
Column element Each child in a columns element’s elements array must be of type column. Each one can set its own styling and width.
string
required
Must be "column".
CourierElement[]
required
The content blocks inside this column. Any Elemental elements (text, image, action, etc.).
string
The width of the column. Can be:
  • Percentage: "50%", "33.33%"
  • Fixed: "200px", "300px"
  • Auto: "auto" (takes remaining space)
string
Hex code or CSS color for the column background (e.g., "#F4F7FF", "rgb(244,247,255)").
string
Border width for this specific column (e.g., "1px", "2px").
string
Border color for this specific column (e.g., "#cccccc", "rgb(204,204,204)").
string
Border radius for rounded corners on this column (e.g., "5px", "10px").
string
CSS padding shorthand for the column (e.g., "10px", "20px 10px").
string
Overrides the parent’s vertical alignment for this column. One of "top", "middle", or "bottom".
Examples and variants Two-column layout Basic sidebar and main content layout:
Equal-width columns Three equal columns with middle vertical alignment:
Styled container with borders Columns container with styling:
Product card layout Complete product card with image and details:
Channel support
  • Email: Full support with MJML rendering for maximum compatibility
  • Push: Limited support. Columns may render as stacked content
  • SMS: Not supported. Use single-column layouts
  • Inbox: Full support with responsive behavior